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

本文介绍如何使用OSCache在JSP页面实现高效缓存,包括配置步骤、具体实现及优化性能的方法。通过实例展示了缓存的有效管理和更新机制。

[WEB的信息安全隐患之一: 未授权用户通过直接在IE中输入URL直接登录系统 解决办法: 通过配置filter过滤无效用户的连接请求. WEB的信息安全隐患之二: 合法用户"注销"后,在未

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;

}

}[在jsp页面中使用oscache标签实现可配置的页面缓存 文章分类:Java编程 最近在学习oscache的相关内容,写点东西作为巩固 如果在jsp中使用如下标签 Java代码

4.建testCache.jsp,testCache2.jsp

test ,hello world!!

序号
名字
密码

//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

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);

%>

}

%>

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

test

oscache/WEB-INF/classes/ oscache.tld

CacheFilter

com.opensymphony.oscache.web.filter.CacheFilter

CacheFilter

/testCache.jsp

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

5.4对所有的jsp缓存,

修改WEB-INF\web.xml

test

CacheFilter

com.opensymphony.oscache.web.filter.CacheFilter

time

60

scope

session

CacheFilter

*.jsp

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

java-web-jsp-sql-mysql[ 使用OSCache实现页面的缓存,优化性能   OSCache由OpenSymphony设计,它是一种开创性的JSP定制标记应用,提供了在现有JSP页面之内实现快速内存缓冲的功能。 OSCache

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值