Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsp 如何在JavaEE中关闭特定会话_Jsp_Session_Servlets_Jakarta Ee - Fatal编程技术网

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");