课程提纲 口第一部分Java EE:基础 口第二部分Java Web开发 口第三部分JSF框架 口第四部分EJB ◆第10章会话bean 口第五部分JPA 口第六部分SSH框架 JavaEE:技术 ·1。西北农林科大学信息工程学院本科生课程
课程提纲 第一部分 Java EE基础 第二部分 Java Web开发 第三部分 JSF框架 第四部分 EJB ◆第10章 会话bean 第五部分 JPA 第六部分 SSH框架 Java EE技术 •1 信息工程学院本科生课程
主要内容 ”会话Bean的分类以及各自的生命周期; ~会话Bean包括哪些文件以及如何编写; 如何编写客户端程序来访问EJB; ·有状态会话Bean和无状态会话Bean的区别; EJB的运行原理; 实例池。 会话bean 2。西北农林升教大学信息工程学院本科生课程
主要内容 ❖ 会话Bean的分类以及各自的生命周期; ❖ 会话Bean包括哪些文件以及如何编写; ❖ 如何编写客户端程序来访问EJB; ❖ 有状态会话Bean和无状态会话Bean的区别; ❖ EJB的运行原理; ❖ 实例池。 会话bean •2 信息工程学院本科生课程
会话Bean的分类 会话Bean分为: ·无状态会话Bean ·有状态会话Bean。 无状态会话Bean与有状态会话Bean的区别在于: 。如果需要保存客户的多次调用之间客户端的状态,则 需使用有状态会话bean; ·否则,使用无状态会话bean。 会话bean •3。西北农林科枝大学信息工程学院本科生课程
会话Bean的分类 ❖ 会话Bean分为: • 无状态会话Bean • 有状态会话Bean。 ❖ 无状态会话Bean与有状态会话Bean的区别在于: • 如果需要保存客户的多次调用之间客户端的状态,则 需使用有状态会话bean; • 否则,使用无状态会话bean。 会话bean •3 信息工程学院本科生课程
无状态会话Bean的生命周期 不存在 1、依赖注入 调用 2、调用 preDestroy postConstruct 准备就绪 会话bean 4。 品北农林升教大学信息工程学院本科生课程
无状态会话Bean的生命周期 会话bean •4 信息工程学院本科生课程
有状态会话Bean的生命周期 不存在 1、依赖注入 1、 删除或者 到期。 2、调用 2、调用 到期。 postConstruct preDestroy 调用prePassivate+ 准备就绪 挂起 调用postActivate. 会话bean 5。 西北农林科教大学信息工程学院本科生课程
有状态会话Bean的生命周期 会话bean •5 信息工程学院本科生课程
编写会话Bean 会话Bean包括两类文件:Bean类和业务接口。 Bean类用于实现会话Bean的核心功能,会话Bean 要实现哪些功能,需要在Bean类中实现这些方法。 ”业务接口用于声明哪些方法可以供客户端访问, 客户端对EJB的访问是通过接口进行的,与Bean类 无关。 会话bean ·6。西北农林升教大学信息工程学院本科生课程
编写会话Bean ❖ 会话Bean包括两类文件:Bean类和业务接口。 ❖ Bean类用于实现会话Bean的核心功能,会话Bean 要实现哪些功能,需要在Bean类中实现这些方法。 ❖ 业务接口用于声明哪些方法可以供客户端访问, 客户端对EJB的访问是通过接口进行的,与Bean类 无关。 会话bean •6 信息工程学院本科生课程
编写业务接口 Bean类的业务接口用于声明哪些方法可以供客户 端访问; 冬如果供远程客户端访问需要声明远程业务接口。 如果供本地客户端访问需要提供本地业务接口; 远程业务接口使用@Remote声明,本地业务接口使 用@Local声明。 会话bean •7。西北农林科大学信息工程学院本科生课程
编写业务接口 ❖ Bean类的业务接口用于声明哪些方法可以供客户 端访问; ❖ 如果供远程客户端访问需要声明远程业务接口。 如果供本地客户端访问需要提供本地业务接口; ❖ 远程业务接口使用@Remote声明,本地业务接口使 用@Local声明。 会话bean •7 信息工程学院本科生课程
编写业务接口 ”远程业务接口 @Remote public interface Calculator{ public float add(int a,int b); public float subtract(int a,int b); } 本地业务接口: @Local public interface Calculator public float add(int a,int b); public float subtractint a,int b); 会话bean ·8。西北农林彩教大学信息工程学院本科生课程
编写业务接口 ❖ 远程业务接口 @Remote public interface Calculator { public float add (int a, int b); public float subtract(int a, int b); } ❖ 本地业务接口: @Local public interface Calculator { public float add (int a, int b); public float subtractint a, int b); } 会话bean •8 信息工程学院本科生课程
编写业务接口(2) 同一个业务接口不能既作为Bean的本地业务接口 又作为Bean的远程业务接口。 如果在业务接口上不使用@Remote和@Local,接口 的类型可以在Bean类上指定: ·例如有一个远程接口Calculator没有使用@Remote, 可以在Bean类上通过@Remote(Calculator.class)来标 注Calculator是远程接口。 会话bean ·9。品北农林科大学信息工程学院本科生课程
编写业务接口(2) ❖ 同一个业务接口不能既作为Bean的本地业务接口 又作为Bean的远程业务接口。 ❖ 如果在业务接口上不使用@Remote和@Local,接口 的类型可以在Bean类上指定: • 例如有一个远程接口Calculator没有使用 @Remote , 可以在Bean类上通过@Remote(Calculator.class)来标 注Calculator是远程接口。 会话bean •9 信息工程学院本科生课程
编写会话Bean的Bean类 对会话Bean的Bean类的要求: 。 类必须标识为@Statefuli或者@Stateless。前者表示有 状态会话Bean,后者表示无状态会话Bean。如: @Stateful(mappedName--“cart')mappedName指定的不是EJB的 public class CartBean JNDl名称。但Java EE服务器 @Stateless 会将其映射为一JNDI。客户 public class Salary Bean 程序可通过mappedName:指定 的名称访问该EJB。 实现业务接口,该接口是一个纯Java接口,可以是远 程接口,也可以是本地接口,也可同时有两个接口。 。必须实现业务接口中定义的所有方法。 会话bean 10。品北农林升大学信息工程学院本科生课程
编写会话Bean的Bean类 ❖ 对会话Bean的Bean类的要求: • 类必须标识为@Stateful或者@Stateless。前者表示有 状态会话Bean,后者表示无状态会话Bean。如: @Stateful(mappedName=“cart”) public class CartBean @Stateless public class SalaryBean • 实现业务接口,该接口是一个纯Java接口,可以是远 程接口,也可以是本地接口,也可同时有两个接口。 • 必须实现业务接口中定义的所有方法。 mappedName指定的不是EJB的 JNDI名称。但Java EE服务器 会将其映射为一JNDI。客户 程序可通过mappedName指定 的名称访问该EJB。 会话bean •10 信息工程学院本科生课程