`
z75148885
  • 浏览: 186071 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

用CashFilter实现页面级缓存实践[ OSCache使用]

阅读更多

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

2.建类 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://127.0.0.1:3306/test?useUnicode=true&characterEncoding=gb2312";
String db_user = "root";
String db_password= "admin";
String db_driver = "com.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();
}
}

}

3.建类 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;
}
}

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后页面变化.终于

分享到:
评论

相关推荐

    二级缓存OScache配置

    二级缓存插件OScache配置,很好的学习资料

    缓存技术 oscache-2.3.2.jar包下载

    缓存技术 oscache-2.3.2.jar包下载

    oscache,缓存机制的使用

    oscache,java,缓存机制的使用

    hibernate+oscache实现二级缓存实例

    非常实用的一个例子,有关于缓存对象 list 或缓存地址或jsp或其它页面,在实例中都有,须望可以帮到大家

    oscache缓存技术

    oscache缓存技术,压缩包中有详细代码及步骤

    OsCache缓存框架使用示例

    这里结合 天气预报的webservice 展示了OsCache框架的具体使用方法 项目可直接运行 ,代码简洁清晰

    Oscache使用手册

    尤其是在Web应用中,通过缓存页面的输出结果,可以很显著的改善系统运行性能。 OSCache标记库由OpenSymphony设计,它是一种开创性的缓存方案,它提供了在现有JSP页面之内实现内存缓存的功能。OSCache是个一个被广泛...

    基于OSCache的页面缓存(收藏)

    NULL 博文链接:https://davidxiaozhi.iteye.com/blog/1045223

    Hibernate OSCache缓存

    Hibernate OSCache缓存 Hibernate OSCache缓存

    OSCache配置说明文档

    OSCache由OpenSymphony设计,它是一种开创性的JSP定制标记应用,提供了在现有JSP页面之内实现快速内存缓冲的功能。OSCache是一个广泛采用的高性能的J2EE缓存框架,OSCache能用于任何Java应用程序的普通的缓存解决...

    OScache配置

    在 OSCache组件中提供了一个CacheFilter用于实现页面级的缓存,主要用于对web应用中的某些动态页面进行缓存,尤其是那些需要生成PDF 格式文件/报表、图片文件等的页面,不仅减少了数据库的交互、减少数据库服务器的...

    用OSCache进行缓存对象

    1、OSCache是什么? 2、OSCache的特点 3、有关“用OSCache进行缓存对象”的研究

    oscache缓存使用总结.doc

    oscache缓存使用总结

    oscache的使用实例和详解

    缓存框架oscache 的使用实例和详细解释,

    OSCache缓存技术

    尤其是在Web应用中,通过缓存页面的输出结果,可以很显著的改善系统运行性能。 OSCache标记库由OpenSymphony设计,它是一种开创性的缓存方案,它提供了在现有JSP页面之内实现内存缓存的功能。OSCache是个一个被广泛...

    oscache(JSP定制标记应用)

    javaweb做页面缓存常用,OSCache是一个工业级的J2EE缓存实现。OSCache不但能缓存java对象,还可以缓存页面,http请求和二进制内容,例如pdf文件等。通过应用OSCache,我们不但可以实现通常的Cache功能,还能够改善...

    oscache缓存中间件

    OSCache标记库由OpenSymphony设计,它是一种开创性的缓存方案,它提供了在现有JSP页面之内实现内存缓存的功能。OSCache是个一个被广泛采用的高性能的J2EE缓存框架,OSCache还能应用于任何Java应用程序的普通的缓存...

    oscache-java缓存框架

    oscache-java缓存框架插件和安装教程,使用教程一步到位

    oscache缓存技术入门实例

    oscache缓存技术入门实例

    SSM的整合+OScache页面缓存+freemark模板

    SSM的整合+OScache页面缓存+freemark模板。这是一个很牛比的东西。看看啊

Global site tag (gtag.js) - Google Analytics