会话技术Cookie原理分析和Cookie发送多个Cookie
会话技术Cookie原理分析
基于响应头set-cookie和请求头cookie实现的
客户端给服务器发送一次请求,服务器给浏览器返回一次响应。因为有会话,我们得有多次请求应证这个过程。
首先第一次请求完成,服务器会携带一些数据响应给浏览器。
浏览器发现了这些数据之后,把这些数据保存在浏览器本地。
保存完成后,下一次请求又会把这些数据带着去发送下一次请求。
相当于这两次请求响应之间进行了数据的共享问题。
所以最终这个数据存储在客户端浏览器。
Cookie发送多个Cookie
可以创建多个Cookie对象,使用response调用多次addCookie方法发送cookie即可。
@WebServlet("/cookieD3") public class CookieD3 extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //创建Cookie对象 Cookie c1 = new Cookie("msg", "hello"); Cookie c2 = new Cookie("name", "zhangsan"); //发送Cookie resp.addCookie(c1); resp.addCookie(c2); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { this.doGet(req, resp); } }
获取Cookie类:
@WebServlet("/cookieD2") public class CookieD2 extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //获取Cookie Cookie[] cs = req.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 doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { this.doGet(req, resp); } }
访问3在访问2就可以获取多个cookie