缓存的作用:提高效率,减少频繁的操作。

生活中的缓存例子:生活中用货车拉货物可以看做是一个使用缓存的例子,我们把货物都一起装好在货车先,再一起拉到目的地去。如果不使用缓存,货物一件一件的送到目的地来回跑,这可就麻烦了。但是使用缓存也有一点不好,就是得到的信息可能不是最新的,或者说是已经过时了的。就比如货车如果装的是水果蔬菜之类的装货的时间又比较长,那到目的地之后就变质了。
看一下JSP页面的缓存机制,JSP的内置对象Out对象(JspWriter),是自带有缓存区的,当调用out.writer()方法输出时,不会立即输出内容到页面,而是缓存到JspWriter对象的缓存区。当jsp页面执行完毕或者刷新缓存区时才会输出。
来写jsp页面具体的代码测试一下:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>jsp缓存机制测试</title>
</head>
<%
out.write("abc");
response.getWriter().write("123");
%>
<body>
</body>
</html>
当浏览器访问此jsp页面时,输出的内容如下:
123 abc
正常来说如果没有缓存区的话,输出的内容应该为abc 123
要想使out.write()方法立即输出内容的话可以通过下面几种方法:①通过调用out.flush()方法,刷新缓存区 ②关闭缓冲区,在jsp页面<%@ %>中加入buffer="0kb"。