【问题标题】:JSP session invalidation doesn't workJSP 会话失效不起作用
【发布时间】:2014-02-18 11:24:44
【问题描述】:

我有 3 个 JSP 文件: 登录.jsp:

...
    <body>
      <font face="tahoma" size="2">
        <form action="log" METHOD="POST">
            <p>login:</p>
            <input type="text" name=login value="person" />      
            <p>password:</p>
            <input type="password" name=password value="" />
            <input type="submit" name="next" value="OK" />
      </font>                                                   
    </body>
.....

注销.jsp

...
    <body>
      <font face="tahoma" size="2">
        session id : ${sessionScope.sesId}</p>       
        user : ${sessionScope.userName}</p>
    <h3>Logout page</h3> 
        <form action="logout" METHOD="POST">
            <input type="submit" name="in" value="log in again" />
      </font>                                                   
    </body>
....

logged.jsp

....
....

和用于 login.jsp 的 servlet

...
        HttpSession ses = request.getSession(false);            
        if (ses == null) {                
            ses = request.getSession();            
            ses.setAttribute("userName", login);
            ses.setAttribute("sesId", ses.getId());
            request.getRequestDispatcher("/logged.jsp").forward(request,response);                    
        }else {
            ses.invalidate();                                
            request.getRequestDispatcher("/logout.jsp").forward(request,response);                    
        }
...

NetBeansIDE 7.4 本地主机 Windows 7 上的 Tomcat

当我启动项目(运行/运行项目)时,它总是重定向到 logout.jsp 。 sesId 和 userName 为 null(或为空?)

为什么?

【问题讨论】:

  • 因为 ses 显然不为空。您可能希望扩展会话检查以查看 ses 是否不为空或会话不包含 sesId 属性。

标签: java jsp servlets invalidation


【解决方案1】:

JSP创建一个会话,除非明确配置为不这样做。

不是检查会话是否存在,而是检查会话中的值

【讨论】:

    【解决方案2】:

    会话对象本身不会为空,除非用户禁用了 cookie(即使那样我也不认为它会为空)。您需要检查属性是否为 null。

      String username = (String)ses.getAttribute("userName");
      if(username == null)
    

    【讨论】:

      猜你喜欢
      • 2016-05-11
      • 1970-01-01
      • 2013-06-29
      • 2019-01-25
      • 1970-01-01
      • 1970-01-01
      • 2014-09-03
      • 1970-01-01
      • 2012-07-26
      相关资源
      最近更新 更多