本文共 1735 字,大约阅读时间需要 5 分钟。
将浏览器与web服务器之间的多次交互作为一个整体来处理,并且将多次交互所涉及的数据(即状态)保存下来。
第一大类:客户端状态管理技术:即将状态(也就是多次交互所涉及的数据)保存在客户端(浏览器)。
第二大类:服务器端状态管理技术:即将状态保存在web服务器端。
a,是一种客户端的状态管理技术。
b,服务器临时保存在浏览器端的少量的数据。
当浏览器访问服务器时,服务器可以将少量数据以set-cookie消息头的方式发送给浏览器,浏览器会将这些数据临时保存下来。
当浏览器再次访问服务器,会将之前保存的这些数据以cookie消息头的方式发送给服务器。
//name:cookie的名称,value:cookie的值。
Cookie c = new Cookie(String name,String value);
response.addCookie(c);
//如果没有任何的cookie,返回null。
Cookie[] request.getCookies();
//返回cookie的名称
String cookie.getName();
//返回cookie的值
String cookie.getValue();
cookie的值或者名称只允许出现合理的ascii字符串。
如果是中文,需要将中文转换成ascii字符串,否则报错。
//编码
String URLEncoder.encode(String str,String code);
//解码String URLDecoder.decode(String str,String code);
注:添加cookie时,建议最好统一编码处理。
缺省情况下,浏览器会把cookie保存在内存里面,只要浏览器不关闭,cookie就会一直存在,浏览器关闭,cookie就会被销毁。
setMaxAge(int seconds);注:
a,单位是秒。 b,seconds > 0 浏览器会将cookie保存在硬盘上,如果超过了指定的时间,则cookie会被删除。seconds < 0 缺省值(cookie保存在内存中).
seconds = 0 删除cookie.比如,要删除一个名称为"cart"的cookie,
Cookie c = new Cookie("cart","");
c.setMaxAge(0);response.addCookie(c);
a.什么是cookie的路径问题
浏览器在向服务器上的某个地址发请求时,会比较该地址是否符合cookie的路径的要求,只有符合条件的cookie才会被发送出去。
b.cookie的默认的路径
等于添加该cookie的组件(servlet/jsp)的路径。
比如,/web07/biz01/addCookie.jsp 添加了一个名称为"cart"的cookie,则该cookie有一个默认的路径("/web07/biz01/")。
c.匹配规则
请求地址必须等于cookie的路径,或者是其子路径。cookie的路径是 --/web07/biz01/
/web07/biz01/findCookie2.jsp yes/web07/biz01/sub/findCookie3.jsp yes
/web07/findCookie1.jsp nod.cookie.setPath(String path)修改默认路径;
比如cookie.setPath("/appname");
这样,应用内部的某个组件所添加的cookie可以被该应用内部的其他组件访问到。
a. cookie可以被用户禁止。
b. cookie不安全(对于敏感数据,需要加密)。c. cookie只能保存少量的数据(大约是4k)。
d. cookie的数量也有限制(大约是几百个)。e.cookie只能保存字符串
转载地址:http://gwrws.baihongyu.com/