注销登录(Session清空)

分享一下自己所学习到的一个功能实现,通过Session的清空来实现注销用户登录。
首先,在控制器中写好清空Session的方法。
在这里插入图片描述
Emmm,就一句代码,极其精简。
方法写好之后就来到视图层上调用方法。
写一个Ajax请求调用控制器中的方法。
在这里插入图片描述

一般这种情况下用的都是confirm提示框比较多吧,起码让用户确认一下在退出这样子会好点。
在这里插入图片描述
大概就是这样子了,一个注销用户登录功能的实现,也没有什么特别之处,只需要知道有这东西的存在就行了,并不用说刻意去记。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面给出一个简单的Java代码示例,演示如何实现登录注销和用户自动登录功能。 首先是登录功能的实现: ```java public class LoginServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); String password = request.getParameter("password"); boolean rememberMe = "true".equals(request.getParameter("rememberMe")); // 判断是否勾选了自动登录 // 在后台进行用户信息验证 if (username.equals("admin") && password.equals("123456")) { // 用户信息验证成功,将用户信息存入Session中 User user = new User(username, password); request.getSession().setAttribute("user", user); // 如果勾选了自动登录,则创建一个Cookie保存用户信息 if (rememberMe) { Cookie cookie = new Cookie("autoLogin", username + ":" + password); cookie.setMaxAge(7 * 24 * 60 * 60); // 设置Cookie有效期为7天 response.addCookie(cookie); } response.sendRedirect("index.jsp"); // 登录成功,跳转到首页 } else { response.sendRedirect("login.jsp?error=true"); // 登录失败,跳转到登录页面并显示错误信息 } } } ``` 接下来是注销功能的实现: ```java public class LogoutServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 将Session中的用户信息清空 request.getSession().removeAttribute("user"); // 删除自动登录Cookie Cookie[] cookies = request.getCookies(); for (Cookie cookie : cookies) { if (cookie.getName().equals("autoLogin")) { cookie.setMaxAge(0); response.addCookie(cookie); break; } } response.sendRedirect("login.jsp"); // 注销成功,跳转到登录页面 } } ``` 最后是过滤器的实现,用于拦截用户登录的访问请求并判断是否包含自动登录Cookie: ```java public class AutoLoginFilter implements Filter { public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) servletRequest; HttpServletResponse response = (HttpServletResponse) servletResponse; HttpSession session = request.getSession(); // 判断请求中是否包含自动登录Cookie boolean autoLogin = false; Cookie[] cookies = request.getCookies(); if (cookies != null) { for (Cookie cookie : cookies) { if (cookie.getName().equals("autoLogin")) { autoLogin = true; String[] user = cookie.getValue().split(":"); String username = user[0]; String password = user[1]; // 将Cookie中存储的用户信息封装到User对象中存入Session域中 User user = new User(username, password); session.setAttribute("user", user); break; } } } // 如果没有自动登录Cookie,则继续执行过滤器链 if (!autoLogin) { filterChain.doFilter(request, response); return; } // 如果有自动登录Cookie,则直接跳转到首页 response.sendRedirect("index.jsp"); } } ``` 上面的代码只是一个示例,实际应用中还需要根据具体的业务需求进行适当的修改和完善。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值