会话技术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

 

 

posted @ 2022-08-11 09:07  魔光领域  阅读(240)  评论(0编辑  收藏  举报