【发布时间】:2018-09-17 08:56:31
【问题描述】:
我制作了一个具有 login 和 logout 功能的网络应用程序。
我第一次登录和注销似乎很正常。
但是当我换另一个账号,重复以上操作时,
注销操作直接跳转到index.html而不是通过
LogoutServlet.java。所以会话仍然有效。
你知道原因吗?
如果你能告诉我原因,我将不胜感激。
我的关键代码如下。
LoginServlet.java
HttpSession session = request.getSession(false);
if(session!=null)
session.setAttribute("LoginUser", user);
request.getRequestDispatcher("/WEB-INF/jsp/home.jsp")
.forward(request, response);
home.jsp
<a href="Logout.action">Logout</a>
LogoutServlet.java
@WebServlet("/Logout.action")
protected void doGet(...) {
HttpSession session = request.getSession(false);
if(session!=null) {
session.removeAttribute("LoginUser");
session.invalidate();
}
request.getRequestDispatcher("/index.html").forward(request, response);
}
你可以在我的网站上试试。 http://anwuli.cn/HelloWorld
提供了 2 个测试帐号。
格式:用户名和密码
第一:admin&123456
二:安鹏&123456
【问题讨论】:
标签: java jsp session servlets httpsession