【问题标题】:Can I delete a HttpSession manually in a servlet?我可以在 servlet 中手动删除 HttpSession 吗?
【发布时间】:2012-01-03 05:53:57
【问题描述】:

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

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

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

谢谢!

【问题讨论】:

    标签: servlets httpsession


    【解决方案1】:

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

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


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

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

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

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

    另见:

    【讨论】:

    • 老师很棒。我是那个感到困惑的人。非常感谢您的澄清。
    猜你喜欢
    • 1970-01-01
    • 2019-10-12
    • 2011-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多