java web中,在session失效之前向数据库插入一条数据,应该怎么做?如何监听session失效?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java web中,在session失效之前向数据库插入一条数据,应该怎么做?如何监听session失效?相关的知识,希望对你有一定的参考价值。
要么就是 插入数据之后关闭session,要么就是使用spring声明式事务处理,也就是方法中不直接关闭session,spring会帮你关掉,这个时候你就可以插入了。别的我就不知道了 参考技术A 是Hibernate的session? 如果是在Session没有close这前,直接执行session.save("临时对象");完了commit下Transaction就可以了。追问
不是hibernate,每个session回话都有一个有效期,一般是30分钟,如何监听失效的一瞬间向数据库插入记录
追答哦,你说的这个session呀,你用session保存的用户登陆信息,当用户退出的时候是不是想修改下对应的数据库记录,表示用户已经不在线了?
追问当用户退出的时候,向数据库插入一条记录,记录中有用户id,用户名等信息
追答没做过监听session的,我也想知道。
参考技术B 楼主可以重写Session的destory()方法.。当Session实效前会调用本身的destory(),那你就可以重写它,让它想数据库插入数据追问我试过了,session失效后才调用destroy方法
Java设置session超时(失效)的三种方式
1、 在web容器中设置(此处以tomcat为例)
在tomcat-6.0\conf\web.xml中设置,以下是tomcat 6.0中的默认配置:
<!-- You can set the default session timeout (in minutes) for all newly --> <!-- created sessions by modifying the value below. --> <session-config> <session-timeout>30</session-timeout> </session-config>
Tomcat默认session超时时间为30分钟,可以根据需要修改,负数或0为不限制session失效时间。
2、 在工程的web.xml中设置
<session-config> <session-timeout>15</session-timeout> //时间单位是分钟 </session-config>
3、通过Java代码设置
session.setMaxInactiveInterval(30*60);//以秒为单位
三种方式优先级:1 < 2 <3
以上是关于java web中,在session失效之前向数据库插入一条数据,应该怎么做?如何监听session失效?的主要内容,如果未能解决你的问题,请参考以下文章