您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

单击注销按钮,终止会话并重定向到登录页面

单击注销按钮,终止会话并重定向到登录页面

为了终止当前会话,您基本上需要调用HttpSession#invalidate()并执行重定向登录名或主页的操作。该代码应放置在POST请求调用doPost()的Servlet方法中。

例如

<form action="${pageContext.request.contextPath}/logout" method="post">
    <input type="submit" value="logout" />
</form>

@WebServlet("/logout")
public class logoutServlet extends HttpServlet {

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.getSession().invalidate();
        response.sendRedirect(request.getContextPath() + "/LoginPage.html");
    }

}

具体问题 ,您的用户名检查代码不在正确的位置。您不应该在每个JSP页面上复制粘贴相同的代码。您应该在servlet过滤器中的单个位置执行此作业。应尽可能避免 JSP文件中的Java代码

此外,当最终用户使用浏览器的“后退”按钮导航回历史记录时,还有另一个潜在的问题。认情况下,浏览器将缓存所有响应,因此后退按钮可能会显示浏览器缓存中的页面,而不是从服务器请求全新的请求。为了解决此问题,请参阅此相关问题,防止用户注销后看到以前访问的安全页面

最后但并非最不重要的一点是,您那里有一些非常奇怪的HTML。带有onClick导航按钮?用户SEO如何不友好。改用普通<a>链接。对于按钮外观,请添加一些CSS。

其他 2022/1/1 18:13:34 有608人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶