Cookie使用步骤与Cookie原理

(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获取这个请求头。

发布了349 篇原创文章 · 获赞 928 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/weixin_43691058/article/details/104052875