J2EE相关技术介绍.doc
《J2EE相关技术介绍.doc》由会员分享,可在线阅读,更多相关《J2EE相关技术介绍.doc(22页珍藏版)》请在三一办公上搜索。
1、精选优质文档-倾情为你奉上J2EE相关技术介绍J2EE 技术介绍J2EE 概述为了解决企业在软件开发中出现的问题,SUN 公司提出的以 Java 2 平台为核心一种框架方案 J2EE。它的出现精简了企业软件开发、部署过程,为企业建造高质量的应用系统提供了好的支撑,解决了传统两层模式(Client/Server)下客户端庞大的弊端。J2EE 平台由一整套服务(Services)、应用程序接口(APIs)和协议构成,它对开发基于 Web 的多层应用系统提供了强大的支持,本质上是一个分布式的服务器应用程序设计环境。2005 年 6 月,J2EE 正式更名为 Java EE。J2EE 的四层模型J2E
2、E 采用多层的分布式模型,J2EE 应用程序既可以是三层结构,也可以是四层结构。典型的基于 B/S 的 J2EE Web 应用四层结构包括客户层、控制层、业务层和持久层,分层图如图 2.1 所示:1 客户层客户层又称为用户层。简单来理解就它主要是与客户双向互动的,既接收来客户的命令或请求又把来自系统的执行结果展示给用户。J2EE 客户端有许多,可以是基于 Web 或者不是基于 Web。通常用户层采用 Web 客户端,也就是瘦客户端,显示由 JSP 或 Servlet 产生的 Web 页面。客户层一般不实现如数据库操作(sql)、完成复杂的业务逻辑这样的功能。Web 客户端基于浏览器形式,维护、
3、使用、升级方便,不需要单独再次安装客户端。2 控制层控制层又称 Web 层。它的主要作用是接收来自客户端的请求(Request),并对客户的请求产生相应的响应(Response)。J2EE 平台中,控制层是由 Web 容器内的组件来实现,可以解决系统异构性问题,实现系统的通用性、可伸缩性、易维护性。3 业务层业务层或 EJB 层主要是满足某些领域(教育业和金融业)特定业务需要的。通常情况下,业务层提供业务服务组件供应用程序使用。业务组件通常被实现EJB(Enterprise JavaBeans)组件,并由 EJB 容器负责管理和执行。4 持久层持久层或 DAO(DataAccess Objec
4、t,数据访问对象)层,此层由许多的 DAO 组件构成。DAO 组件实现了对数据库记录的创建、查找、更新和删除(CRUD)等原子操作。持久层可以采用不同的访问技术,对应不同的访问技术,DAO 组件的实现会完全不同。通常情况下,为了设计更好的软件,保证系统具有良好的去耦,我们为每个 DAO 组件都提供接口,方便业务逻辑组件的使用。MVC 设计模式MVC 工作原理MVC 是 20 世纪 80 年代出现并使用的一种软件设计模式,即模型、视图、控制器。它将程序的输入、输出和处理环节分开,即分成相对独立而又能相互协同工作的三个部分,三个部分别担负不同的任务,有效的降低软件模块之间的耦合,提供了良好的可扩展
5、性。MVC 模式类似于设计模式中的观察者模式,它的处理过程如图 2.2 所示,它是所有面向对象的程序设计语言都应该遵守 MVC的法则。1 模型(Model)模型是应用程序的主体,表示业务逻辑或业务数据,接受来自视图的请求数据,并向视图返回最终的处理结果。与视图和控制器相比较,模型有最多的处理任务。模型与数据格式关系不大,一个模型能够为多个视图提供数据或者说多个视图能够共享一个模型。模型的出现极大的提高了应用的可重用性。业务模型的设计是 MVC 的重要问题。2 视图(View)就视图而言,它是用户能够与其交互的界面。视图向用户呈现相关数据,并能接收来自用户输入的数据,但是它并不做任何实质性的业务
6、处理。视图虽然能够向模型查询业务状态,但它自身并不能改变模型。视图能够接受模型发出的数据更新事件,并对用户界面进行同步更新。3 控制器(Controller)控制器是表现层和业务层的模式,主要完成与客户端的交互、控制并管理每个请求和处理,它的本质就是一个分发器,它仅仅把用户的请求传递给模型,告诉模型做什么,并选择符合要求的视图展现给用户,它自身并不对数据做任何处理。Struts2 框架Struts2 框架概述通常来讲,所谓的框架就是一种结构化的软件。在框架的帮助下,我们很容易将某些领域的任务和一些具体问题进行流程上的抽象,借助框架提供的平台,我们可以更快捷地创建满足自己工作需要的 Web 应用
7、程序。Struts2 是实现了MVC 模式的 Web 框架。它运行起来稳定,设计理念先进,性能优秀。Struts2 采用拦截器的机制来处理用户的请求,实现权限拦截,使得业务逻辑控制器能够与ServletAPI 完全脱离开,弥补了 Struts1 代中 JSP/Servlet 耦合非常紧密,难于测试等问题。Struts2 的工作原理Struts2 的工作原理如图 2.3 所示。它接收来自客户端的请求到作出响应主要通过以下流程来完成:1 请求 HttpServletRequest 通过客户端的浏览器发出(请求是。action 或 JSP);2 这个 HttpServletRequest 请求经过许
8、多过滤器(比如 SiteMesh);3 接着 Struts2 的核心控制器 FilterDispatcher 会被调用。调用后 Struts2 的核心控制器 FilterDispatcher 会主动询问 Struts2 的 Action映射器 ActionMapper 来决定是否针对当前的 HttpServletRequest 请求调用相应的动作 Action;4 如果 Struts2 的动作 Action 映射器 ActionMapper 决定了当前的请求需要调用某个 Action,那么 Struts2 的核心控制器 FilterDispatcher 就会把当前请求的处理权利交给动作 Act
9、ion 的代理 ActionProxy;5 Action 的代理 ActionProxy 会通过 Struts2 的配置管理器(Configuration Manager)查找struts。xml ,找寻当前请求要求使用的 Action 类;6 接着,Action 的代理 ActionProxy会构建一个 Action 的调用者 ActionInvocation 的实例;7 ActionInvocation 对象通过“名字”来调用 Action。在调用 Action 的过程中有要关联相关拦截器(Intercepter)的调用;8 当 Action 执行完了后,Action 的调用者 Actio
10、nInvocation 会根据 Struts2 的struts。xml 文件配置信息找到对应的返回结果。Struts2 实现 MVC 的原理Struts2 是 MVC 设计模式的具体的实现,我们很容易根据自己需要快速搭建Struts2 的开发环境。在 Struts2 中,动作(action)、结果(result)、过滤分配器(FilterDispatcher)是对 MVC 模式的具体实现,如图 2.4 所示:1 控制器(FilterDispatcher)在 Struts2 中,控制器是由 FilterDispatcher 来实现的。控制器 FilterDispatcher位于 MVC 的最前端
11、,它是在客户请求过程中第一个被调用的组件。控制器的工作原理是将客户的请求映射到具体的动作,并决定由哪个动作(Action)来完成客户的请求。2 模型(动作)模型由 Struts2 的动作组件来实现。Struts2 的动作组件有两个作用:一是一个动作将业务逻辑调用封装到一个单独的工作单元中,二是动作是一个传输数据的场所。控制器在收到请求之后,必须通过映射来决定哪个动作处理这个请求,一旦找到了适当的动作,控制器会调用这个动作并将控制权交给它,完成工作后,就向提交请求的用户返回视图。3 视图(结果)视图是 MVC 呈现给用户的组件,它的主要作用是将 WEB 应用程序的状态转变为一种可视化的表示,这种
12、表示使得用户能与它充分交互。动作会具体负责选择哪个结果来呈现响应,它可以从任意数量的结果中选择。Spring 框架Spring 框架概述Spring 框架由 Rod Johnson 开发,是分层的 Java SE/EE 应用一站式的轻量级开源框架。它以 IoC(Inverse of Control:反转控制)和 AOP(Aspect OrientedProgramming:面向切面编程)为内核,提供了展现层 Spring MVC 和 持久层Spring JdbcTemplate、ORM 模块以及业务层 SpringBean 管理、事务管理等众多的企业级技术。Spring 出现就是为了解决 Ja
13、vaEE 程序开发人员在实际开发中遇到的问题。与 EJB 繁重、复杂的解决方案相比较,它属于轻量级的解决方案。Spring 框架结构Spring3 框架由 20 多个模块组成,这些模块为企业的开发提供了 “一站式”选择,如图 2.5 所示:1 核心容器(Core Container):是整个 Spring3 框架主要部分,完成了整个结构的最基本的功能。核心容器通过配置文件的方式描述类和类之间的依赖关系。BeanFactory(Bean 工厂)是 Core Container 的主要部件组件。IoC 容器负责依赖类之间的建立,连接、获取、管理等工作。SpringContext 是一个配置文件,它
14、不但提供了对国际化、生命周期事件和验证的支持还提供了如 Email、JNDI 访问、EJB 集成、国际化校验等。Expression Language 完成了操作和查询对象图的功能。2 AOP 模块:Spring 的 AOP 模块提供了满足 AOP Alliance 规范的实现,确保它与其它 AOP 框架的互通,同时它还整合了 AspectJ 框架。3 数据访问和集成:Spring 对中间层数据的访问提供了强大的支持,使用它可以极大简化程序的数据访问。它主要包括 JDBC 模块、ORM 模块、OXM 模块、Transaction 模块等。(1)JDBC 模块主要提供了对 JDBC 的抽象。(2
15、)ORM(Object/Relation Mapping)提供了常用的“O/R”映射 APIs 的集成。(3)OXM(O/X Mapper)模块完成 POJO 和 XML 之间的变换。(4)Transaction 模块能够给 Spring 管理的对象提供良好的事务管理。4 Web 及远程操作:包括 Web 模块、Web-Struts 模块、Web-Portlet 等模块。(1)Web 模块:该模块提供了基于 Web 的功能和工具。它提供了如模板引擎、文件上传、远程过程访问等功能。(2)Web-Servlet 模块:该模块提供了企业应用的 MVC 实现。(3)Web-Struts 模块:该模块为
16、 Struts 和 Spring 的整合提供了较好的支持。(4)Web-Portlet 模块:该模块为 MVC 在 Portlet 环境下提供了支持。5 测试部分(Test):可以用回归测试框架 JUnit 对 Spring 组件进行测试。AOP面向切面编程 AOP 是对 OOP 思想的延伸,它采用横向抽取机制取代了传统纵向继承体系。主要是将日志记录、性能统计、安全控制、事务处理、异常处理等代码从业务逻辑代码中划分出来,使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性。IoC控制反转(IoC)又称依赖注入(Depedency Injection,DI)指程序运行过程中,如果需要另一个对象
17、协作时,无需在代码中创建被调用者而是依赖于外部容器的注入。IoC 是一种设计模式,程序设计人员利用 IoC 的思想可以解决组件之间相互依赖关系并对组件进行配置。Spring中BeanFactory就是典型的IoC容器,Spring IoC 容器注入依赖资源主要有设值注入和构造注入两种方式。Hibernate 框架ORM对象关系映射(Object Relational Mapping,简称 ORM)是一种为了解决面向对象与关系数据库存在的互不匹配的矛盾出现的技术,通过这种技术,我们可用面向对象的方式操纵持久化对象 (Persistence Object )从而访问关系型数据库。Hibernate
18、 是目前比较流行的开源 ORM 框架,主要通过映射类(*。java)、映射文件(*。hbm。xml)以及数据库配置文件(hibernate。properties 或 hibernate。cfg。xml)完成ORM 功能。通过 O/R 映射,可以将一个二维的数据表(table)和实体的 Bean 进行关联。基本的映射方式如表 2.1 所示:Hibernate 的框架结构Hibernate 对 JDBC 的类库进行了的封装,适合数据量较小的情况。Hibernate的框架结构可以用图 2.6 所示:1 SessionFactory: SessionFactory 是 Hibernate 的关键对象,
19、它保存了数据库对应的映射关系并负责建造 Session 对象。2 Session:Session 是 Hibernate 进行持久化的基础对象,提供了增加、删除、修改、查找(CRUD)等方法,一个 Session 可包含多个事务对象。3 持久化对象(Persistant Object):持久化对象 PO 是与 Hibernate Session 关联的 JavaBeans/POJO。持久化对象可认为是数据库中的表映射的 JAVA 对象,在程序中对持久化对象 PO 进行的相关操作将自动转换为对持久层的修改。4 瞬态对象(Transient object: TO):指没有与 Session 关联的
20、对象。它不会被持久化,也不会赋予持久化标志。5 事务:事务代表一次原子操作,是 Hibernate 持久层访问的重要方面。Hibernate 事务是对底层具体的 JDBC、JTA 的抽象。所有的持久化操作都应该在事务管理下进行。6 连接提供者:连接提供者通常由 DataSource 充当,用于生成 JDBC 连接。7 事务工厂:事务工厂主要是对底层的事务进行封装并进行抽象。Hibernate 核心 APIHibernate 提供了大量的接口供开发者进行数据库访问、相关配置、进行映射。图 2.7 显示了 Hibernate 核心 API 的内部关系。Hibernate 的运行过程如下:1.Hib
21、ernate 的 Configuration 类主要职责是管理 Hibernate 的配置信息。这新信息包括数据库 URL、用户名、密码、JDBC 驱动和方言。2.应用程序先调用 Configuration 类,该类读取 hibernate。cfg。xml 或 hibernate。properties 的信息;3.调用 Configuration 对象的方法生成一个 SessionFactory对象;4.然后从 SessionFactory对象的 openSession()方法生成一个 Session 对象;5.可通过 Session 对象的方法对 PO 进行操作;6.可通过 Session
22、对象的 createQuery 方法生成一个 Query 对象,然后利用Query对象执行 HQL(Hibernate Query Language)检索;7.在查询的情况下,可通过 Session 对象生成一个 Criteria 对象,然后利用Criteria 对象执行 QBC(Query By Criteria)检索;8.可用 Session 对象 beginTransaction()方法生成 Transaction 对象开始一个新的事务。若无异常,Transaction 对象将调用 commit()方法向底层数据库提交事务。Java虚拟机体系结构简介Java包括四个相互关联的技术:Jav
23、a语言、JavaAPI、class文件和Java虚拟机,其中Java技术的核心是Java虚拟机,所有的Java程序都在其上运行。Java虚拟机是一个想象中的机器,在实际的计算机上可以用不同的方式(软件或硬件)加以实现),Java虚拟机屏蔽了与具体操作系统平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机有自己想象中的硬件,如处理器、堆栈、PC寄存器等,还具有相应的指令系统。Sun公司定义了Java虚拟机规范,只要根据Java虚拟机规格描述,将解释器移植到特定的计算机上,就能保证经过编译后的Java代码能够
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- J2EE 相关 技术 介绍
链接地址:https://www.31ppt.com/p-2761569.html