|
|
1
6
服务器通过在浏览器上保存会话ID的cookie来标识用户。在服务器上,会话是放置在客户机/服务器交互期间需要跟踪的数据的地方(为应用程序提供状态)。
然后,您可以通过执行以下操作从httpservletrequest中获取会话:
见JavaDoc: here
在检索servlet中的会话后,使用
为什么要全局存储它,因为只有一个ID可以访问会话的servlet获得了与会话ID一起提供的请求。不是应用程序中的所有内容都需要了解每个请求。 下面是一个例子 请求 它附带了会话ID cookie:
您不能全局存储此信息,它对于每个请求都是唯一的。
当对数据进行有用的操作时,不要将会话传递给您的方法,传递有用的信息,如用户名、购物车内容等。
您的业务逻辑方法甚至不应该知道会话是什么。它更像是一件艺术品。 |
|
2
2
我想你想要的是 java.lang.ThreadLocal 变量。 |
|
|
3
1
我想你需要用 Context object 在表示层和业务层之间传递状态(我假设存在一个状态)。 Context对象使您能够封装状态并跨层传递它,而不必担心状态本身是如何维护的。如果您需要在这方面获得更多信息,可以参考核心J2EE模式书中的上下文对象设计模式。 |
|
|
Erik · PHP:确定会话过期时间 1 年前 |
|
|
xms · PHP HTTPOnly Cookie及其对会话的影响 1 年前 |
|
|
Tunahan Keklik · 如果用户仍在网站上时会话过期怎么办 2 年前 |
|
|
J.H · Nestjs服务器在Vercel部署一段时间后自动重新加载 2 年前 |
|
|
Michael Ding · Rails上的默认会话到期问题 2 年前 |
|
|
Patrick Visi · Zitadel日常创建服务用户 2 年前 |
|
|
newbie_php · php会话值丢失 2 年前 |