0

我对 JSF 支持 bean 范围有一些误解。我是 JSF 的新手,现在正在编写一个简单的项目,我所有的 bean 大多都有会话范围。但是,如果我的站点将有很多用户,这意味着我的会话将非常大并且会杀死我的服务器。有人告诉我解决方案是使用请求范围 bean。但是,例如,当我的页面必须验证并且验证失败时显示错误消息并保存所有用户输入,在这种情况下我该怎么办?我正在尝试使用使用 AJAX 请求的组件,并希望我的请求 bean 不会被重建,但这不起作用(我正在使用<rich:datascroller>)。

我认为我对 JSF 的理解有很大的漏洞,如果有人解释在这种情况下我必须做什么,或者在一些关于 bean 范围的好文章上链接我,我将不胜感激。

4

1 回答 1

2

范围定义 bean 的生命周期。

请求范围 bean 在处理一个 HTTP 请求期间存在,因此在您分析用户输入和制定响应页面时都可用。因此,对于简单的验证和响应,我希望请求范围的 bean 是您所需要的 - 例外情况是,如果您将重定向发送回浏览器并提交新请求,那么您可能需要...

会话范围的 bean 在用户会话的整个生命周期内都存在,即。跨越多个请求。会话可能会持续一段时间,但最终用户会注销,或者变得静止,并且他的会话会超时。因此,您拥有多少用户并不重要,重要的是一次有多少活跃用户。为每个用户保留一些会话数据是很常见的(至少像谁是,也许是他最近查看的东西),所以没有根本的理由担心保留一些数据。您只需要确保保持整洁,不要将旧页面的数据保存得非常长——也许只是一个“当前数据”bean 或类似的。

于 2009-07-17T12:41:48.527 回答