Jsp 如何在JavaEE中关闭特定会话
如果我有以下几个会话打开,如何关闭特定会话:Jsp 如何在JavaEE中关闭特定会话,jsp,session,servlets,jakarta-ee,Jsp,Session,Servlets,Jakarta Ee,如果我有以下几个会话打开,如何关闭特定会话: String userName = (String) session.getAttribute("userName"); HashMap cartList = (HashMap) session.getAttribute("cartList"); 如果我想关闭cartList的会话,我应该使用什么代码 我尝试使用以下方法: session.invalidate()但它会关闭所有内容 session.removeAttribute(“cartList
String userName = (String) session.getAttribute("userName");
HashMap cartList = (HashMap) session.getAttribute("cartList");
如果我想关闭cartList的会话,我应该使用什么代码
我尝试使用以下方法:
session.invalidate()
但它会关闭所有内容李>
session.removeAttribute(“cartList”)代码>它没有关闭我的会话
session
引用的会话中读取属性
见
session.invalidate()
将解除绑定到它的所有对象,而session.removeAttribute(“cartList”)
将解除cartList对象与会话的绑定。尝试访问
HashMap cartList = (HashMap) session.getAttribute("cartList");
在session.removeAttribute(“cartList”)之后代码>
它将在“cartList”中为您提供空值您没有为每个访问者打开多个会话。每个访问者只有一个会话。您只是在其中存储属性。通过invalidate()
方法“关闭”会话。它会销毁整个会话并解除所有属性的绑定。任何下一个HTTP请求都将产生一个新的会话
你好像只是想解开购物车的带子。removeAttribute(“name”)
方法是正确的选择。它将从会话中删除该属性,因此当前响应和所有后续请求/响应中的getAttribute(“name”)
或${name}
将不再访问该属性。它显然不起作用,这很可能是你方的误解
另见:
为什么要关闭会话?会话应严格管理此处阅读=>您可以使用httpsession中的removeAttribute删除Cartlist属性,粗略地说,会话应在整个登录过程中保持,并应在用户注销时失效(销毁)。
HashMap cartList = (HashMap) session.getAttribute("cartList");