我在 WAS7.0 上有一个小型 JSF Web 应用程序,只有一个页面,但用户群相当大。
我可以将 all(1) bean 声明为请求范围,并且还可以使用 javax.faces.STATE_SAVING_METHOD 客户端,而不会使用非到期会话在服务器上遇到内存问题吗?
这将如何适用于更大的应用程序?
原因:我正在尝试在 IBM 处理我的 PMR 时快速解决 WAS7.0 中的问题。
编辑:在这一点上,我没有资源来尝试自己测量它,并且会保持应用程序不变(希望不会惹恼太多用户)。
我在 WAS7.0 上有一个小型 JSF Web 应用程序,只有一个页面,但用户群相当大。
我可以将 all(1) bean 声明为请求范围,并且还可以使用 javax.faces.STATE_SAVING_METHOD 客户端,而不会使用非到期会话在服务器上遇到内存问题吗?
这将如何适用于更大的应用程序?
原因:我正在尝试在 IBM 处理我的 PMR 时快速解决 WAS7.0 中的问题。
编辑:在这一点上,我没有资源来尝试自己测量它,并且会保持应用程序不变(希望不会惹恼太多用户)。
您不一定需要更改 bean 的范围。只需将 bean 保持在它们所属的范围内。只有当您滥用会话范围的 bean 来保存请求或查看范围数据时,故事才会真正改变。请求或查看范围数据属于请求或视图范围 bean,而不是会话范围 bean。会话范围的 bean 应该只用于保存会话范围的数据,例如登录用户、其站点范围的首选项、选择的语言等。
将状态保存方法从服务器更改为客户端肯定会修复ViewExpiredException
其支持会话已过期的视图。它会减少服务器的内存使用,但会增加服务器的网络带宽使用。但是,如果您已经在使用 GZIP(或者还没有;所以也打开它),那么影响就很小了。