JavaWeb之cookie缓存技术
时间:2014-05-20 15:51:06
收藏:0
阅读:289
web应用的会话技术:打开浏览器并访问网站,请求多个资源,关闭浏览器的过程。
在这个过程中,缓存用户数据常用的有两种技术:
1.cookie技术:用于在浏览器端,缓存用户的数据,可以理解为数据缓存在用户本地
2.session技术:用于在服务端,缓存用户的数据,可以理解为数据缓存在服务器。
cookie技术:
1.服务器需要缓存数据,将数据发给浏览器,浏览器对缓存数据进行存储;当浏览器再次访问服务器的时间后,会将缓存信息,一起发给服务器.
2.cookie技术的原理图解:
根据上图分析如下:
上述abcde进详细的描述了cookie在浏览器和服务器之间传递和保存的过程图。a.首先浏览器先向服务器发送请求,服务端接受请求,并需要浏览器去缓存一些信息。于是创建cookie对象b.将cookie对象添加到response响应对象中,然后通过http协议发送给浏览器。c.浏览器接受响应信息,同时浏览器将cookie信息,保存到cookie文件中,同样以名称=值的方式保存d.当浏览器再次发送请求到服务器的时候,会将cookie信息一同通过http协议发送到服务端。e.服务端就可以获取之前存储的cookie信息了。
3.相关类
Javax.servlet.http.cookie
a.服务器能发送少量的数据到浏览器b. 每一个web服务器只能向用户发送20个cookiec.一个浏览器可以缓存300个cookied.每一个cookie文件最大值为4k
e.cookie名称和内容不支持中文,如果需要使用中文需要编码,获得数据进行解密
* 方案1: (get请求的中文乱码的处理方式一致的)
* 编码:str.getBytes() 使用,将字节数组拼凑成字符串(1,2,3,4)* 再解码: 字符串1,2,3,4变成字节数组,new String
* 方法2:
* 编码:URLEncoderURLEncoder.encode(cn, "UTF-8");
4.cookie生命周期* 解码:URLDecoderURLDecoder.decode("%E9%BE%99%E5%84%BF", "UTF-8");
默认情况:会话级cookie,会话结束后,cookie将被销毁
浏览器处理cookie依据修改有效时间:setMaxAge,单位为秒>0 ,指定x秒后失效,将以文件形式保存浏览器端(在硬盘中)=0 ,浏览器将删除cookie<0 ,会话级cookie,在内存中
唯一标记格式:domain + path + name
cookie名称可以重复
路径设置
getCookies() 获得所有符号要求的cookiesetPath("路径")/ web站点根/day10/ web项目根例如:http://localhost:8080/day10/a/b/c/Demo01CookieServlet默认路径:/day10/a/b/c/
浏览器将携带当前访问路径,已经父路径下的所有cookie
此处符合要求的路径
/day10/a/b/c/
/day10/a/b/
/day10/a/
/day10/
/
/day11/ 不能获得day11目录下的cookie
路径常用设置:setPath("/")
域名设置domain (了解)
setDomain("域名") , setDomain(".itheima.com")
默认域名:localhost
二级域名例如:
www.itheima.com
bbs.itheima.com
v.itheima.com
download.itheima.com
扩展:
cookie只能http协议使用,false表示javascript也可以使用
评论(0)