Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.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
如何有效地摧毁';会议';在Javaservlet中?_Java_Session_Servlets_Destroy - Fatal编程技术网

如何有效地摧毁';会议';在Javaservlet中?

如何有效地摧毁';会议';在Javaservlet中?,java,session,servlets,destroy,Java,Session,Servlets,Destroy,我正在使用的Servlet有一个变量session 我尝试了session.invalidate(),这似乎破坏了会话,但当我执行像这样的重定向时,response.sendRedirect(“restanes.jsp”),它给我HTTP状态500错误,这行代码: java.lang.IllegalStateException: getAttribute: Session already invalidated 这是预期的,因为我试图破坏会话 但为什么页面无法重定向?在同一页的其他地方,我已成

我正在使用的Servlet有一个变量
session

我尝试了
session.invalidate()
,这似乎破坏了会话,但当我执行像这样的重定向时,
response.sendRedirect(“restanes.jsp”),它给我
HTTP状态500
错误,这行代码:

java.lang.IllegalStateException: getAttribute: Session already invalidated
这是预期的,因为我试图破坏会话

但为什么页面无法重定向?在同一页的其他地方,我已成功重定向

如何成功销毁会话并重定向

代码段:

if(request.getParameter("logout") != null ){  
        session.invalidate();
        response.sendRedirect("restanes.jsp");
}
更新:
我所需要做的就是
返回
after
response.sendRedirect(“restanes.jsp”)。衷心感谢
BalusC

发送重定向后,您需要从方法返回

if (request.getParameter("logout") != null) {  
    session.invalidate();
    response.sendRedirect("restanes.jsp");
    return; // <--- Here.
}
if(request.getParameter(“logout”)!=null){
session.invalidate();
sendRedirect(“restanes.jsp”);
return;//您的代码正常

if(request.getParameter("logout") != null )
{  
  session.invalidate();
  response.sendRedirect("restanes.jsp");
}
但请确保重定向页面不包含任何会话属性。500“restanes.jsp”页面出现内部错误。
处理重定向的页面和会话活动。

500错误很可能是由重定向后的页面(restanes.jsp)产生的。您能从日志中获得更多信息吗?会话的存在/缺少不应影响重定向。@Thilo如果我删除session.invalidate();重定向位工作正常。当我放回那一行时,错误还指向我之前设置的会话变量。你确定你重定向到的页面不需要来自无效会话的信息吗?@MrGhimire-但是有一个会话。它只是无效。很可能这就是正在发生的-原因在任何情况下都更有意义。如果OP确认,那么我将投票并删除我的答案。@BalusC我是PHP的家伙,希望重定向能够完美地工作(无需返回)。我已经用return进行了测试;并且工作正常。衷心感谢。不客气。请注意,这同样适用于PHP。您需要在
标题之后放置一个
退出;
('Location:foo.php');
if
块中,以防止运行剩余的代码(尽管这在php中可能不一定有害;webbrowser无论如何都会忽略不必要的检索HTML)。正如OP和BalusC指出的那样;his(不确定基于姓名的性别)代码不正常。它需要在BalusC的回答中给出的修复。