Java EE轻量级解决方案:S2SH
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1 Java EE概述

Java EE经过多年发展,已经成为一个稳定、开源、安全的企业级开发平台。在传统的Java EE应用中,EJB(Enterprise Java Bean,企业级JavaBean)是核心,但在轻量级Java EE应用中,EJB不再是必需的,目前流行的轻量级Java EE应用框架有Struts2、Spring和Hibernate等。

1.1.1 Java EE应用分层模型

Java EE应用大致可分以为如下几层。

数据持久层:该层由一系列负责操纵POJO(Plain Old Java Object,普通的、传统的Java对象)的类组成,这些类负责把数据进行持久化,一般是把数据保存到数据库中。

数据访问层:该层由一系列的DAO(Data Access Object)组件组成,实现对数据库的增、删、改、查等细粒度的操作。

业务逻辑层:该层由一系列的业务逻辑对象组成,实现系统所需要的业务逻辑方法。控制层:此层由一系列控制器组成,用于拦截用户请求并调用业务逻辑对象的业务方法来处理请求,根据处理结果转发到不同的表示层。

表示层:此层由一系列的视图组件(例如JSP页面)组成,负责收集用户请求并显示处理结果。

Java EE应用分层模型如图1-1所示。

图1-1 Java EE应用分层模型

Java EE各层组件之间以松散的方式耦合在一起,而非硬编码的方式,这种方式让应用具有更好的扩展性。如图1-2所示显示了Java EE应用的架构图,从上到下,上层组件的实现依赖于下层组件的功能;从下到上,下层组件支持上层组件的功能实现。

图1-2 Java EE分层框架图

1.1.2 Model1与Model2

Java动态Web编程技术经历了Model1和Model2时代。Model1就是整个Web应用几乎全部由JSP页面组成,JSP页面接收并处理客户端请求,用少量的JavaBean来处理数据库的连接、访问等操作。如图1-3所示显示了Model1模式流程。

图1-3 Model1模式流程

Model1模式的实现比较简单,适用于快速开发小型规模的项目,但此种模式具有局限性:JSP页面身兼表示层和控制层两种角色,将控制逻辑和显示数据的代码混杂在一起,导致代码的可重用性非常低,不利于提高应用的可扩展性和可维护性。

Model2是基于MVC架构的设计模式,在此模式中,Servlet作为前端控制器,负责接收客户端发送的请求,Servlet调用JavaBean完成实际的业务逻辑处理,处理结果显示到相应的JSP页面。如图1-4所示显示了Model2的模式流程。

图1-4 Model2模型流程

1.1.3 MVC思想及其优势

MVC是一种架构模式,目的是将模型(业务逻辑)和视图(表示层)分离,使模型和视图可以独立修改,互不影响。大多数软件在设计架构时都采用此种模式。使用MVC模式有很多好处,当一个通过浏览器浏览的系统想要开发手机版本时,只需要重新开发视图,模型部分的业务逻辑可以重用。许多软件需要同时推出B/S和C/S版本,采用MVC模式,模型部分可以完全重用,只需要开发不同的视图即可。

MVC思想将一个应用分成三个基本部分:M(Model,模型)、V(View,视图)和C(Controller,控制器)。其中M表示处理业务逻辑的部分,V表示显示数据和获取用户输入的部分,C类似“中介”,保证M和V不会直接交互。如图1-5所示为MVC三部分间的关系。

图1-5 MVC结构图

概括起来,MVC具有如下特点:

数据的获取与显示分离;

控制器将不同的模型和视图组合在一起;

应用分为三部分:模型、视图和控制器,三部分之间松耦合并协同工作,从而提高应用的可扩展性和可维护性;

各层负责应用的不同功能,各司其职,每一层的组件具有相同的特征,便于通过工程化和工具化产生程序代码。