5

是否有任何状态保存方法可以允许 JSF 应用程序在服务器上初始保存状态数据,但是在会话过期时间间隔之后,该状态被传输到客户端,这样即使服务器上的会话超时和内存更好,应用程序也始终响应在服务器上管理?

或者有什么方法可以实现?但我希望这应该成为 JSF 规范的一部分!


编辑

在 BalusC 的建议下,我对无状态 JSF原则及其当前实现印象深刻。如果这里的其他人也对将无状态 JSF 添加到 JSF 规范感兴趣,请考虑查看或投票这个问题

无状态 JSF 为某些收益提供了巨大的性能提升,例如无法动态创建视图(例如通过绑定、JSTL 标记等)或修改它。


无状态 JSF 操作模式对于高负载应用程序和架构非常有用:

https://web.archive.org/web/20140626062226/http://industrieit.com/blog/2011/11/stateless-jsf-high-performance-zero-per-request-memory-overhead/#comment-4

雅各布以前曾建议过: http ://weblogs.java.net/blog/jhook/archive/2006/01/experiment_goin.html

这将有助于 JSF 摆脱“速度慢且占用内存”的污名,并有助于跟上当前的技术趋势(无状态架构)。

4

1 回答 1

5

这在技术上怎么可能?服务器永远无法事先可靠地预测下一个请求是否会创建新会话,因此当前请求的响应必须使用客户端状态保存而不是服务器端状态保存。如果您曾经成功地使用纯 JSP/Servlet 实现它,请随时发布 JSF 规范增强请求。

只需使用客户端状态保存并确保启用部分状态保存。与全状态保存相比,开销相对较小。

请注意,可以完全无状态地使用 JSF。另请参阅此博客。唯一的主要好处是您不能动态创建视图(例如,通过binding、JSTL 标记等),也不能在创建后对其进行操作(例如,通过添加/删除组件的子项)。

也可以看看:

于 2012-04-30T18:35:08.430 回答