使用缓存技术来提高性能之——OSCache缓存技术入门(二)

来源:互联网 发布:qq空间抢车位数据恢复 编辑:程序博客网 时间:2024/05/22 06:39

1.缓存整个页面

    在OSCache组件中提供了一个CacheFilter用于实现页面级的缓存。主要用于对web应用中的某些动态页面进行缓存,尤其是那些需要生成PDF格式文件/报表、图片文件等的页面,不仅减少了数据库的交互、减少数据库服务器的压力,而且对于减少web服务器的性能消耗有很显著的效果。

   功能是通过在web.xml中进行配置来决定缓存哪一个或者哪一组页面,而且还可以设置相关缓存属性。

缓存指定页面,配置如下:   


<filter>       <filter-name>CacheFilter</filter-name>       <filter-class>com.opensymphony.oscache.web.filter.CacheFilter</filter-class>        <!-- 设置缓存时间 -->    <init-param>            <param-name>time</param-name>           <param-value>600</param-value>       </init-param>        <!-- 设置作用范围 -->    <init-param>            <param-name>scope</param-name>           <param-value>session</param-value>       </init-param>    </filter>     <filter-mapping>         <filter-name>CacheFilter</filter-name>    <!-对页面 main.jsp 进行缓存-->         <url-pattern>main.jsp</url-pattern>    <!-对所有jsp页面内容进行缓存         <url-pattern>*.jsp</url-pattern>  -->    </filter-mapping>

备注:

1.在页面级缓存的情况下,可以通过设置CacheFilter的初始属性来决定缓存的一些特性:time属性设置缓存的时间段,默认为3600秒,可以根据自己的需要只有的设置,而scope属性设置,默认为application,可选项包括application、session。

2.只有客户访问时返回http头信息中代码为200(也就是访问已经成功)的页面信息才能够被缓存。

2.缓存局部页面

    使用OScache标签,用标签把指定的内容给包含起来。在标签中可以设置缓存的属性。
用OSCache局部缓存,保存页面中的内容:
<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@ page language="java" import="java.util.*" %><%@ page language="java" import="java.text.*" %>       <%@ taglib uri="http://www.opensymphony.com/oscache" prefix="cache" %>    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body><%SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); %><div><cache:cache key="cacheDate" scope="session" time="15"> <h2>使用缓存,让时间在15秒内不进行更新</h2><div><%String cacheTime = sdf.format(new Date());out.println(cacheTime);%></div></cache:cache></div><hr><div><h2>不使用缓存</h2><div><%String commonTime = sdf.format(new Date());out.println(commonTime); %></div></div></body></html>

页面效果:


    参考文章:

1. OSCache页面缓存  http://blog.csdn.net/orclight/article/details/8525896

2.用OSCache进行缓存对象    http://blog.csdn.net/zhifeng172/article/details/7608682


0 0