您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 其它办公文档 > J2EE相关技术介绍
J2EE相关技术介绍J2EE技术介绍J2EE概述为了解决企业在软件开发中出现的问题,SUN公司提出的以Java2平台为核心一种框架方案J2EE。它的出现精简了企业软件开发、部署过程,为企业建造高质量的应用系统提供了好的支撑,解决了传统两层模式(Client/Server)下客户端庞大的弊端。J2EE平台由一整套服务(Services)、应用程序接口(APIs)和协议构成,它对开发基于Web的多层应用系统提供了强大的支持,本质上是一个分布式的服务器应用程序设计环境。2005年6月,J2EE正式更名为JavaEE。J2EE的四层模型J2EE采用多层的分布式模型,J2EE应用程序既可以是三层结构,也可以是四层结构。典型的基于B/S的J2EEWeb应用四层结构包括客户层、控制层、业务层和持久层,分层图如图2.1所示:1客户层客户层又称为用户层。简单来理解就它主要是与客户双向互动的,既接收来客户的命令或请求又把来自系统的执行结果展示给用户。J2EE客户端有许多,可以是基于Web或者不是基于Web。通常用户层采用Web客户端,也就是瘦客户端,显示由JSP或Servlet产生的Web页面。客户层一般不实现如数据库操作(sql)、完成复杂的业务逻辑这样的功能。Web客户端基于浏览器形式,维护、使用、升级方便,不需要单独再次安装客户端。2控制层控制层又称Web层。它的主要作用是接收来自客户端的请求(Request),并对客户的请求产生相应的响应(Response)。J2EE平台中,控制层是由Web容器内的组件来实现,可以解决系统异构性问题,实现系统的通用性、可伸缩性、易维护性。3业务层业务层或EJB层主要是满足某些领域(教育业和金融业)特定业务需要的。通常情况下,业务层提供业务服务组件供应用程序使用。业务组件通常被实现EJB(EnterpriseJavaBeans)组件,并由EJB容器负责管理和执行。4持久层持久层或DAO(DataAccessObject,数据访问对象)层,此层由许多的DAO组件构成。DAO组件实现了对数据库记录的创建、查找、更新和删除(CRUD)等原子操作。持久层可以采用不同的访问技术,对应不同的访问技术,DAO组件的实现会完全不同。通常情况下,为了设计更好的软件,保证系统具有良好的去耦,我们为每个DAO组件都提供接口,方便业务逻辑组件的使用。MVC设计模式MVC工作原理MVC是20世纪80年代出现并使用的一种软件设计模式,即模型、视图、控制器。它将程序的输入、输出和处理环节分开,即分成相对独立而又能相互协同工作的三个部分,三个部分别担负不同的任务,有效的降低软件模块之间的耦合,提供了良好的可扩展性。MVC模式类似于设计模式中的观察者模式,它的处理过程如图2.2所示,它是所有面向对象的程序设计语言都应该遵守MVC的法则。1模型(Model)模型是应用程序的主体,表示业务逻辑或业务数据,接受来自视图的请求数据,并向视图返回最终的处理结果。与视图和控制器相比较,模型有最多的处理任务。模型与数据格式关系不大,一个模型能够为多个视图提供数据或者说多个视图能够共享一个模型。模型的出现极大的提高了应用的可重用性。业务模型的设计是MVC的重要问题。2视图(View)就视图而言,它是用户能够与其交互的界面。视图向用户呈现相关数据,并能接收来自用户输入的数据,但是它并不做任何实质性的业务处理。视图虽然能够向模型查询业务状态,但它自身并不能改变模型。视图能够接受模型发出的数据更新事件,并对用户界面进行同步更新。3控制器(Controller)控制器是表现层和业务层的模式,主要完成与客户端的交互、控制并管理每个请求和处理,它的本质就是一个分发器,它仅仅把用户的请求传递给模型,告诉模型做什么,并选择符合要求的视图展现给用户,它自身并不对数据做任何处理。Struts2框架Struts2框架概述通常来讲,所谓的框架就是一种结构化的软件。在框架的帮助下,我们很容易将某些领域的任务和一些具体问题进行流程上的抽象,借助框架提供的平台,我们可以更快捷地创建满足自己工作需要的Web应用程序。Struts2是实现了MVC模式的Web框架。它运行起来稳定,设计理念先进,性能优秀。Struts2采用拦截器的机制来处理用户的请求,实现权限拦截,使得业务逻辑控制器能够与ServletAPI完全脱离开,弥补了Struts1代中JSP/Servlet耦合非常紧密,难于测试等问题。Struts2的工作原理Struts2的工作原理如图2.3所示。它接收来自客户端的请求到作出响应主要通过以下流程来完成:1请求HttpServletRequest通过客户端的浏览器发出(请求是。action或JSP);2这个HttpServletRequest请求经过许多过滤器(比如SiteMesh);3接着Struts2的核心控制器FilterDispatcher会被调用。调用后Struts2的核心控制器FilterDispatcher会主动询问Struts2的Action映射器ActionMapper来决定是否针对当前的HttpServletRequest请求调用相应的动作Action;4如果Struts2的动作Action映射器ActionMapper决定了当前的请求需要调用某个Action,那么Struts2的核心控制器FilterDispatcher就会把当前请求的处理权利交给动作Action的代理ActionProxy;5Action的代理ActionProxy会通过Struts2的配置管理器(ConfigurationManager)查找struts。xml,找寻当前请求要求使用的Action类;6接着,Action的代理ActionProxy会构建一个Action的调用者ActionInvocation的实例;7ActionInvocation对象通过“名字”来调用Action。在调用Action的过程中有要关联相关拦截器(Intercepter)的调用;8当Action执行完了后,Action的调用者ActionInvocation会根据Struts2的struts。xml文件配置信息找到对应的返回结果。Struts2实现MVC的原理Struts2是MVC设计模式的具体的实现,我们很容易根据自己需要快速搭建Struts2的开发环境。在Struts2中,动作(action)、结果(result)、过滤分配器(FilterDispatcher)是对MVC模式的具体实现,如图2.4所示:1控制器(FilterDispatcher)在Struts2中,控制器是由FilterDispatcher来实现的。控制器FilterDispatcher位于MVC的最前端,它是在客户请求过程中第一个被调用的组件。控制器的工作原理是将客户的请求映射到具体的动作,并决定由哪个动作(Action)来完成客户的请求。2模型(动作)模型由Struts2的动作组件来实现。Struts2的动作组件有两个作用:一是一个动作将业务逻辑调用封装到一个单独的工作单元中,二是动作是一个传输数据的场所。控制器在收到请求之后,必须通过映射来决定哪个动作处理这个请求,一旦找到了适当的动作,控制器会调用这个动作并将控制权交给它,完成工作后,就向提交请求的用户返回视图。3视图(结果)视图是MVC呈现给用户的组件,它的主要作用是将WEB应用程序的状态转变为一种可视化的表示,这种表示使得用户能与它充分交互。动作会具体负责选择哪个结果来呈现响应,它可以从任意数量的结果中选择。Spring框架Spring框架概述Spring框架由RodJohnson开发,是分层的JavaSE/EE应用一站式的轻量级开源框架。它以IoC(InverseofControl:反转控制)和AOP(AspectOrientedProgramming:面向切面编程)为内核,提供了展现层SpringMVC和持久层SpringJdbcTemplate、ORM模块以及业务层SpringBean管理、事务管理等众多的企业级技术。Spring出现就是为了解决JavaEE程序开发人员在实际开发中遇到的问题。与EJB繁重、复杂的解决方案相比较,它属于轻量级的解决方案。Spring框架结构Spring3框架由20多个模块组成,这些模块为企业的开发提供了“一站式”选择,如图2.5所示:1核心容器(CoreContainer):是整个Spring3框架主要部分,完成了整个结构的最基本的功能。核心容器通过配置文件的方式描述类和类之间的依赖关系。BeanFactory(Bean工厂)是CoreContainer的主要部件组件。IoC容器负责依赖类之间的建立,连接、获取、管理等工作。SpringContext是一个配置文件,它不但提供了对国际化、生命周期事件和验证的支持还提供了如Email、JNDI访问、EJB集成、国际化校验等。ExpressionLanguage完成了操作和查询对象图的功能。2AOP模块:Spring的AOP模块提供了满足AOPAlliance规范的实现,确保它与其它AOP框架的互通,同时它还整合了AspectJ框架。3数据访问和集成:Spring对中间层数据的访问提供了强大的支持,使用它可以极大简化程序的数据访问。它主要包括JDBC模块、ORM模块、OXM模块、Transaction模块等。(1)JDBC模块主要提供了对JDBC的抽象。(2)ORM(Object/RelationMapping)提供了常用的“O/R”映射APIs的集成。(3)OXM(O/XMapper)模块完成POJO和XML之间的变换。(4)Transaction模块能够给Spring管理的对象提供良好的事务管理。4Web及远程操作:包括Web模块、Web-Struts模块、Web-Portlet等模块。(1)Web模块:该模块提供了基于Web的功能和工具。它提供了如模板引擎、文件上传、远程过程访问等功能。(2)Web-Servlet模块:该模块提供了企业应用的MVC实现。(3)Web-Struts模块:该模块为Struts和Spring的整合提供了较好的支持。(4)Web-Portlet模块:该模块为MVC在Portlet环境下提供了支持。5测试部分(Test):可以用回归测试框架JUnit对Spring组件进行测试。AOP面向切面编程AOP是对OOP思想的延伸,它采用横向抽取机制取代了传统纵向继承体系。主要是将日志记录、性能统计、安全控制、事务处理、异常处理等代码从业务逻辑代码中划分出来,使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性。IoC控制反转(IoC)又称依赖注入(DepedencyInjection,DI)指程序运行过程中,如果需要另一个对象协作时,无需在代码中创建被调用者而是依赖于外部容器的注入。IoC是一种设计模式,程序设计人员利用IoC的思想可以解决组件之间相互依赖关系并对组件进行配置。Spring中BeanFactory就是典型的IoC容器,SpringIoC容器注入依赖资源主要有设值注入和构造注入两种方式。Hibernate框架ORM对象关系映射(ObjectRelationalMapping,简称ORM)是一种为了解决面向对象与关系数据库存在的互不匹配的矛盾出现的技术,通过这种技术,我们可用面向对象的方式操纵持久化对象(PersistenceObject)从而访问关系型数据库。Hibernate是目前比较流行的开源ORM框架,主要通过映射类(*。java)、映射文件(*。hbm。xml)以及数据库配置文件(hibernate。properties或hibernate。cfg。xml)完成ORM功能。通过O/R映射,可以将一个二维的数据表(table)和实体的Bean进行关联。基本的映射方式如表2.1所示:Hibernate的框架结构Hibernate对JDBC的类库进行了的封装,适合数据量较小的情况。Hibernate的框架结构可以用图2.6所示:1Sess
本文标题:J2EE相关技术介绍
链接地址:https://www.777doc.com/doc-4431432 .html