1. 概念:客户端会话技术,将数据保存到客户端
2. 快速入门(只是简单演示cookie的原理):
*cookie简单步骤只有三步
- 创建Cookie对象,绑定数据
- new Cookie(String name, String value)
- 发送Cookie对象
- response.addCookie(Cookie cookie)
- 获取Cookie,拿到数据
- Cookie[] request.getCookies()
创建Web项目,src下创建cookie包
可以分为两个模块
2.1、第一个模块为创建和发送cookie,创建Servlert类型的cookieDemo1文件
package cookie;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/CookieDemo1")
public class CookieDemo1 extends HttpServlet {
private static final long serialVersionUID = 1L;
/*
快速入门:
使用步骤:
1. 创建Cookie对象,绑定数据
* new Cookie(String name, String value)
2. 发送Cookie对象
* response.addCookie(Cookie cookie)
3. 获取Cookie,拿到数据
* Cookie[] request.getCookies()
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1、创建cookie对象
Cookie c=new Cookie("msg","hello");
//2、发送cookie
response.addCookie(c);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
2.2、第二个模块为接收和打印cookie,创建Servlert类型的cookieDemo2文件
package cookie;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/CookieDemo2")
public class CookieDemo2 extends HttpServlet {
private static final long serialVersionUID = 1L;
/*
实现原理:
* 基于响应头set-cookie和请求头cookie实现
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//3、获取cookie
Cookie[] cookies=request.getCookies();
//获取数据遍历cookie
if(cookies!=null) {
for(Cookie coookie:cookies) {
String name=coookie.getName();
String value=coookie.getValue();
System.out.println(name+":"+value);
}
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
我们开启tomcat服务,打开浏览器访问Web项目路径,我们先访问cookieDemo1,创建并发送cookie
可以看到浏览器F12开发者模式,cookie有了响应,服务器暂时没有提示。
然后在访问cookieDemo2,接收cookie,并在控制台打印
可以看到浏览器已经请求cookie,服务器也打印出了请求cookie
3. 实现原理
- 基于响应头set-cookie和请求头cookie实现
- 打开F12开发者模式
- 可以网络->消息头->响应头中看到set cookie
- 可以网络->消息头->请求头中看到cookie