我可以在servlet中手动删除HttpSession吗?

时间:2011-11-21 18:40:34

标签: servlets httpsession

我接受了一个JSP类,我们了解到在使用之前我们应该总是删除HttpSession的所有属性。所以我的一位同学问道 - “我们在使用它之后永久删除HttpSession怎么样?”

所以,我的问题是“可以删除HttpSession吗?”

据我所知到目前为止...... HttpSession由servlet容器创建,与HttpServletRequest和HttpServletResponse相同。我们通过HttpServletRequest获取它,但我们无法手动删除它。相反,我们可以设置超时以使会话结束。由于我们无法删除它,因此我们需要确保在使用之前清理会话。我是对的吗?

谢谢!

1 个答案:

答案 0 :(得分:15)

  

我参加了一个JSP课程,我们了解到在使用之前我们应该总是删除HttpSession的所有属性。

如果你的意思是通过removeAttribute()getAttributeNames()可以获得的每个属性手动使用session.invalidate(); response.sendRedirect("login.jsp"); ,那么这就没有意义了。我不确定这是不好的课程/导师,还是你误解了课程/导师。


  

所以我的一位同学问道 - “我们在使用HttpSession之后永久删除了HttpSession怎么样?”

是的,您可以通过使其无效来“删除”它。

{{1}}

任何后续请求都会强制服务器创建新会话。重定向不是必需的,但如果您想在全新的会话中呈现视图,则必须使用重定向。

另见: