- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课程实习指南
目录
TOC \o "1-3" \h \z \u 应用背景 1
J2EE技术简介 2
业务层的EJB技术 2
表现层的Servlet和JSP技术 2
业务层与数据库的交互 2
Duke’s Bank的J2EE架构 2
实习相关的技术 3
JBoss简介 3
启动JBoss 3
JBoss控制台 4
部署Duke’s Bank应用 5
访问Duke’s Bank应用 5
ORM 6
实体Bean和Hibernate 6
映射继承关系 6
分布式事务 7
拦截器 7
客户端拦截器链 7
容器拦截器 链 8
为EJB配置拦截器链 8
编写拦截器 10
实习任务 10
阅读和分析源代码 10
利用Hibernate实现ORM 10
实现分布式事务案例 11
利用拦截器扩充JBoss的功能 11
应用背景
我们的实习项目基于一个简单的网上银行应用,名称是Duke’s Bank。我们可以认为Duke’s Bank是一家银行,类似于中国工商银行。我们作为其客户,可以通过浏览器办理一些简单的业务,包括查询帐户信息、存/取款、转帐等。
Duke’s Bank的实现采用了J2EE 1.4技术,它是J2EE Tutorial的经典示例之一。它采用了经典的三层架构:表现层、业务层和数据层。其中,表现层利用JSP技术实现,业务层利用EJB技术实现,数据层一般利用数据库技术实现。具体如下图所示:
图表 SEQ 图表 \* ARABIC 1 J2EE的架构
下面以一个存款操作操作为例,来说明三层架构的运作。假定已存在一个帐户5005,余额为3300美元。该账户的相关信息都存储数据库中。存储业务数据是数据层的责任。假设客户需要向该账户中存100美元。主要的步骤包括:
从数据库中读取帐户5005的余额balance
修改balance的值,balance = balance + 100
将balance的新值写入数据库
以上三个步骤就是存款的业务逻辑,是业务层的责任。可见,业务层需要与数据层交互,交互的内容主要是数据的存取,我们称之为持久化。
存款操作是在浏览器中执行的,客户需要得到操作页面,这是表现层的责任。表现层的主要工作包括:
生成存款操作的html页面,展现给客户
接收客户填写的存款金额,并传递给业务层
触发业务层的存款逻辑
将存款操作的结果展现给客户
可见,表现层需要与业务层交互,交互的主要内容是传递参数和触发业务逻辑。
J2EE技术简介
业务层的EJB技术
在J2EE中,业务层采用EJB组件技术实现。EJB是一个遵行特定规约的Java类,类中提供了业务逻辑相关的方法。那么为什么采用EJB技术呢?EJB技术是J2EE平台的核心技术。借助于EJB,开发者能够轻松构建企业级应用。与普通应用相比,企业级应用对安全性、事务处理有着严格的要求,而安全性和事务处理是非常复杂的高端技术,对于应用开发人员是高难度的挑战。为了简化企业级应用的开发,J2EE平台提供了EJB容器,由容器负责解决安全性和事务处理,EJB组件只负责实现应用相关的业务逻辑。EJB组件运行在EJB容器之中,因此它能够获得容器提供的安全服务和事务服务。
从代码的层次看,EJB组件没有涉及到安全和事务处理。它通过部署描述文件来告诉EJB容器,我是否需要安全和事务服务,需要怎样的安全和事务服务。通过这种方式,应用开发人员将业务逻辑和企业级服务(安全、事务)分离。应用开发人员可以专注于应用相关的业务逻辑,部署人员专注于部署描述文件的配置。
表现层的Servlet和JSP技术
在J2EE中,表现层采用Servlet和JSP技术实现。Servlet是一个特殊的Java类,它负责接收所有的http请求,并决定如何处理或派发该请求。JSP是一种动态页面,它负责向客户展现带有业务数据的Html页面。前面提到,表现层需要与业务层进行交互。交互的逻辑一般包括在Servlet中,也就是说Servlet会调用EJB的方法。如果遵循良好的设计模式,Servlet一般不直接调用EJB的方法,而是把相关代码封装到Java Bean中。Java Bean是普通的Java类,它会直接调用EJB的方法。因此,Java Bean是表现层与业务层之间的“桥梁”。
业务层与数据库的交互
那么,业务层是如何与数据库交互的呢?一般情况下,基于Java的应用,会通过JDBC接口访问数据库。但是对于复杂的企业级应用来说,JDBC的粒度过细,应用开发人员不应过度关心访问数据库的细节。因此,J2EE提供了实体Bean。实体Bean是一种EJB,它不但封装了业务数据
文档评论(0)