科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道用CashFilter实现页面级缓存实践

用CashFilter实现页面级缓存实践

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

1.mysql在本地localhost的test数据库 建person表,暂以字段id,name,password ,表中可输入一行值. 2.建类 DAOUtil import java.sql.Connection; import java.s

作者:中国IT实验室 来源:中国IT实验室 2007年9月26日

关键字:

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共2页)

4.建testCache.jsp,testCache2.jsp

<%@page contentType="text/html; charset=GBK"%>
<%@page import="com.mcsky.dao.PersonDAO" session="false"%>
<%@page import="java.util.List" session="false"%>
<html>
<body bgcolor="#FFFFFF">
test ,hello world!!<p>
  <table width="85%" border="1" align="center">
   <tr>
      <td width="8%" height="20"> <div align="center">序号</div></td>
      <td width="12%"><div align="center">名字</div></td>
      <td width="17%"><div align="center">密码 </div></td>
       </tr>
<%
//todo connect mysql server (localhost root/admin) and test(db) person(table)
List list =PersonDAO.getInstance().getPersonInfo();
System.out.println("size==="+list.size());
for(int i=0;i<list.size();i++){
String namePass = (String)list.get(i);
java.util.StringTokenizer st = new  java.util.StringTokenizer(namePass,",");
String   name = st.nextToken();
String    pass = st.nextToken();
System.out.println("namePass+++++"+namePass);
%>
  <tr>
      <td><div align="center"><%=i+1%></div></td>
      <td> <div align="center"><%=name%></div></td>
      <td><div align="center"><%=pass%></div></td>
      </tr>
    <%
        }
%>
  </table>

</body>
</html>

5.把module部署在tomcat的webapp下

5.1 在WEB-INF\lib\log4j-1.2.8.jar,mysql-connector-java-3.0.11-stable-bin.jar,oscache-2.3.2.jar,commons-logging.jar,jgroups-all.jar

5.2 在WEB-INF\classes拷贝cach\etc\下的oscache.tld,oscache.properties

5.3 只对/testCache.jsp缓存

修改WEB-INF\web.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
  <display-name>test</display-name>
  <taglib><taglib-uri>oscache</taglib-uri><taglib-location>/WEB-INF/classes/ oscache.tld</taglib-location></taglib>
   <filter>   
   <filter-name>CacheFilter</filter-name>
   <filter-class>com.opensymphony.oscache.web.filter.CacheFilter</filter-class>
   </filter>
   <filter-mapping>
   <filter-name>CacheFilter</filter-name> 
       <url-pattern>/testCache.jsp</url-pattern>
      </filter-mapping>
    
</web-app>

启动tomcat,在mysql的person中增加一条记录,发现已对/testCache.jsp页面进行缓存,而/testCache2.jsp页面未缓存,如去掉黑体,则数据表增加一行,testCache.jsp也随之修改

5.4对所有的jsp缓存,

修改WEB-INF\web.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
  <display-name>test</display-name>
      <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>60</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>
            <url-pattern>*.jsp</url-pattern>
          </filter-mapping>
</web-app>

其中60s,是失效时间,在mysql的person中增加一条记录,发现已对/testCache.jsp,/testCache2.jsp页面进行缓存,页面不变化,60s后页面变化.

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件