JavaWeb之cookie

什么叫做会话 ?

用户从打开一个浏览器开始,浏览器网站,到关闭浏览器的整个过程叫做一次会话!

  每个用户与服务器进行交互的过程中,各自会有一些数据,程序要想办法保存每个用户的数据。

   例如:用户点击超链接通过一个servlet购买了一个商品,程序应该保存用户购买的商品,需要使用会话!

Cookie是客户端技术

程序把每个用户的数据以cookie的形式写给用户各自的浏览器。当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去。这样,web资源处理的就是用户各自的数据了。

 Cookie相对于session来说不是特别安全,而且Cookie还有大小和个数的限制!

一个WEB站点可以给一个WEB浏览器发送多个Cookie,一个WEB浏览器也可以存储多个WEB站点提供的Cookie。

Java 中的Cookie

  

//构造方法:
    Cookie(String name,String value);

  //方法:
   String getName();     用于获得Cookie的名称

   String getValue(); 用于获得Cookie的值

  void setPath(String path);   设置cookie的有效路径   没有设置会给一默认的路径:用途-访问该路径下的资源时会带着cookie过来

   String getPath();             

    void setMaxAge(int mAge);  用于设置cookie的有效时间

   int getMaxAge();          

   void setDomain(String domain);用于设置cookie的有效域名:用途-访问该域名下的资源时会带着cookie过来   setDomain(".baidu.com");
  String getDomain();

Cookie的分类 

会话级别的Cookie:浏览器关闭cookie就销毁,此cookie存储在浏览器的内存中

持久的cookie:此cookie会写到本地的文件中,关闭浏览器不会销毁

  此cookie可以在同一个浏览器的不同窗口之间共享 ,前提需要设置有效时间 setMaxAge(int age);  删除cookie setMaxAge(0); 

//创建一个cookie
//Cookie cookie = new Cookie(String name,String value);
//存带有中文的cookie(取出的时候不要忘记解码) 
//cookie不支持中文,需要编码 在页面用js取时用decodeURI();
Cookie cookie = new Cookie("remember", URLEncoder.encode( username, "utf-8")); cookie.setMaxAge(24 * 60 * 60); cookie.setPath("/"); response.addCookie(cookie); //删除某个cookie (只要覆盖一个把存活时间改成0或者-1) Cookie cookie = new Cookie("remember", URLEncoder.encode( username, "utf-8")); cookie.setMaxAge(0); cookie.setPath("/"); response.addCookie(cookie); /*注意:cookie.setMaxAge(0);参数也可以是-1,都可以删除cookie,区别.写0时立即删除,-1代表关闭浏览器之后才能删除*/

 

 

 

 

原文地址:https://www.cnblogs.com/lilixin/p/5728220.html