2

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

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

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

谢谢!

4

1 回答 1

15

我学习了一个 JSP 类,我们了解到在使用 HttpSession 之前,我们应该始终删除它的所有属性。

如果您的意思是手动使用removeAttribute()可以通过 获得的每个属性getAttributeNames(),那么这真的没有意义。我不确定是课程/导师不好,还是您误解了课程/导师。


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

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

session.invalidate();
response.sendRedirect("login.jsp");

任何后续请求都将强制服务器创建一个新会话。顺便说一句,重定向不是必需的,但如果您想在新的会话中呈现视图,则必须这样做。

也可以看看:

于 2011-11-21T18:53:47.323 回答