Tomcat session保存至MySQL
程序员文章站
2022-04-04 19:42:08
...
实验环境为tomcat7.0.64 mysql 5
准备工作
1、需要创建session表
CREATE TABLE `tomcat_sessions` ( `session_id` varchar(100) NOT NULL, `valid_session` char(1) NOT NULL, `max_inactive` int(11) NOT NULL, `last_access` bigint(20) NOT NULL, `app_name` varchar(255) DEFAULT NULL, `session_data` mediumblob, PRIMARY KEY (`session_id`), KEY `kapp_name` (`app_name`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
2、将mysql驱动放到$CATALINA_HOME/lib目录下
这个就不用多费口舌了
3、修改context.xml文件
<Manager className="org.apache.catalina.session.PersistentManager" maxIdleBackup="1" minIdleSwap="0" maxIdleSwap="0" processExpiresFrequency="1" saveOnRestart='true'> <Store className="org.apache.catalina.session.JDBCStore" connectionURL="jdbc:mysql://localhost:3306/test?user=root&password=123456" driverName="com.mysql.jdbc.Driver" sessionAppCol="app_name" sessionDataCol="session_data" sessionIdCol="session_id" sessionLastAccessedCol="last_access" sessionMaxInactiveCol="max_inactive" sessionTable="tomcat_sessions" sessionValidCol="valid_session" /> </Manager>
试验:
启动tomcat catalinar.bat run
写两个jsp页面,一个页面里写session.setAttribute("id":"0001");session.setAttribute("name":"jaychang");
访问这个jsp,观察MySQL的test数据库的tomcat_sessions表数据
说明实验成功了!(注意:上面session有效时间应为session失效时间,是我写错了 ,即从用户发出请求开始到session销毁的时间为1800秒)
再整一个jsp, <%session.invalidate();%>,访问下
发现数据库里这条记录就消失了。
至此Tomcat 配置 session保存在MySQL的配置方法,就简单说到这里,希望对您有帮助。如果有好的建议,欢迎讨论。
参考:
http://*.com/questions/17305128/tomcat-user-session-storage-with-jdbcstore-immediate-session-timeout
https://tomcat.apache.org/tomcat-7.0-doc/config/manager.html
推荐阅读
-
随机生成八位优惠码并保存至Mysql数据库
-
PHP实现利用MySQL保存session的方法
-
随机生成八位优惠码并保存至Mysql数据库
-
使用python的pandas库读取csv文件保存至mysql数据库
-
PHP利用MySQL保存session的实现思路及示例代码
-
php中使用session_set_save_handler()函数把session保存到MySQL数据库实例
-
Express全系列教程之(九):将session上传至mysql数据库
-
PHP实现利用MySQL保存session的方法
-
php使用MySQL保存session会话的方法
-
使用python的pandas库读取csv文件保存至mysql数据库