一、原因分析

在这里插入图片描述

1、查看Cookie是否真的被清除掉了

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、原来是浏览器设置了自动填充密码

在这里插入图片描述
在这里插入图片描述

二、代码展示:

在这里插入图片描述
虽然这个地方清除了,但是由于某些浏览器设置了,自动填充账户名密码,造成cookie没有删除的假像。

全部逻辑代码:

@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        String remember = request.getParameter("remember");
        UserServiceIml service = new UserServiceIml();
        boolean flag = service.login(username, password);
        if (flag) {
            //创建cookie对象
            Cookie cookie_username = new Cookie("username", username);
            Cookie cookie_password = new Cookie("password", password);
//            判断用户是否勾选
            if (remember != null) {
//                设置cookie存活时间
                cookie_username.setMaxAge(60 * 60 * 24);
                cookie_password.setMaxAge(60 * 60 * 24);
            } else {
                cookie_username.setMaxAge(0);
                cookie_password.setMaxAge(0);
            }
//            发送cookie
            response.addCookie(cookie_username);
            response.addCookie(cookie_password);
            HttpSession session = request.getSession();
//            把username发送到session域中
            session.setAttribute("username", username);
//            重定向到/brand.jsp页面
            response.sendRedirect("/filter/brand.jsp");
        } else {
            request.setAttribute("msg", "用户名或密码错误");
//            请求转发
            request.getRequestDispatcher("login.jsp").forward(request, response);
        }
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request, response);
    }
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐