Cookie :翻译过来是 曲奇饼干
cookie 是存在客户端的。
可以理解为 客户端访问一个服务器 ,服务器给客户端 一个饼干 。
cookie是否存在上限!
- 一个Cookie只能保存一个信息
- 一个web站点可以给浏览器发送多个cookie,最多存放20个cookie
- Cookie大小有限制4kb
- 300个cookie浏览器上限
删除Cookie
- 不设置有效期,关闭浏览器即可
- 设置有效期为0
- 注意 : 创建一个cookie,名字必须要和删除的名字一样
用法 :
request.getCookies //可以获取cookie的数组 为什么要加s ,有可能获取多个
new cookie //创建一个 需要传递两个值 name ,value
cookie.getName()//获取cookie 的 key
cookie.getValue()//获取cookie的 value
cookie.setMaxAge() //设置存活时间 0 销毁 24*60*60 存活1天
response.addCookie //服务器响应给客户端一个cookie (添加在客户端cookie)
例子:
package com.xxx.servlet; import javax.servlet.ServletException; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; import java.util.Date; public class CookieDemo01 extends HttpServlet{ @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("utf-8"); resp.setContentType("text/html;charset=utf-8"); PrintWriter out = resp.getWriter(); Cookie[] cookies = req.getCookies(); if (cookies!=null){ out.write("上次访问时间为:"); for (int i = 0; i < cookies.length ; i++) { Cookie cookie = cookies[i]; //获取cookie的名字 if (cookie.getName().equals("lastLoginTime")){ //获取cookie中的值 long lastLoginTime = Long.parseLong(cookie.getValue()); System.out.println("lastLoginTime: "+lastLoginTime); Date date = new Date(lastLoginTime); out.write(date.toLocaleString()); } } }else { out.write("第一次访问"); } //服务给客户端响应一个cookie Cookie cookie = new Cookie("lastLoginTime",System.currentTimeMillis()+""); cookie.setMaxAge(24*60*60); resp.addCookie(cookie); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }