资源预览内容
第1页 / 共15页
第2页 / 共15页
第3页 / 共15页
第4页 / 共15页
第5页 / 共15页
第6页 / 共15页
第7页 / 共15页
第8页 / 共15页
第9页 / 共15页
第10页 / 共15页
亲,该文档总共15页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第7章 EJB3实例,JavaEE5 教程 吉林大学软件学院,2011年3月,主要内容,无状态会话Bean实例,完成的功能是计算个人所得税; 有状态会话Bean实例,模拟一个网上书店的购物车; 多接口EJB,2011年3月,7.1 无状态会话Bean实例,7.1.1 实例功能描述 使用EJB完成个人所得税的计算,计算的时候需要提供应纳税部分工资和起征点。 采用无状态会话Bean:因为不需要保存客户端信息。,2011年3月,7.1 无状态会话Bean实例,该实例由两个文件组成 业务接口 Bean类 包括两种类型的客户端 Application客户端 Web客户端,采用JSP,2011年3月,7.1 无状态会话Bean,7.1.3 创建Bean类 需要实现业务接口中的方法 Stateless表示EJB是无状态会话Bean implements PersonalRevenue 表示实现了业务接口PersonalRevenue。 实例,2011年3月,Stateless() public class PersonalRevenueBean implements PersonalRevenue public float getPersonalRevenue(float salary,float start) float revenue = 0; float revenueSalary; /应纳税工资 revenueSalary = salary - start; if(revenueSalary0) revenue = 0; else if(revenueSalary 500) revenue = revenueSalary * 5 /100; else if(revenueSalary 2000) revenue = revenueSalary * 10 /100 - 25; else if(revenueSalary 5000) revenue = revenueSalary * 15 /100 - 125; else if(revenueSalary 20000) revenue = revenueSalary * 20 /100 - 375; else if(revenueSalary 40000) revenue = revenueSalary * 25 /100 - 1375; else if(revenueSalary 60000) revenue = revenueSalary * 30 /100 - 3375; else if(revenueSalary 80000) revenue = revenueSalary * 35 /100 - 6375; else if(revenueSalary 100000) revenue = revenueSalary * 40 /100 - 10375; else revenue = revenueSalary * 45 /100 - 15375; return revenue ; ,2011年3月,7.1 无状态会话Bean实例,7.1.4 创建Application客户端 获取对EJB实例的引用 EJB private static PersonalRevenue personalRevenue; 访问EJB的业务方法 float revenue = personalRevenue.getPersonalRevenue(3000,1600); 完整代码,2011年3月,public class PersonalRevenueClient EJB private static PersonalRevenue personalRevenue; public PersonalRevenueClient (String args) public static void main(String args) PersonalRevenueClient client = new PersonalRevenueClient (args); client.doGetPersonalRevenue(); public void doGetPersonalRevenue () try float revenue = personalRevenue.getPersonalRevenue(3000,1600); System.out.println(工资为:3000元的人需要缴纳的个人所得税为: + revenue+ 元。); catch (Exception ex) System.err.println(产生未知异常!); ex.printStackTrace(); ,2011年3月,7.2 有状态会话Bean实例,功能:本实例模拟一个网上书店的购物车,能够向购物车中添加图书、能够删除购物车中的图书、能够察看购物车中的信息。 包含两个文件 业务接口 会话Bean类 涉及两个辅助类 IdVerifier BookException,2011年3月,7.2 有状态会话Bean实例,7.2.1 业务接口 package ch11; import java.util.List; import javax.ejb.Remote; Remote public interface Cart public void initialize(String person) throws BookException; public void initialize(String person, String id)throws BookException; public void addBook(String title); public void removeBook(String title) throws BookException; public List getContents(); public void remove(); ,2011年3月,7.2 有状态会话Bean实例,7.2.2 Bean类 使用Stateful进行标识 实现业务接口 public class CartBean implements Cart 实现业务接口中定义的所有业务方法 实现Remove方法 Remove() public void remove() contents = null; ,2011年3月,7.2 有状态会话Bean实例,7.2.3 辅助类 IdVerifier 验证ID是否合法 BookException 自定义的异常类 7.2.4 访问过程 与无状态会话Bean的访问过程相同,2011年3月,7.3多接口EJB,HelloWorldRemote,2011年3月,小结,本章小结 无状态会话Bean 有状态会话Bean 多接口EJB 下一章 消息服务与消息驱动Bean,2011年3月,
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号