Jsf 2 JSF2.0中多客户端的概念验证

Jsf 2 JSF2.0中多客户端的概念验证,jsf-2,Jsf 2,我必须在JSF2.0中实现多客户端处理的概念验证。在jsf中如何处理多个客户机?只是不要将请求或会话范围的数据存储在应用程序范围内的托管bean中。另外,不要声明请求或会话范围的bean的属性,该bean应该与bean本身一样作为static存在 它与基本Servlet API没有什么不同。只是不要将请求或会话范围的数据存储在应用程序范围内的托管bean中。另外,不要声明请求或会话范围的bean的属性,该bean应该与bean本身一样作为static存在 JSF2.0帮助您提供了一种创建用户界面

我必须在JSF2.0中实现多客户端处理的概念验证。在jsf中如何处理多个客户机?

只是不要将请求或会话范围的数据存储在应用程序范围内的托管bean中。另外,不要声明请求或会话范围的bean的属性,该bean应该与bean本身一样作为
static
存在


它与基本Servlet API没有什么不同。

只是不要将请求或会话范围的数据存储在应用程序范围内的托管bean中。另外,不要声明请求或会话范围的bean的属性,该bean应该与bean本身一样作为
static
存在


JSF2.0帮助您提供了一种创建用户界面的方法,并为处理请求、会话或应用程序等范围提供了一些内置注释。在简单的场景中,使用请求、视图、flash和会话范围可能适合您。但是,如果您需要更详细的内容,请查看哪些内容提供了众所周知的对话范围(需要spring),或者更好地查看哪些内容为您提供了bean验证、脚本编写、窗口范围等等!。对于新的JSFWeb应用程序来说,使用CODI是最好的,因为它遵循CDI-JSR299的标准,并为您提供了一些有用的东西


从CODI开始的最佳方式是查看,您也可以提出问题。

JSF2.0帮助您提供一种创建用户界面的方法,并具有一些用于处理请求、会话或应用程序等范围的内置注释。在简单的场景中,使用请求、视图、flash和会话范围可能适合您。但是,如果您需要更详细的内容,请查看哪些内容提供了众所周知的对话范围(需要spring),或者更好地查看哪些内容为您提供了bean验证、脚本编写、窗口范围等等!。对于新的JSFWeb应用程序来说,使用CODI是最好的,因为它遵循CDI-JSR299的标准,并为您提供了一些有用的东西


从CODI开始的最佳方式是查看,您也可以提出问题。

@BalusC:在我们的应用程序中,我们不会将任何请求或会话范围的数据存储在位于应用程序范围内的托管bean中。如果两个客户机正在使用该应用程序,则他们正在访问相同的会话属性。这可以通过使用自定义范围的bean来解决吗?如果两个物理上不同的客户端可以访问同一个会话变量,那么它很可能被存储为会话bean的
静态属性。或者只是你误解了“会话”的概念,错误地认为同一浏览器实例的两个不同窗口或选项卡代表不同的会话。如果要测试多个客户端,则必须使用物理上不同的计算机或webbrowser(例如Firefox和Chrome)进行测试。@BalusC:如果用户在同一webbrowser上打开两个不同的客户端站点(使用相同的应用程序)A和B,两个客户端都有相同的会话id。如果在同一浏览器中打开,它们怎么会有不同的会话id?是两种不同的上下文吗?默认情况下,会话不会在不同上下文之间共享。但是,一些servletcontainers可以配置为在所有部署的上下文之间共享会话。例如,在Tomcat中,如果在
中为两个WAR设置
emptySessionPath=“true”
,则它们将共享会话。同样,这不是默认值!但是,如果它基本上是相同的上下文(并且您过度简化了URL示例),那么您需要确保将其部署为两个不同的上下文。所以,只需提供两个WAR(或EAR)文件。@BalusC:为所有客户端部署了一个WAR文件。我们的应用程序被2个以上的客户端使用。那么,有没有一种方法可以只为多个客户端使用一个War文件?@BalusC:在我们的应用程序中,我们不会将任何请求或会话范围的数据存储在位于应用程序范围内的托管bean中。如果两个客户端正在使用该应用程序,它们将访问相同的会话属性。这可以通过使用自定义范围的bean来解决吗?如果两个物理上不同的客户端可以访问同一个会话变量,那么它很可能被存储为会话bean的
静态属性。或者只是你误解了“会话”的概念,错误地认为同一浏览器实例的两个不同窗口或选项卡代表不同的会话。如果要测试多个客户端,则必须使用物理上不同的计算机或webbrowser(例如Firefox和Chrome)进行测试。@BalusC:如果用户在同一webbrowser上打开两个不同的客户端站点(使用相同的应用程序)A和B,两个客户端都有相同的会话id。如果在同一浏览器中打开,它们怎么会有不同的会话id?是两种不同的上下文吗?默认情况下,会话不会在不同上下文之间共享。但是,一些servletcontainers可以配置为在所有部署的上下文之间共享会话。例如,在Tomcat中,如果在
中为两个WAR设置
emptySessionPath=“true”
,则它们将共享会话。同样,这不是默认值!但是,如果它基本上是相同的上下文(并且您过度简化了URL示例),那么您需要确保将其部署为两个不同的上下文。所以,只需提供两个WAR(或EAR)文件。@BalusC:为所有客户端部署了一个WAR文件。我们的应用程序被2个以上的客户端使用。那么,有没有一种方法可以只为多个客户端使用一个War文件?