- 1、本文档共18页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
状态管理Cookie
-唐 霞
Web应用程序使用HTTP协议通道,而HTTP协议是“无状态”协议,即服务器一旦响应完客户的请求之后,就断开链接,而同一个客户的下一次请求将重新建立网络链接
服务器引用程序有时是需要判断是否为同一个客户发出的请求,比如客户的多次选购商品。因此,有必要跟踪同一个客户发出的一系列请求。(演示亚马逊购物车添加物品)
将客户端(浏览器)与服务器之间多次交互(一次请求,一次响应)当做一个整体来看待,并且将多次交互所涉及的数据即状态保存下来【登录信息本地保存,下次打开自动登录】
状态指的是数据
管理指的是多次交互时对数据的修改
客户端状态管理技术:将状态保存在客户端。代表性的是Cookie技术
服务器状态管理技术:将状态保存在服务器端。代表性的是Session技术
浏览器向Web服务器发送请求时,服务器会将少量的数据以set-Cookie消息头的方式发送给浏览器,浏览器将这些数据保存下来;
当浏览器再次访问服务器时,会将这些数据以Cookie消息头的方式发送给服务器
Servlet API为使用Cookie提供了javax.servlet.http.Cookie
创建:
演示addCookieServlet
获得客户端的所有Cookie对象
获取一个Cookie对象的名称或值
演示FindCookieServlet
Step1,获取客户端发送的所有Cookie
Step2,根据name找到要修改的Cookie
Step3,调用Cookie的setValue(String newValue)方法修改该Cookie的值
Step4,将修改后的Cookie加入到response发送回客户端
演示UpdateCookieServlet
默认情况下,浏览器会将Cooke保存在内存中,只要浏览器不关闭,Cookie就一直存在
如果希望关闭浏览器后Cookie仍在,可以通过设置过期时间
Seconds0:浏览器要保存Cookie的最长时间为设置的参数值,如果超过指定的时间,浏览器会删除这个Cookie。此时Cookie保存在硬盘上
Seconds=0:删除Cookie.在修改Cookie的生存时间为0后,随着response发送回客户端,替换原有Cookie因生命周期到了即将该Cookie删除
Seconds0:缺省值,浏览器会将Cookie保存到内存中
演示PersistentCookieServlet
Cookie只能保存合法的ASCII字符。如果要保存中文,需要将中文转换成合法的ASCII字符,即编码。
编码后的Cookie为了看到实际的中文,需要还原后再显示
浏览器在访问服务器上的某个地址时,会比较Cookie的路径与该路径是否匹配,只有匹配的Cookie才会发送给服务器
Cookie的默认路径等于添加这个Cookie的Web组件的路径
如:/appName/file/addCookie.jsp添加了一个Cookie,则该Cookie的路径等于/appName/file
要访问的地址必须是Cookie的路径或者其子路径时,浏览器才会发送Cookie
如:
- Cookie的路径是/appName/file
- 则访问/appName/file/a.jsp或/appName/file/b,jsp时会发送Cookie
- 如果访问/appName/c.jsp则不会发送Cookie
使用如下代码段可以设置Cookie的路径
演示/jsp/addCookie.jsp
Cookie可以被用户禁止
Cookie会将状态保存在浏览器端,不安全。对于敏感数据,需要加密后再使用Cookie来保存
Cookie只能保存少量的数据,大约4kb左右
Cookie的个数是有限制的
Cookie只能保存字符串
文档评论(0)