我有3个JSP文件:
login.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>
.....


logout.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>
....


logging.jsp

....
....


和servlet用于login.jsp

...
        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(或为空?)

为什么呢

最佳答案

除非明确配置,否则JSP将创建会话。

代替检查会话是否存在,而是检查会话中的值。

关于java - JSP session 无效不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21852273/

10-11 04:04
查看更多