创建指向JSP注销的链接

Kel*_*elp 4 java authentication jsp servlets forms-authentication

当用户登录到我的应用程序时,他提交一个要通过Servlet处理的表单.servlet为用户创建会话.如何创建链接以便用户可以注销?我似乎无法直接链接到Servlet.如何删除会话并链接回主页?

这是我可以做到的一种方式,但它似乎并不"正确".我可以链接回index.jsp?logout = true.我的index.jsp将查看logout是否为true并删除会话.

还有另一种方法吗?

Jer*_*emy 10

编写一个映射到的servlet /logout,然后执行以下操作doGet:

HttpSession session = request.getSession(false);
if(session != null)
    session.invalidate();
request.getRequestDispatcher("/index.jsp").forward(request,response);
Run Code Online (Sandbox Code Playgroud)

如果用户有会话,那么它们最终会被重定向到index.jsp.

  • 那么URL就是错误的:)当你在浏览器地址栏中输入它时它是否有效?您是否考虑了上下文路径?你了解相对URL的工作原理吗? (4认同)

cdi*_*run 5

我觉得这样做最容易:

<form method="link" action="logout.jsp">
    <input type="submit" value="Logout"/>
</form>
Run Code Online (Sandbox Code Playgroud)

没有logout.jsp有这个:

<%
session.invalidate();
response.sendRedirect("startpage.html");
%>
Run Code Online (Sandbox Code Playgroud)