3

我有一个带有 tomcat、java、jsp、servlet 的 web 项目。如果我在我的 webproject 前端注销,我想销毁所有会话。但是下面的代码不起作用。我希望所有会话都被销毁,并且如果我注销,我必须在下一步中像往常一样使用我的用户和密码进行身份验证。谢谢您的帮助。

if(lstrAction!=null && lstrAction.equals(ApplicationConstants.LOGOUT)){

            HttpSession session = request.getSession(false);
            if(session != null){
                session.invalidate();
                session = request.getSession(false);
            }

        }

我已经调试了我的项目,我发现会话在最后一行之后不为空。

4

2 回答 2

0
session.invalidate();
session = request.getSession(false);

在会话失效后,您将重新分配会话。在这一点上,它不会为空。您需要进行空值检查以查找会话是否为空。

于 2013-06-23T06:57:24.290 回答
-1

try this code. It surely works for you.

Cookie c[]=request.getCookies(); if(c==null){ response.sendRedirect("index.jsp"); } else { session.removeAttribute(c[0].getValue()); response.sendRedirect("index.jsp"); }

于 2013-06-20T18:25:39.757 回答