[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后页面变化.终于
[ 使用OSCache实现页面的缓存,优化性能 OSCache由OpenSymphony设计,它是一种开创性的JSP定制标记应用,提供了在现有JSP页面之内实现快速内存缓冲的功能。 OSCache
本文介绍如何使用OSCache在JSP页面实现高效缓存,包括配置步骤、具体实现及优化性能的方法。通过实例展示了缓存的有效管理和更新机制。

254

被折叠的 条评论
为什么被折叠?



