知识大全 用CashFilter实现页面级缓存实践

Posted

篇首语:知识比金钱宝贵,比刀剑锋利,比枪炮威力大。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 用CashFilter实现页面级缓存实践相关的知识,希望对你有一定的参考价值。

用CashFilter实现页面级缓存实践  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

   mysql在本地localhost的test数据库 建person表 暂以字段id name password  表中可输入一行值

   建类 DAOUtil

  import  java sql Connection;import  java sql DriverManager;

  public class DAOUtil     public DAOUtil()    

  public static Connection getConn()         Connection conn = null;        String db_url = jdbc:mysql:// : /test?useUnicode=true&characterEncoding=gb ;        String db_user = root ;        String db_password= admin ;        String db_driver = mysql jdbc Driver ;

  try             Class forName(db_driver);            conn = DriverManager getConnection(db_url db_user db_password);             catch (Exception ex)              ex printStackTrace();                return conn;   

  /**  * dbclose  * 关闭Connection Statement  * @param conn Connection  * @param stmt Statement  */ public static void dbclose(Connection conn Statement stmt)        try            if (stmt != null)               stmt close();       catch (Exception e)          e printStackTrace();              try            if (conn != null)               conn close();       catch (Exception e)           e printStackTrace();         

  

   建类 PersonDAO

  import java util *;import java sql Connection;import java sql Statement;import java sql ResultSet;

  public class PersonDAO     static PersonDAO pdao;    public static PersonDAO getInstance()         if (pdao == null)             synchronized (PersonDAO class)                 pdao = new PersonDAO();                            return pdao;   

  public PersonDAO()         super();   

  public static void main(String[] args)           System out println( person=== +PersonDAO getInstance() getPersonInfo());              private static List getPersonInfo()           String name  = ;          String password = ;          Connection conn = null;          List list = new java util ArrayList();          Statement stmt = null;          String sql =                  select name password from person ;          try               conn = DAOUtil getConn();              stmt = conn createStatement();              ResultSet rs = stmt executeQuery(sql);              while (rs next())                   name = (String)rs getString( name );                  password = (String)rs getString( password );                  list add(name+ +password);                           catch (Exception ex)               ex printStackTrace();               finally               DAOUtil dbclose(conn stmt);                    return list;       

   建testCache jsp testCache jsp

  <%@page contentType= text/; charset=GBK %><%@page import= mcsky dao PersonDAO session= false %><%@page import= java util List session= false %><><body bgcolor= #FFFFFF >test hello world!!<p>  <table width= % border= align= center >   <tr>      <td width= % height= > <div align= center >序号</div></td>      <td width= % ><div align= center >名字</div></td>      <td width= % ><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= ;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+ %></div></td>      <td> <div align= center ><%=name%></div></td>      <td><div align= center ><%=pass%></div></td>      </tr>    <%        %>  </table>

  </body></>

   把module部署在tomcat的webapp下

   在WEB INF\\lib\\log j jar mysql connector java stable bin jar oscache jar mons logging jar jgroups all jar

   在WEB INF\\classes拷贝cach\\etc\\下的oscache tld oscache properties

   只对/testCache jsp缓存

  修改WEB INF\\web xml

  <?xml version= encoding= UTF ?><!DOCTYPE web app PUBLIC //Sun Microsystems Inc //DTD Web Application //EN app_ _ 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> 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页面进行缓存 而/testCache jsp页面未缓存 如去掉黑体 则数据表增加一行 testCache jsp也随之修改

   对所有的jsp缓存

  修改WEB INF\\web xml

  <?xml version= encoding= UTF ?><!DOCTYPE web app PUBLIC //Sun Microsystems Inc //DTD Web Application //EN app_ _ dtd ><web app>  <display name>test</display name>    <filter>            <filter name>CacheFilter</filter name>        <filter class> opensymphony oscache web filter CacheFilter</filter class>          <init param>                   <param name>time</param name>                     <param value> </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>

cha138/Article/program/Java/JSP/201311/19148

相关参考

知识大全 页面输出缓存

  最简单的缓存机制把整个Aspx页面保存在服务器端内存中用户请求页面时直接从服务器端内存中提取数数据不在经历页面的生命周期主要用于不经常更新和修改而在第一次编译是时要经过大量处理的数据页面输出缓存是

知识大全 禁止页面缓存的方法

  在jsp或者servlet中加入<%responsesetHeader(PragmaNocache);responsesetHeader(CacheControlnocache);respo

知识大全 oscache的页面缓存

  oscache的下载地址    将jar包拷贝到项目的lib中  修改webxml文件加入如下几行  <filter>  <filtername>encodingFilte

知识大全 ASP.NET中如何对页面输出缓存

ASP.NET中如何对页面输出缓存  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!lishixinz

知识大全 asp从缓存读数据实例

从文件读数据要比直接从数据库快测试读出条新闻读数据库用了毫秒读文件只用了毫秒下例为使用文件缓存的代码  使用方法在需要使用文件缓存的页面加入下列代码 <!#incl

知识大全 ASP.NET项目开发指南:用户控件级输出缓存

ASP.NET项目开发指南:用户控件级输出缓存  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  &

知识大全 ASP.NET缓存:方法分析和实践示例

ASP.NET缓存:方法分析和实践示例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  尽早缓存经

知识大全 ASP.NET缓存方法分析和实践示例

ASP.NET缓存方法分析和实践示例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  尽早缓存经常

知识大全 缓存详解

  我们可以在HTML页面利用metatag和PHP程序中通过header来控制例如  代码如下  header(CacheControl:maxage=mustrevalidate);//小时  h

知识大全 hibernate的二级缓存介绍

  hibernate二级缓存是由SessionFactory管理所以又叫SessionFactory级缓存它是通过不同的类库来实现的比如ehcacheoscache等和一级缓存一样二级缓存也是用来缓