Cookie

Posted tractors

tags:

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

一、Cookie的概念

  Cookie是由服务器创建,然后通过响应发送给客户端的一个键值对。

  特点:

    1.客户端会保存Cookie,并会标注出Cookie的来源(哪个服务器的Cookie)。

    2.当客户端向服务器发出请求时会把所有这个服务器Cookie包含在请求中发送给服务器,这样服务器就可以识别客户端了。

    3.不同浏览器之间是不共享Cookie的。

技术图片

二、注意点:

  1)在tomcat8.0之前,Cookie中不允许存放中文

  2)在tomcat8.0之后,Cookie中不建议存放中文

  3)Cookie的value不允许包含空格以及某些特殊符号

  4)重复设置相同名称的Cookie会覆盖前面的;

三、Cookiehttp头:

  (1)请求头:客户端发送给服务器;

    格式:Cookie: a=A; b=B; c=C。即多个Cookie用分号隔开;

  (2)响应头:服务端发送给客户端;

    格式:一个Cookie对象一个Set-Cookie;

      Set-Cookie: a=A

      Set-Cookie: b=B

      Set-Cookie: c=C

二、Cookie创建(构造)

  new Cookie(String name,String value);

三、Cookie获取/设置:

  (1)设置:调用response方法;

    response.addCookie(Cookie cookie);

  (2)获取:调用request方法;

    Cookie[] request.getCookies();

    //获取到的不是原来的cookie对象,是根据浏览器存的键值对创建的新cookie对象;

四、生命周期:

  (1)设置最大存活时间:void setMaxAge(int second);

    //参数second-1:表示一旦浏览器关闭则销毁;

          0:表示直接作废,可用于删除原有的Cookie;

          60*60:单位是秒;表示存活1个小时,即使浏览器关闭或者电脑重启,都保留一个小时;

  (2)获取最大存活时间:int getMaxAge()

五、路径设置:

  (1)路径设置:cookie.setPath(“/cookietest/servlet”);

    //如果没有设置路径,那么Cookie路径默认为当前资源的路径;

    例如:

      (1)访问http://localhost:8080/cookietest/AServlet时添加的Cookie默认路径为/cookietest;

      (2)访问http://localhost:8080/cookietest/servlet/BServlet时添加的Cookie默认路径为/cookietest/servlet;

      (3)访问http://localhost:8080/cookietest/jsp/BServlet时添加的Cookie默认路径为/cookietest/jsp;

 

 

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

Django之Session与Cookie

在servlet中获取cookie

Java Web 自动登录

在servlet中获取cookie

Cookie&Session

Session和Cookie