cookie的使用

cookie的使用

通过简单的登录验证,保存用户Cookie,

并在第二次访问登录时判断Cookie是否存在,从而区别新旧用户。

 实验结果

 

 Servlet doGet方法:

protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String name = request.getParameter("name");
        String password = request.getParameter("password");
        String boxvalue = request.getParameter("boxcookie");
        System.out.println(boxvalue);

        List<String> info = new ArrayList<String>();

        if (name == null || "".equals(name)) { // 用户名输入格式问题
            info.add("用户名不能为空");
            System.out.println("用户名不能为空");
        }
        /*
         * if (password == null || "".equals(password)) {// 密码输入格式问题 info.add("密码不能为空");
         * System.out.println("密码不能为空"); }
         */
        if (info.size() == 0) {
            User user = new User();
            user.setName(name);
            user.setPassword(password);

            // 检查Cookie
            boolean isolduser = false;
            Cookie cookie = null;
            Cookie[] cookies = null;
            cookies = request.getCookies();
            for (int i = 0; i < cookies.length; i++) {
                cookie = cookies[i];
                if (cookie.getName().compareTo(user.getName()) == 0) {
                    // 判断cookie是否已存在
                    isolduser = true;
                    break;
                }
            }
            if (isolduser) {// 老用户
                info.add("欢迎用户" + user.getName() + "回来!");
                if (boxvalue.compareTo("zero") == 0) {
                    // 如果有,删除cookie
                    for (int i = 0; i < cookies.length; i++) {
                        cookie = cookies[i];
                        if (cookie.getName().compareTo(user.getName()) == 0) {
                            cookie.setMaxAge(0);
                            response.addCookie(cookie);
                            System.out.println("Deleted cookie " + cookie.getName() + cookie.getValue());
                        }
                    }
                }
            } else {// 新用户
                UserDAOProxy userDAOProxy = new UserDAOProxy();
                try {

                    if (userDAOProxy.findLogin(user)) {
                        info.add("用户登录成功,欢迎" + user.getName() + "光临!");
                        if (boxvalue.compareTo("zero") != 0) {
                            // 设置cookie
                            Cookie cookieuser = new Cookie(user.getName(), user.getName());
                            cookieuser.setMaxAge(60 * 60 * 24);
                            response.addCookie(cookieuser);
                            System.out.println(
                                    "ADD cookie Key:  " + cookieuser.getName() + "Value:  " + cookieuser.getValue());
                        }
                    } else {
                        info.add("用户登录失败,错误的用户名和密码");
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            // 对新旧用户有效

        }
        System.out.println("USER  " + name);
        System.out.println("PASSWD  " + password);
        request.setAttribute("outputMessage", info);// 保存错误信息
        request.getRequestDispatcher("NewFile.jsp").forward(request, response);// 跳转

    }
View Code

百度云

链接: https://pan.baidu.com/s/14cp6t_CURLfYEbl_xpsSEw 提取码: edry 复制这段内容后打开百度网盘手机App,操作更方便哦

原文地址:https://www.cnblogs.com/HuppertWu/p/10651143.html