Java HttpSession和JBoss。会话超时的影响是什么?
我继承的一些代码使用以下行创建会话:Java HttpSession和JBoss。会话超时的影响是什么?,java,servlets,httpsession,Java,Servlets,Httpsession,我继承的一些代码使用以下行创建会话: HttpSession session = req.getSession(); //req is an instance of HTTPServletRequest 在应用程序的配置中,会话配置的值设置为10(分钟) 在此之后,会话的唯一用途是获取会话id: String sid = req.getSession().getId(); 并宣布其无效: req.getSession().invalidate() 会话不用于存储用户数据。这一切都是通过数
HttpSession session = req.getSession(); //req is an instance of HTTPServletRequest
在应用程序的配置中,会话配置的值设置为10(分钟)
在此之后,会话的唯一用途是获取会话id:
String sid = req.getSession().getId();
并宣布其无效:
- req.getSession().invalidate()李>
--Justin Wyllie如果会话因超时或代码而无效,当您执行
请求.getSession()
时,您正在创建一个新会话。您可以通过比较两个ID的值来检查这一点
如果不希望getSession()
方法在没有创建会话的情况下创建新会话,可以将false
作为参数传递给它
如果您希望“某些东西失败”,您可以尝试向会话添加一个值(使用setAttribute()
方法),并在无效后检查它是否存在
返回与此请求关联的当前HttpSession,或者,如果没有当前会话且create为true,则返回新会话
仔细查看定义的第一部分,我猜与“this”请求对象关联的会话对象仍然不是空的。即使是这样,它也会返回一个新的“对象”,当然它是“非空的”。@Justin Wyllie:try with
HttpSession session=req.getSession(false)代码>尽管会话配置设置被设置为10分钟,但如果我调用它,情况是:sid=req.getSession().getId();在0分钟和30分钟时,我仍然得到相同的sid值。所以会话尚未过期?谢谢
req.getSession()