文章目录
(1)Cookie是一种客户端会话技术,将数据保存在客户端
。
一、Cookie使用步骤
(1)创建Cookie对象,绑定数据。
new Cookie(String name,String value);
(2)发送Cookie对象
response.addCookie(Cookie cookie);
(3)获得Cookie,拿到数据
Cookie[] cs = request.getCookies();
☆在两个Servlet中演示Cookie
创建两个Servlet,CookieDemo1和CookieDemo2。在CookieDemo1中创建Cookie并发送Cookie,在CookieDemo2中接收Cookie。
package com.ql.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;
/**
* 类说明:
* 演示Cookie
* @author qianliangguo
*/
@WebServlet("/CookieDemo1")
public class CookieDemo1 extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//1.创建Cookie
Cookie c = new Cookie("msg","hello");
//2.发送Cookie
response.addCookie(c);
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
}
package com.ql.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;
/**
* 类说明:
* 演示Cookie
* @author qianliangguo
*/
@WebServlet("/CookieDemo2")
public class CookieDemo2 extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//3.获取Cookie
Cookie[] cs = request.getCookies();
//获取数据,遍历Cookies
if(cs!= null){
for (Cookie c : cs) {
String name = c.getName();
String value = c.getValue();
System.out.println(name+":"+value);
}
}
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
}
最后在浏览器,地址栏依次输入两个url后,成功接收到Cookie传输的信息。
二、Cookie的原理
Cookie实际上是基于响应头set-cookie和请求头cookie实现的
。
①请求
:浏览器发送请求到服务器;②响应
:服务器对浏览器给出响应,创建并通过响应头set-Cookie
将Cookie发送给浏览器;③保存
:浏览器接收到响应后会将Cookie中的数据保存在内存或硬盘上;④携带
:当浏览器再次向服务器发送请求时,会通过请求头cookie
将Cookie带给服务器。⑤获取
:服务器通过自身封住好的API获取这个请求头。