使用encache页面缓存,当前台数据量较大时,我们可以在page于filter之间加上缓存,这样也就不需要每次访问主页都向后台发送大量sql来刷新页面了
使用方法
所需要的jar包
下载地址:http://download.csdn.net/download/qq_25956141/10210545
1.在classpath下之间添加ehcache.xml,添加内容
<ehcache>
<!--
磁盘存储:将缓存中暂时不使用的对象,转移到硬盘,类似于Windows系统的虚拟内存
path:指定在硬盘上存储对象的路径
-->
<diskStore path="java.io.tmpdir" />
<!--
defaultCache:默认的缓存配置信息,如果不加特殊说明,则所有对象按照此配置项处理
maxElementsInMemory:设置了缓存的上限,最多存储多少个记录对象
eternal:代表对象是否永不过期
timeToIdleSeconds:最大的发呆时间
timeToLiveSeconds:最大的存活时间
overflowToDisk:是否允许对象被写入到磁盘
-->
<defaultCache maxElementsInMemory="10000" eternal="false"
timeToIdleSeconds="120" timeToLiveSeconds="120" overflowToDisk="true" />
<!--
cache:为指定名称的对象进行缓存的特殊配置
name:指定对象的完整名
-->
<cache name="SimplePageCachingFilter" maxElementsInMemory="10000" eternal="false"
timeToIdleSeconds="300" timeToLiveSeconds="600" overflowToDisk="true" />
</ehcache>
2.在web.xml中添加过滤器
<!-- cache缓存机制 -->
<filter>
<filter-name>PageCacheFilter</filter-name>
<filter-class>net.sf.ehcache.constructs.web.filter.SimplePageCachingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>PageCacheFilter</filter-name>
<url-pattern>/index.jsp</url-pattern>
</filter-mapping>
3.在index.jsp中通过获取系统时间来测试cache缓存
<%
out.println(System.currentTimeMillis());
%>
输出结果,发现每次刷新,获取到的系统时间并不会立即改变,只有在设置的cache缓存周期结束之后,才会更新。
4.如果要添加局部缓存,只需要更改过滤器名称,这个自行百度即可