Cookie详解

来源:互联网 发布:淘宝网月销量是真的吗 编辑:程序博客网 时间:2024/06/05 17:28
  1. Cookie 是一种客户端缓存技术 , 长度一般规定不超过4kb, 有存储在内存(进程)的Cookie (浏览器一关闭就丢失数据) 和 存储在硬盘的Cookie (可持久化存储)
    Cookie是通过domain+path++name 来区分的

  2. Cookie的一般使用使用

​ Cookie cookie = new Cookie(name, value) ; 键值对形式

​ cookie.setPath(“作用范围”);

​ cookie.setMaxage(“秒”); 正数为有效时长 负数为临时cookie 0 删除cookie

​ cookie.setHttpOnly(true); 将无法通过js脚本读取到cookie信息,一定程度提高了安全性,tomcat服务器设置的jsessionid就是设置了httponly的

​ response.addCookie(cookie);

3.Cookie中的中文乱码

​   Cookie中无法存储中文,这时我们需要对中文信息进行编解码操作,列:​   //生成Cookie, 注意编码(使cookie可以传中文)    Cookie cookie = null ;    try {        cookie = new Cookie(key, URLEncoder.encode(value, "utf-8")) ;    } catch (UnsupportedEncodingException e) {        e.printStackTrace();        System.out.println("cookie生成错误!!!");    }    cookie.setHttpOnly(true);    //设置cook的有效时间和有效范围    cookie.setMaxAge(60*60);    cookie.setPath(request.getContextPath());    //返回cookie    response.addCookie(cookie);

​ //获得所有的cookie

Cookie[] cookies = request.getCookies();//遍历cookies数组,找到我们需要的那个cookieString name = "";if (cookies != null) {    for (Cookie cookie : cookies) {        if (cookie.getName().equals("userName")) {            name = URLDecoder.decode(cookie.getValue(), "utf-8");        }    }}

4.jsessionid

​ 通常我们第一次登录服务器,服务器会给我们生成一个cookie,存入jsessionid,同

时在服务器中选取一块内存,生成session来保存我们的信息,这个session与cookie使

用同一jsessionid,再将这个cookie返回给客户端,这样当我们再次登陆时只要cookie

和session还能正常使用,客户端会把包涵jsessionid的cookie发给服务器,找到对应存

储我们信息的session.

原创粉丝点击