【JavaWEB】Cookie

113 阅读1分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第1天,点击查看活动详情

问题

2018-11-23_001939.png

如何实现有状态的会话

2018-11-23_002205.png

Cookie机制

2018-11-23_002331.png

使用Cookie

2018-11-23_002803.png

Cookie的发送

2018-11-23_003003.png

会话Cookie和持久Cookie的区别

2018-11-23_003125.png

案例:

2018-11-23_003234.png

protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setCharacterEncoding("utf-8");
        resp.setContentType("text/html;charset=utf-8");
        String username = req.getParameter("username");
        Cookie cookie = null;
        System.out.println(username);
        if(null != username)
        {
            cookie = new Cookie("name", username);
            cookie.setMaxAge(60);
            cookie.setPath("/");
            resp.addCookie(cookie);
            req.getRequestDispatcher("shouye.jsp").forward(req,resp);
        }else
            {
                Cookie[] cookies = req.getCookies();
                if(null != cookies)
                {
                    for (Cookie c:cookies) {
                        if("name".equals(c.getName()))
                        {
                            req.getRequestDispatcher("shouye.jsp").forward(req,resp);
                            username = c.getValue();
                        }
                    }
                }
            }
        if(null != username)
        {
            req.getRequestDispatcher("shouye.jsp").forward(req,resp);
        }else
        {
            req.getRequestDispatcher("login.jsp").forward(req,resp);
        }
    }

记录上次登录时间

protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setCharacterEncoding("utf-8");
        resp.setContentType("text/html;charset=utf-8");
        Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-hh:mm:ss");
        String format = sdf.format(date);

        Cookie cookie = new Cookie("time", format);
        resp.addCookie(cookie);

        Cookie[] cookies = req.getCookies();
        String time = null;
        if(null != cookies)
        {
            for (Cookie c: cookies) {
                if("time".equals(c.getName()))
                {
                    time = c.getValue();
                }
            }
        }
        if(null != time)
        {
            resp.getWriter().write("您上次登录时间为:"+time);
        }else
        {
            resp.getWriter().write("欢迎您第一次登录....");
        }
    }