jsp - 如何在 Java EE 中关闭特定 session

标签 jsp session servlets jakarta-ee

如果我打开了多个 session ,如何关闭特定 session ,如下所示:

String userName = (String) session.getAttribute("userName");
HashMap cartList = (HashMap) session.getAttribute("cartList");

如果我想关闭 cartList 的 session ,我应该使用什么代码?

我尝试使用以下内容:
  • session.invalidate()但它关闭了一切。
  • session.removeAttribute("cartList");它没有关闭我的 session 。
  • 最佳答案

    您没有为每个访问者打开多个 session 。每个访问者只有一个 session 。您只是在其中存储属性。 “关闭” session 由 invalidate() 发生方法。它会破坏整个 session 并取消绑定(bind)所有属性。任何下一个 HTTP 请求都将导致一个新的 session 。
    您似乎只想解除绑定(bind)购物车。 removeAttribute("name")方法是正确的做法。它将从 session 中删除该属性,因此 getAttribute("name") 无法访问它或 ${name}当前响应和所有后续请求/响应中不再存在。它显然不起作用很可能只是您的误解。
    也可以看看:

  • How does ServletContext / HttpSession / HttpServletRequest / HttpServletResponse work?
  • 关于jsp - 如何在 Java EE 中关闭特定 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5334913/

    相关文章:

    java - 使用存储在数据库中的信息使用 struts 2 和 ajax 生成树的节点

    java - 显示标签在jsp中不显示详细信息

    javascript - 使用jquery在div中添加输入字段后,表单在回车时提交

    go - Gin Sessions 将状态和代码存储在 URL 中,我想更改它以使我的 URL 更清晰

    macos - 使 session 设置保存功能与 ultisnips 配合良好

    asp.net - 如何使用 AJAX 从服务器获取信息而不重置 session 超时?

    无法解析 javax.servlet.http.HTTPServlet 导入,而包的其余部分导入正常

    html - JSP 中标记 <div> 的位置无效

    java - Tomcat6问题和PermGen空间

    spring - 在运行时 web 应用程序如何使用在项目的 pom.xml 中不同的 servlet-api.jar?