1、首先,在conf/context.xml中文件中,将以下的配置加入到根结点下:
<Manager className="org.apache.catalina.session.PersistentManager"
maxActiveSessions="-1"
minIdleSwap="-1"
maxIdleSwap="-1"
maxIdleBackup="-1">
<Store className="org.apache.catalina.session.JDBCStore"
driverName="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/tomcat_session?user=root&password=root"
sessionTable="sessions"
sessionIdCol="session_id" sessionDataCol="session_data"
sessionValidCol="valid_session" sessionMaxInactiveCol="max_inactive"
sessionLastAccessedCol="last_access" sessionAppCol="app_name" checkInterval="60" />
</Manager>
2、把mysql-connector-java.jar 拷贝到tomcat的lib下;
3、创建数据库、表结构(根据上面的配置信息)
1)根据上面配置,创建tomcat_session数据库;
2)创建表结构:
CREATE TABLE sessions (
session_id VARCHAR(100) NOT NULL PRIMARY KEY,
valid_session CHAR(1) NOT NULL,
max_inactive INT NOT NULL,
last_access BIGINT NOT NULL,
app_name VARCHAR (255),
session_data MEDIUMBLOB,
KEY kapp_name(app_name)
);
启动tomcat即可。
4、验证:
1)创建a.jsp,将其放到tomcat的webapp下的ROOT目录中。内容如下:
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<%
session.setAttribute("id","123321");
%>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>tomcat session mysql</title>
<body>
tomcat session mysql
</body>
</html>
访问http://localhost:8080/a.jsp 然后, 停掉tomcat,会发现session信息已经保存到了mysql中。
2)创建b.jsp,将其放到tomcat的webapp下的ROOT目录中。内容如下:
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<%
session.invalidate();
%>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>tomcat session mysql</title>
<body>
tomcat session mysql
</body>
</html>
访问http://localhost:8080/b.jsp 然后,会发现mysql中session信息消失。