当前位置: 首页 > 知识库问答 >
问题:

Spring请求和会话范围有什么区别?

凌华奥
2023-03-14

在请求范围中,bean被定义为HTTP请求,而在会话范围中,bean被定义为HTTP会话。例如,

如果bean范围是请求,并且用户在其用户会话中对网页发出多个请求,则在每个请求上都会创建一个新bean。

而如果范围被定义为bean的会话,如果用户多次请求网页,则在每次请求时都会返回相同的bean。

请让我知道这种理解是否正确?

共有2个答案

锺离正祥
2023-03-14

会话作用域——当作用域是会话时,formbean(表单数据)的值将在整个会话中可用。在会话超时或会话被销毁之前,它不会被销毁。

Request Scope-当范围是请求时,formbean(表单数据)的值将可用于当前请求。它将刷新相同用户/不同用户的每个请求。

因为http是无状态协议

姜学海
2023-03-14

你的理解是正确的。但是我想补充一点

而如果范围被定义为bean的会话,如果用户多次请求网页,则在每次请求时都会返回相同的bean。

我将其更改为“如果范围定义为bean的会话,如果用户多次请求网页,那么在每个请求上都会返回相同的bean,只要请求位于相同的用户会话中,并且是从能够维护会话的客户端发出的(除非传递cookie/session标识符标头,否则不能期望curl维护usersession)。"

 类似资料:
  • 我使用spring指南中简单REST服务的纯示例代码作为基础:http://spring.io/guides/gs/rest-service/ 我添加了单个Bean配置: 然后,我修改后的控制器如下所示: 而我正在得到 由于呼叫“/问候” 我在这里读了一些描述:http://docs.spring.io/spring/docs/current/spring-framework-reference/

  • 从WebSocketendpoint,我尝试调用单例服务。但是我无法使用来自WebSocket的请求或会话范围。 谢谢你的帮助!

  • 两者都返回一个列表,那么到底有什么区别呢?

  • 每当我试图分析以了解Spring范围时,我都被困在某个地方。以下是我分析后的理解,在总结之前,我想和你确认一下。如果我的理解有误,请纠正我。 如果范围是“请求”,则对于来自客户端的每个新请求,无论会话如何,spring 容器都将生成新实例。一旦请求完成,Spring容器将设法关闭实例的生命周期。 如果范围是“会话”,则对于会话的第一个请求,Spring 容器将生成一个新实例,并为该特定会话的所有客

  • 我想在我的web应用程序中使用Spring事件与我的bean“说话”。 例如,fired事件的bean如下所示: 所以,我的问题是: 事件侦听器是作用域请求是否可能?而如何做到这一点呢? 谢谢

  • 问题内容: 我在书中看到了一段代码,内容如下: 范围和块都一样吗? 问题答案: 作用域是您可以引用变量的地方。块定义了一个变量,该变量在一个块内部定义,将仅在该块内部定义,并且在块结束后不能引用它。 因此,在这段代码中,如果您尝试执行以下操作: 因为这里拥有的是局部作用域 ,所以java中的其他种类的作用域都是(例如),所以类的成员具有类作用域,因此可以在类内部的任何地方访问它。 范围的基本规则是