小学生学习Java会话技术之Cookie

会话技术

会话可简单理解为:用户开一个浏览器访问服务器web资源,然后关闭浏览器,整个过程称之为一个会话。

会话过程中要解决的一些问题?

用户在使用浏览器与服务器进行会话的过程中,会产生一些数据,程序要保存这些数据。

Cookie类的主要方法
  小学生学习Java会话技术之Cookie_第1张图片

使用cookie记录用户上一次访问的时间

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    response.setContentType("text/html;charset=UTF-8");
    request.setCharacterEncoding("UTF-8");
    //  显示上一次(最后)的登录时间 关闭浏览器之后还能再显示
    //  在响应浏览器 让浏览器储存起来  下一次在访问时 通过request请求 获取之前保存的cookie,显示之前的存储时间就行了

    //  接到请求先读取cookie
    //  获取请求中的cookie
    Cookie[] cookies = request.getCookies();
    if(cookies != null) {
        // 遍历
        for (Cookie cookie : cookies) {
            // 找出之前保存的cookie按名字
            if(cookie.getName().equals("lastTime")) {
                // 获取cookie的值
                String value = cookie.getValue();
                // 将字符串转化为long型
                long time = Long.parseLong(value);
                // 转换成时间
                Date date = new Date(time);
                // 转换时间的格式(格式化时间)
                SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy:MM:dd HH:mm:ss");
                String lastTime = dateFormat.format(date);
                // 上次登录的时间
                System.out.println(lastTime);
                PrintWriter writer = response.getWriter();
                writer.write("上次登录的时间"+lastTime);                   
            }   
        }
    }

    //  创建一个cookie出来
    Cookie cookie = new Cookie("lastTime", System.currentTimeMillis()+"");
    //  设置cookie的保存路径
    //  "/"表示该工程下的所有servlet都能访问  保存时相当于 按工程名来存 
    //  "/sh-web-03/servlet" 相当于之后 servlet目录下的 网页能访问
    cookie.setPath("/sh-web-03/servlet");
    //  设置cookie存活的时间
    cookie.setMaxAge(300);
    // 添加cookie到响应中
    response.addCookie(cookie); 
}

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doGet(request, response);
}

}

Cookie注意细节

1.setMaxAge() 设置cookie的存活时间 (以秒为单位) 正值 值是多少 浏览器就保存多少秒
负值 浏览器不会存储cookie到硬盘当中 当浏览器关闭时 会话结束 这个cookie被删除
值为0时 cookie被删除
2.一个WEB站点可以给一个WEB浏览器发送多个Cookie,一个WEB浏览器也可以存储多个WEB站点提供的Cookie。
3.浏览器一般只允许存放300个Cookie,每个站点最多存放20个Cookie,每个Cookie的大小限制为4KB。
4.cookie不能保存中文

你可能感兴趣的:(小学生学习Java会话技术之Cookie)