有状态会话bean定义如下: 有状态会话Bean一个对象的状态由其实例variables的值组成。 在有状态会话bean中,实例variables表示唯一客户bean会话的状态。 由于客户端与bean交互(“对话”),这个状态通常被称为会话状态。 无状态会话bean定义如下: 无状态会话Bean无状态会话Bean不保持与客户端的会话状态。 当客户端调用无状态bean的方法时,bean的实例variables可能包含特定于该客户端的状态,但仅在调用期间。 该方法完成后,客户端特定状态不应保留。 但是,客户端可能会更改共用无状态bean中的实例variables的状态,并且此状态将被保留到下一次对共用无状态bean的调用中。 除了在方法调用期间,无状态bean的所有实例都是等价的,允许EJB容器为任何客户端分配一个实例。 也就是说,无状态会话bean的状态应该适用于所有客户端。 还提到无状态会话bean的优点如下: 因为无状态会话bean可以支持多个客户端,所以它们可以为需要大量客户端的应用程序提供更好的可伸缩性。 通常情况下,应用程序需要比有状态会话bean更less的无状态会话bean来支持相同数量的客户端。 所以想到的问题是什么时候应该使用有状态会话bean? 对于这个问题的天真的理解,我们应该坚持尽可能地使用无状态会话bean。 应该使用有状态会话bean的候选人是什么? 任何好的例子? 会话Bean
我在几个论坛中遇到了“托pipebean”和“backing bean”这两个术语。 许多人认为两者是相同的。 但是,似乎有一点区别。 任何人都可以帮助我理解这两个术语之间的确切区别吗?
我有一个可以在不同的应用程序中使用的Facelet。 我不想复制它,但重复使用它。 我需要传递将作为参数pipe理视图的后台bean,因为某些逻辑可能会根据所在的应用程序而有所不同。 我不想使用复合组件,只是包含Facelet并指定哪个bean将pipe理视图。 我怎样才能做到这一点? 让我举个例子: <ui:composition template="/resources/common/templates/template.xhtml" xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:a4j="http://richfaces.org/a4j" xmlns:rich="http://richfaces.org/rich" xmlns:fn="http://java.sun.com/jsp/jstl/functions"> <ui:define name="content"> <!– somehow establish the backing bean that will manage formView.xhtml –> <!– f:set assign="ParameterBean" value="#{Bean}" / –> <ui:include src="formView.xhtml" /> </ui:define> </ui:composition> formView.xhtml: <ui:composition template="/resources/common/templates/template.xhtml" xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:a4j="http://richfaces.org/a4j" xmlns:rich="http://richfaces.org/rich" xmlns:fn="http://java.sun.com/jsp/jstl/functions"> <ui:define name="content"> <h:outputText value="#{ParameterBean.texto}" […]