Sus*_*ire 19 java session servlets destroy
我正在使用的Servlet有一个变量session.
我试过session.invalidate();,这似乎已经破坏了会话但是当我像这样重定向时response.sendRedirect("restanes.jsp");,它给了我HTTP Status 500这行错误:
java.lang.IllegalStateException: getAttribute: Session already invalidated
Run Code Online (Sandbox Code Playgroud)
这是因为我试图破坏会话.
但为什么页面无法重定向?在其他地方的同一页面上,我已成功重定向.
如何成功销毁会话和重定向?
代码段:
if(request.getParameter("logout") != null ){
session.invalidate();
response.sendRedirect("restanes.jsp");
}
Run Code Online (Sandbox Code Playgroud)
更新:我需要做的就是return;追求response.sendRedirect("restanes.jsp");.真诚的感谢BalusC.
Bal*_*usC 42
您需要在发送重定向后从方法返回.
if (request.getParameter("logout") != null) {
session.invalidate();
response.sendRedirect("restanes.jsp");
return; // <--- Here.
}
Run Code Online (Sandbox Code Playgroud)
否则代码将继续运行并session.getAttribute()在块中进一步向下触发某个方法,从而导致此异常.至少,这是迄今为止所描述的问题的最可能原因,并且基于这是一个非常常见的启动器错误的事实.另见例如这个答案.
| 归档时间: |
|
| 查看次数: |
81212 次 |
| 最近记录: |