cookie和session

本文介绍了Cookie的概念及其在Web浏览器与服务器之间的交互作用,探讨了Cookie如何被用来唯一标识客户端并用于会话管理。此外,还讨论了HttpSession接口如何帮助识别用户并在多次页面请求间存储用户信息。

Cookie

创建一个cookie,由servlet发送到Web浏览器的少量信息,由浏览器保存,然后发送回服务器。 cookie的值可以唯一标识一个客户端,所以cookie通常用于会话管理。

Cookie具有名称,单个值和一些可选属性,如注释,路径和域限定符,最大年龄和版本号。某些Web浏览器在处理可选属性方面存在缺陷,所以请谨慎使用它们以提高servlet的互操作性。

servlet通过使用HttpServletResponse.addCookie(javax.servlet.http.Cookie)方法向浏览器发送cookie,该方法将字段添加到HTTP响应头中,以一次一个地向浏览器发送cookie。 浏览器预计将为每个Web服务器支持20个Cookie,总共300个Cookie,并可能将Cookie大小限制为4 KB。

浏览器通过将字段添加到HTTP请求标头来将cookie返回给servlet。 可以使用HttpServletRequest.getCookies()方法从请求中检索Cookie。 几个cookie可能具有相同的名称,但具有不同的路径属性。

Cookie影响使用它们的网页的缓存。 HTTP 1.0不会缓存使用由此类创建的Cookie的页面。该类不支持使用HTTP 1.1定义的缓存控件。

 

 

HttpSession

提供了一种通过多次页面请求或访问网站识别用户,并存储关于该用户的信息的方法。

servlet容器使用此接口在HTTP客户端和HTTP服务器之间创建会话。会话持续一段指定的时间,跨越来自用户的多个连接或页面请求。一个会话通常对应于一个用户,他可能会多次访问一个站点。服务器可以通过许多方式维护会话,例如使用cookie或重写URL。

当应用程序在session中存储对象或从session中删除对象时,session将检查对象是否实现HttpSessionBindingListener。如果是这样,servlet通知对象它已经绑定或从session中解除绑定。通知在绑定方法完成后发送。对于失效或过期的会话,在会话失效或过期后发送通知。

当容器在分布式容器环境中的VM之间迁移session时,会通知实现HttpSessionActivationListener接口的所有会话属性。

会话信息仅限于当前的Web应用程序(ServletContext),因此存储在一个上下文中的信息将不会在另一个上下文中直接显示。




评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值