春天的请求和会话范围有什么区别?

时间:2017-09-25 20:11:20

标签: spring session dependency-injection request autowired

在请求范围中,bean被定义为HTTP请求,而在会话范围中,bean的范围限定为HTTP会话。 所以对于一个例子来说,

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

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

如果这种理解是正确的,请告诉我?

2 个答案:

答案 0 :(得分:5)

您的理解是正确的。但是我想补充一些东西

  

然而,如果范围被定义为bean的会话,那么如果是用户   不止一次地请求网页,然后是每次请求   将返回相同的bean。

我会改变它,如果范围被定义为bean的会话,如果用户多次请求一个网页,那么在每个请求中都会返回相同的bean,只要请求在同一个用户会话中,并且来自能够维护会话的客户端(除非您传递cookie /会话标识符头,否则您不能期望curl维护usersession。< /强>

答案 1 :(得分:1)

会话范围-当范围为会话时,formbean(表单数据)的值将在整个会话中可用。在会话超时或会话被破坏之前,它不会被破坏。

请求范围-请求范围时,当前请求可以使用formbean(表单数据)的值。它将根据同一用户/不同用户的每个请求刷新。

因为http是无状态协议