2013-10-18 28 views
1

我想学习jsf和我读的东西是它是一个有状态的web框架。但是如果我没有使用jsf并只使用servlet,我可以使用会话范围来实现这种状态。那么,一个简单的Web框架是什么意思?该请求范围和会话范围都是相同的(有状态的)?什么是有条件的web框架的条件

回答

1

那个请求范围和会话范围都是一样的(有状态的)?

这是错误的。 @RequestScoped@SessionScoped既不相同也不具有状态性。

A @RequestScoped bean是无状态的。在这里存储的内容不超过1次请求的持续时间。有一个@RequestScoped豆的池,它们可以重复使用并在不同的用户之间共享。这只有在请求本身包含所有必要的信息时才有可能。

A @SessionScoped bean是有状态的。它与某个用户(Session)关联,不能共享。它将被存储几个请求,并可以保持一个状态(因此有状态)。

关于“有状态”和“无状态”有很多不同的定义,但是您可以将两个作用域的属性作为无状态和有状态的示例。

但即使仅使用@RequestScoped bean,由于JSF的内部工作方式,您的JSF应用程序可能不会完全无状态。新的JSF 2.2向无状态迈出了一步。请参阅this explanation了解如何通过JSF完全无状态的更多细节。

但请记住,在许多情况下,有状态(或不是无状态)是没有问题的,并且并非所有无状态应用程序的定义都比有状态应用程序更好。