Cookie 和Session

Posted legion

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cookie 和Session相关的知识,希望对你有一定的参考价值。

1Cookie 的概念

Cookie就是若干组键值对。

服务器在响应头中以如下格式设置cookie

技术分享图片l

浏览器将cookie存储在本地,在以后的访问中,在请求中以如下形式发给服务器

技术分享图片

关键API

服务器写Cookie

Cookie c=new Cookie("id", "the id is legion");
esponse.addCookie(c);
//多个依次重复

服务器读cookie

//从请求头中获取cookie数组
Cookie[] cs=request.getCookies();
//对于数组中每一个Cookie,有getName 和getValue的方法
//分别获取键和值

例子:本例子AServlet写若干cookie,其中一个cookie有key为”id“,

BServlet试图读取该id 的值。

技术分享图片
//AServlet Get
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        response.setContentType("text/html;charset=utf-8");
        Cookie c=new Cookie("id", "the id is legion");
        response.addCookie(c);
        Cookie c2=new Cookie("something", "sskalsa");
        response.addCookie(c2);
        response.getWriter().print("i sent you an id in cookie");
        
    }

//BServlet Get
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        response.setContentType("text/html;charset=utf-8");
        Cookie[] cs=request.getCookies();
        if(cs!=null) {
            for(Cookie c:cs) {
                if(c.getName().equals("id")) {
                    String str="获取ID的值为"+c.getValue();
                    response.getWriter().print(str);
                }
            }
        }
    }
View Code

 

以上是关于Cookie 和Session的主要内容,如果未能解决你的问题,请参考以下文章

少部分手机浏览器对于COOKIE支持不够导致服务端无法读取session的解决方案

Cookie和Session的工作流程及区别(附代码案例)

cookie和session

cookie和session

cookie和session

会话技术知识点整理(Cookie和Session)