栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

关于Java Web会话处理如何工作的困惑。使用servlet API和HttpSession对象使Cookies和标头的差异变得神秘

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

关于Java Web会话处理如何工作的困惑。使用servlet API和HttpSession对象使Cookies和标头的差异变得神秘

您可以阅读描述cookies和相关标头

Set-cookie``cookie
的RFC,并了解它们是什么。

你可以通过在第7章

Servlet
规格,如果你想详细了解如何cookie和session有关系。

您首先需要了解HTTP是无状态协议。这意味着客户端发出的每个请求都与任何先前或将来的请求无关。但是,作为用户,我们非常希望在与Web应用程序交互时具有某种状态。例如,银行应用程序只希望您能够查看和管理交易。音乐流媒体网站可能希望根据您已经听到的内容推荐一些好的节奏。

为此,引入

cookie
Session
概念。cookies是键值对,但具有特定格式(请参阅链接)。会话是服务器端实体,用于存储跨越服务器和客户端之间的多个请求/响应的信息(在内存中或持久存储)。

Servlet
HTTP会话使用与名字的cookie
JSESSIONID
和值标识会话。

Servlet
容器保持的地图(YMMV)
HttpSession
对象和这些标识符。当客户端第一次发出请求时,服务器会创建一个
HttpSession
具有唯一标识符的对象,并将其存储在其映射中。然后
Set-cookie
在响应中添加标题。它将cookie的名称设置为,
JSESSIONID
并将其值设置为刚创建的标识符。

这是服务器使用的最基本的cookie。您可以根据需要设置任意数量的信息。该

Servlet
API使用该
HttpServletResponse#addcookie(cookie)
方法为您简化了操作,但是您可以使用该
HttpServletResponse#addHeader(String,String)
方法自己完成操作。

客户端接收这些cookie,并将其存储在某个地方,通常存储在文本文件中。向服务器发送新请求时,它可以使用请求

cookie
标头中的cookie
来通知服务器它可能已经完成了上一个请求。

Servlet
容器收到请求时,它将提取
cookie
标头值,并尝试
HttpSession
使用
JSESSIONID
cookie中的键从其映射中检索对象。这
HttpSession
则物体被连接到
HttpServletRequest
该对象
Servlet
容器创建并传递给你的
Servlet
。您可以使用
setAttribute(String,Object)
getAttribute(String)
方法来管理状态。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/568729.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号