如果我打开了多个 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}
当前响应和所有后续请求/响应中不再存在。它显然不起作用很可能只是您的误解。
也可以看看:
ServletContext
/ HttpSession
/ HttpServletRequest
/ HttpServletResponse
work? 关于jsp - 如何在 Java EE 中关闭特定 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5334913/