- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
深入servlet中的cookie
一、会话的概念
会话可简单理解为 :用户开一个浏览器 ,点击多个超链接 ,访问服务器多个web资源 ,然
关闭浏览器 ,整个过程称之为一个会话。有状态会话 :一个同学来过教室 ,下次再来教室 ,我们
会知道这个同学曾经来过 ,这称之为有状态会话。
二、会话过程中要解决的一些问题 ?
每个用户在使用浏览器与服务器进行会话的过程中 ,不可避免各自会产生一些数据 ,程序要
想办法为每个用户保存这些数据。
三、Cookie
Coo kie机制
在程序中 ,会话跟踪是很重要的事情。理论上 ,一个用户的所有请求操作都应该属于同一个
会话 ,而另一个用户的所有请求操作则应该属于另一个会话 ,二者不能混淆。例如 ,用户A在超
市购买的任何商品都应该放在A 的购物车内 ,不论是用户A什么时间购买的 ,这都是属于同一个会
话的 ,不能放入用户B或用户C的购物车内 ,这不属于同一个会话。
而Web应用程序是使用HT T P协议传输数据的。HT T P协议是无状态的协议。一旦数据交换
完毕 ,客户端与服务器端的连接就会关闭 ,再次交换数据需要建立新的连接。这就意味着服务器
无法从连接上跟踪会话。即用户A购买了一件商品放入购物车内 ,当再次购买商品时服务器已经
无法判断该购买行为是属于用户A 的会话还是用户B的会话了。要跟踪该会话 ,必须引入一种
机制。Coo kie就是这样的一种机制。它可以弥补HT T P协议无状态的不足。在Sessio n出现之前
,基本上所有的网站都采用Coo kie来跟踪会话。
什么是Coo kie
Coo kie意为“甜饼” ,是由W3C组织提出 ,最早由Net scape社区发展的一种机制。目
前Coo kie已经成为标准 ,所有的主流浏览器如IE、Net scape、Firef o 、O pera等都支持Coo kie
。由于HT T P是一种无状态的协议 ,服务器单从网络连接上无从知道客户身份。怎么办呢 ?就给
客户端们颁发一个通行证吧 ,每人一个 ,无论谁访问都必须携带自己通行证。这样服务器就能从
通行证上确认客户身份了。这就是Coo kie的工作原理。
Coo kie实际上是一小段的文本信息。客户端请求服务器 ,如果服务器需要记录该用户状态 ,
就使用respo nse向客户端浏览器颁发一个Coo kie。客户端浏览器会把Coo kie保存起来。当浏览
器再请求该网站时 ,浏览器把请求的网址连同该Coo kie一同提交给服务器。服务器检查
该Coo kie ,以此来辨认用户状态。服务器还可以根据需要修改Coo kie的内容。
更多精彩攻略访问 1
Coo kie的有效期
Coo kie的ma A ge决定着Coo kie的有效期 ,单位为秒 (Seco nd )。Coo kie中通
过get Ma A ge()方法与set Ma A ge(int ma A ge)方法来读写ma A ge属性。
如果ma A ge属性为正数 ,则表示该Coo kie会在ma A ge秒之 自动失效。浏览器会
将ma A ge为正数的Coo kie持久化 ,即写到对应的Coo kie文件中。无论客户关闭了浏览器还是
电脑 ,只要还在ma A ge秒之前 ,登录网站时该Coo kie仍然有效。下面代码中的Coo kie信息将永
远有效。
Coo kie coo kie = new Coo kie(username,helloweenvsf ei); // 新建Coo kie
coo kie.set Ma A ge(Int eger.MA X_VA LUE); // 设置生命周期为MA X_VA LUE
respo nse.addCoo kie(coo kie); // 输出到客户端
如果ma A ge为负数 ,则表示该Coo kie仅在本浏览器窗口以及本窗口打开的子窗口内有效 ,
关闭窗口 该Coo kie即失效。ma A ge为负数的Coo kie ,为临时性Coo kie ,不会被持久化 ,不会
被写到Coo kie文件中。Coo kie信息保存在浏览器内存中 ,因此关闭浏览器该C
文档评论(0)