核心提示:Cookie 是一种客户端缓存技术 , 长度一般规定不超过4kb, 有存储在内存(进程)的Cookie (浏览器一关闭就丢失数据) 和 存储在硬盘的Cookie (可持久化存储)Cookie是通过do...
Cookie 是一种客户端缓存技术 , 长度一般规定不超过4kb, 有存储在内存(进程)的Cookie (浏览器一关闭就丢失数据) 和 存储在硬盘的Cookie (可持久化存储)
Cookie是通过domain+path++name 来区分的
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数组,找到我们需要的那个cookie String 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.