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),因此存储在一个上下文中的信息将不会在另一个上下文中直接显示。
本文介绍了Cookie的概念及其在Web浏览器与服务器之间的交互作用,探讨了Cookie如何被用来唯一标识客户端并用于会话管理。此外,还讨论了HttpSession接口如何帮助识别用户并在多次页面请求间存储用户信息。
4753

被折叠的 条评论
为什么被折叠?



