如何设置session有效时间

如何设置session有效时间,第1张

常用的有两种方法

1. 在主页面中写入下面两句:

HttpSession session=request.getSession(true)

session.setMaxInactiveInterval(3600)//3600秒,注意服务器端的3600秒,而不是客户端的

2. 在项目的web.xml中设置:

<session-config>

<session-timeout>60</session-timeout>

</session-config>

这里的60就是60分钟。

Session:在计算机中,尤其是在网络应用中,称为“会话控制”。Session 对象存储特定用户会话所需的信息。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。当会话过期或被放弃后,服务器将终止该会话。Session 对象最常见的一个用法就是存储用户的首选项。例如,如果用户指明不喜欢查看图形,就可以将该信息存储在 Session 对象中。有关使用 Session 对象的详细信息,请参阅“ASP 应用程序”部分的“管理会话”。注意 会话状态仅在支持 cookie 的浏览器中保留。

方法一:web app server中,如websphere里可以设置超时时间为30分钟。

方法二:在web.xml中的session-config配置

session-timeout元素(WEB.XML文件中的元素)用来指定默认的会话超时时间间隔,以分钟为单位。该元素值必须为整数。如果 session-timeout元素的值为零或负数,则表示会话将永远不会超时。如:

<session-config> <session-timeout>30</session-timeout></session-config>//30分钟

方法三:setMaxInactiveInterval设置当前会话时间

setMaxInactiveInterval设置的是当前会话的失效时间,不是整个web的时间,单位为以秒计算。如果设置的值为零或负数,则表示会话将永远不会超时。常用于设置当前会话时间。该优先级要比方法三中的优先级高。

方法四:session中保存一个bean或者map,里面存储上相应的过期时间,一旦过期,remove掉。

方法四可以通过一个线程去扫描,如果时间带了,线程自动清除,或者用的时候进行判断,用过后进行remove,如果使用线程自动remove,可以使用spring的线程池,如图:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11354247.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存