虚拟主机域名注册-常见问题java技术 → J2EE


[原创]J2EE开发模型分析
作者:

J2EE架构的推出带来了很大的进步,先前推出的PHP、ASP等嵌入式脚本语言只限于 一种模板脚本语言而已,真正的架构还是从J2EE开始起的。

(-)一层架构模式

最简单的方法就是直接使用JSP文件进行所有功能的开发。用户的请求发送给JSP文 件,响应也有JSP文件完成,如图1所示。

62-1

这种模式的好处是:对于程序学习者来说,逻辑比较简单,容易理解,开发速度快, 通常用于简单的Web网站开发。它的缺点是:当功能复杂时,代码的可读性差。因此这种 方法没有被业界给出什么明确的定义。

在本书的第4章将开发基于JSP的一层架构原型demo(JSP).Zip。

 

(二)两层架构模式Model 1

为了解决一层架构的代码可读性差的问题,我们将大量的Java代码抽取出来放在 JavaBean组件中,由JSP页面调用JavaBean组件完成业务操作,而用户的请求和响应同样 还是由JSP文件完成。

如图2所示,是两层模式的结构图,术语称为Modell模式。

62-2

Model 1是一个以JSP文件为中心的模式,在这种模式中JSP页面不仅负责表现逻辑, 也负责控制逻辑,其业务逻辑由JavaBean来实现。专业书籍上称之为逻辑耦合。在页面中, 这种处理方式,对一些规模很小的项目,如一个简单的留言簿,也没什么太大的坏处。实 际上,人们开始接触一些对自己来说是新的事物的时候,比如用JSP访问数据库,往往喜 欢别人能提供一个包含这一切的单个JSP页面,因为这样在一个页面上就可以把握全局, 便于理解。

但是,用Model 1模式开发大型项目时,程序流向由一些互相能够感知的页面决定, 当页面很多时要清楚地把握其流向将是很复杂的事情。当修改一页时可能会影响相关的很 多页面,大有牵一发而动全身的感觉,使得程序的修改与维护变得异常困难;还有一个问 题就是,程序逻辑开发与页面设计纠缠在一起,既不便于分工合作,也不利于代码的重用, 这样的程序其健壮性和可伸缩性都不好。

在本书的第5章将开发基于JSP+JavaBean的两层架构原型demo(JSP+JavaBean).zip。

(三)三层架构模式Model 2

 

Model 2模式引入了 “控制器”这个概念,控制器一般由Servlet来担任,客户端的请 求不再直接送给一个处理业务逻辑的JSP页面,而是送给这个控制器,再由控制器根据具

62-3

体的请求调用不同的事务逻辑,并将处理结果返回到合适的页面。因此,这个Servlet控制 器为应用程序提供了一个进行前后端处理的中枢。一方面为输入数据的验证、身份认证、 曰志及实现国际化编程提供了一个合适的切入点,另一方面也提供了将业务逻辑从JSP文 件剥离的可能。业务逻辑从JSP页面分离后,JSP文件蜕变成一个单纯完成显示任务的显 示层,这就是常说的Viewer。而独立出来的事务逻辑变成人们常说的Model,再加上控制 器Contmller本身,就构成了 MVC模式。实践证明,MVC模式为大型程序的开发及维护 提供了巨大的便利。

MVC设计模式很清楚地划定了程序员与设计者的角色界限。换句话说,从商业逻辑上 拆解了数据。这种模式是让设计者集中于设计应用程序的显示部分,而开发者则集中于开 发驱动应用程序功能所需的组件。

在本书的第6章将开发基于〗SP+JavaBean+Servlet的三层架构原型demo (JSP+JavaBean+Servlet).zip0 并且,第 3 部分、第 5 部分将分别讲解Struts、Spring 作为MVC 控制器的三层架构原型demo(Struts).zip和demo(Spring).zip。

(四)多层架构模式

J2EE三层结构的划分当然是经典的,但是在实际项目中,往往会对三层体系结构做一 些扩展来满足项目的需要。一个最常用的扩展就是将三层体系扩展为四层体系,即表示层 (Viewer)、控制层(Controller)、服务层(DAO)和数据持久层(Data Persistence)。它其 实是将三层架构中的模型层进行了拆分,服务层用于操作持久层进行数据操作,数据持久 层表示数据库的持久内存存储对象,如图4所示。

62-4

云主机

虚拟主机

由于Java开源项目的发展,J2EE的多层架构中的每一层都有许多的开源软件可以使 用。例如:

  • ft制层:Struts、Spring、Webwork、JSF、Tapestry、Turbine 等;

  • 显不层:Struts Tiles、JSTL、Velocity、FreeMarker、XSLT 等;

  • 数据持久层:Hibernate、Ibatis 等。

将上面的各层技术随意组合便可以构建一个J2EE的多层开发架构。




来源:
阅读:3110
日期:2014-06-02

【 双击滚屏 】 【 推荐朋友 】 【 收藏 】 【 打印 】 【 关闭 】 【 字体: 】 
上一篇:[原创]大型门户网站与小型企业网站的区别
下一篇:[原创]加入 jQuery吧!
  >> 相关文章