直到在什么时间点不JSF UI保存组件的状态在服务器端和什么时候被删除的UI组件的状态信息从服务器内存?当应用程序中的登录用户浏览页面时,组件的状态是否会继续在服务器上累积?
我不明白在服务器上保持UI组件状态有什么好处?是不是直接将经过验证/转换的数据传递给托管bean?我可以或者应该尽量避免它吗?
如果有数千个并发用户会话,那么在服务器端是否会消耗太多内存?我有一个应用程序,用户可以在某些主题上发布博客.这个博客的规模非常大.当有回复或请求查看博客时,这些大页面数据是否会被保存为组件状态的一部分? 这会耗费太多记忆.这不是一个问题吗?
现在,在使用JSF时不再需要保存状态.可以使用高性能无状态JSF实现.有关详细信息和讨论,请参阅此博客和此问题.此外,JSF规范中还包含一个未解决的问题,即为JSF提供无状态模式的选项.(PS考虑的问题投票这个和这个,如果这对你是一个非常有用的功能.)
一个好消息,Mojarra 2.1.19是无状态模式!
看这里:
http://weblogs.java.net/blog/mriem/archive/2013/02/08/jsf-going-stateless?force=255
减少JSF中viewstate隐藏字段大小的最佳方法是什么?我注意到我的视图状态大约是40k,这会下降到客户端并在每次请求时回到服务器,并且响应通常会发送到服务器,这对用户来说是一个显着的减速.
我的环境JSF 1.2,MyFaces,Tomcat,Tomahawk,RichFaces
遇到JSF填补我们会话的问题.前几天我们遇到了系统崩溃.发送堆给IBM进行审核,发现我们有一些大到50M的会话.他们在会话中发现了JSF组件,而且有些非常大.
那么,有没有可以完成的调整?配置项看看?或其他方向.
我们的系统是使用JSF和Spring为表示层构建的,后端是EJB,Spring和Hibernate都在WebSphere 6.1上运行.
我正在评估在高流量网站上使用JSF的可能性.我被告知在JSF 2.0中,组件树不存储在会话中,并且只有在修改组件树时才存储增量.
这是我正在查看的页面:
<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">
<body>
<h:form>
hello, world
</h:form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
每次查看此页面时,都会为会话分配近1K.如果我删除<form>标记,则会话中不会存储任何内容.
知道组件树存储在会话中的原因吗?我认为这将在回发请求上计算.
jsf ×4
java ×3
state-saving ×2
bandwidth ×1
java-ee ×1
jsf-2 ×1
optimization ×1
performance ×1
viewstate ×1
websphere ×1