相关疑难解决方法(0)

为什么JSF会在服务器上保存UI组件的状态?

  1. 直到在什么时间点不JSF UI保存组件的状态在服务器端和什么时候被删除的UI组件的状态信息从服务器内存?当应用程序中的登录用户浏览页面时,组件的状态是否会继续在服务器上累积?

  2. 我不明白在服务器上保持UI组件状态有什么好处?是不是直接将经过验证/转换的数据传递给托管bean?我可以或者应该尽量避免它吗?

  3. 如果有数千个并发用户会话,那么在服务器端是否会消耗太多内存?我有一个应用程序,用户可以在某些主题上发布博客.这个博客的规模非常大.当有回复或请求查看博客时,这些大页面数据是否会被保存为组件状态的一部分? 这会耗费太多记忆.这不是一个问题吗?


更新1:

现在,在使用JSF时不再需要保存状态.可以使用高性能无状态JSF实现.有关详细信息和讨论,请参阅此博客此问题.此外,JSF规范中还包含一个未解决的问题,即为JSF提供无状态模式的选项.(PS考虑的问题投票这个这个,如果这对你是一个非常有用的功能.)


更新2(24-02-2013):

一个好消息,Mojarra 2.1.19无状态模式!

看这里:

http://weblogs.java.net/blog/mriem/archive/2013/02/08/jsf-going-stateless?force=255

http://java.net/jira/browse/JAVASERVERFACES-2731

http://balusc.blogspot.de/2013/02/stateless-jsf.html

java jsf java-ee state-saving

103
推荐指数
1
解决办法
5万
查看次数

如何在JSF中减少javax.faces.ViewState

减少JSF中viewstate隐藏字段大小的最佳方法是什么?我注意到我的视图状态大约是40k,这会下降到客户端并在每次请求时回到服务器,并且响应通常会发送到服务器,这对用户来说是一个显着的减速.

我的环境JSF 1.2,MyFaces,Tomcat,Tomahawk,RichFaces

java viewstate optimization jsf bandwidth

17
推荐指数
2
解决办法
2万
查看次数

JSF调整

遇到JSF填补我们会话的问题.前几天我们遇到了系统崩溃.发送堆给IBM进行审核,发现我们有一些大到50M的会话.他们在会话中发现了JSF组件,而且有些非常大.

那么,有没有可以完成的调整?配置项看看?或其他方向.

我们的系统是使用JSF和Spring为表示层构建的,后端是EJB,Spring和Hibernate都在WebSphere 6.1上运行.

java performance websphere jsf

11
推荐指数
1
解决办法
1万
查看次数

JSF 2.0部分状态保存似乎不起作用

我正在评估在高流量网站上使用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 session-state jsf-2 state-saving

8
推荐指数
1
解决办法
6670
查看次数