Cookie理解
每一个web应用都会向每一个浏览器发送属于自己的Cookie集合,后端可以操作这些属于自己的cookie集合。各个应用之间的cookie是独立的(设置cookie,应用之间是可以共享的)
Cookie的读取、写入、删除
package com.my.test.web;
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;
/**
* @author lf
* @Title: CookieServlet
* @Description: TODO
* @date 2019/4/2 10:49
*/
public class CookieServlet extends HttpServlet {
private int counter=0;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
PrintWriter out = resp.getWriter();
//读取cookie
Cookie[] cookies = req.getCookies();
if(cookies==null || cookies.length<1){
out.println("no cookies!");
}else{
for(Cookie cookie : cookies){
if("tom6".equals(cookie.getName())){
//删除cookie
cookie.setMaxAge(0);
}
out.println("name:"+cookie.getName());
out.println("value:"+cookie.getValue());
out.println("time:"+cookie.getMaxAge()); //有效时间 大于零 保存x秒;等于0 不保存; 小于0 浏览器关闭则失效
}
}
//写入cookie
Cookie cookie1 = new Cookie("tom"+counter,"wuhan");
resp.addCookie(cookie1);
counter++;
}
}
应用之间共享Cookie
- cookie.setDomain(".test.com"); 域名以“.test.com”结尾的应用共享一个cookie集合
- cookie.setPath("/"); tomcat Webapps下的所有应用都共享一个cookie集合
- cookie.setPath("/test/"); tomcat Webapps下的test应用 独自拥有这个cookie集合