知识大全 用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的下载地址 将jar包拷贝到项目的lib中 修改webxml文件加入如下几行 <filter> <filtername>encodingFilte
ASP.NET中如何对页面输出缓存 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!lishixinz
从文件读数据要比直接从数据库快测试读出条新闻读数据库用了毫秒读文件只用了毫秒下例为使用文件缓存的代码 使用方法在需要使用文件缓存的页面加入下列代码 <!#incl
ASP.NET项目开发指南:用户控件级输出缓存 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &
ASP.NET缓存:方法分析和实践示例 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 尽早缓存经
ASP.NET缓存方法分析和实践示例 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 尽早缓存经常
我们可以在HTML页面利用metatag和PHP程序中通过header来控制例如 代码如下 header(CacheControl:maxage=mustrevalidate);//小时 h
hibernate二级缓存是由SessionFactory管理所以又叫SessionFactory级缓存它是通过不同的类库来实现的比如ehcacheoscache等和一级缓存一样二级缓存也是用来缓