1.1 Java EE应用概述
Java EE是目前开发Web应用(特别是企业级Web应用)最流行的平台之一,其实Java Web应用的核心技术就是JSP、Servlet与JavaBean。但遗憾的是一直没有一套有效的开发规范来约束这些JSP程序员,导致不同程序员写出不同风格的JSP程序。项目的规模越大,这种弊端就越明显,项目的可维护性就越差,从而大大增加了项目管理的难度。这时,一个基于Web框架开发的Web应用的时代已经来临了。继Struts的成功推行之后,大批优秀的框架也紧随其后,进入了整个市场。程序员根据不同框架的组合,可以方便地开发出优秀的、利于维护和扩展的程序。本书将分别介绍目前流行的组合框架Struts 2、Hibernate 3和Spring 2,从基础到深入,让读者能够在没有任何这方面基础的前提下由浅入深地了解每一个框架,然后再介绍它们之间的整合应用,达到开发效果。
1.1.1 Struts 2框架
早期的Web应用全部是静态的HTML页面,用于将一些个人信息呈现给浏览者。随着开发技术的发展,有不少新技术问世。Model 1模式就是其中之一,所谓Model 1就是JSP大行其道的时代,整个Web应用几乎全部都是由JSP页面组成的。将控制逻辑和显示逻辑混合在一起,导致代码的重用性非常低,而且还不利于维护与扩展。开发人员看出这种开发模式不是长久之计,便提出了MVC的思想,MVC即Model(模型)、View(视图)、Controller(控制器)。视图层负责页面的显示工作,而控制层负责处理及跳转工作,模型层负责数据的存取,这样它们的耦合性就大大降低了,从而提高了应用的可扩展性及维护性。虽然如此,程序员还是有很多工作要做,而且代码的书写也没有一定的规范性,不同的程序员可以写出不同的代码,这种项目对于扩展及维护是非常不方便的。
图 1.10 Tomcat目录结构
MVC模式的提出虽然改变了程序的设计思路,但代码的规范性还是很差,而Struts框架则具有组件的模块化、灵活性和重用性的优点,同时也简化了基于MVC的Web应用程序的开发。从应用的角度来说,Struts有三大块,分别是Struts核心类、Struts配置文件及Struts标签库。
由此可见,Struts本身就实现了MVC模式,就Struts的发展来说,由于Struts 1框架的局限性,一个基于Struts 1及WebWork框架提炼出来的Strut 2框架已经逐步成为程序员们关注的焦点。Struts 2框架有着Struts 1的市场及WebWork的精湛技术,将越来越受欢迎。故本书将重点讲述Struts 2。
1.1.2 Hibernate框架
传统的Java应用都是采用JDBC来访问数据库,它是一种基于SQL的操作方式,但对目前的Java EE信息化系统而言,通常采用面向对象分析和面向对象设计的过程。系统从需求分析到系统设计都是按面向对象方式进行,但是到详细的数据访问设计阶段,又回到了传统的JDBC访问数据库的老路上来,这是非常令人沮丧的。
人们的智慧是无穷的,遇到问题总会想办法解决它,而不是与之妥协或绕道而行。Hibernate的问世解决了这个问题,Hibernate是一个面向Java环境的对象/关系映射工具,它用来把对象模型表示的对象映射到基于SQL的关系数据模型中去,这样就不用再为怎样用面向对象的方法进行数据的持久化而大伤脑筋了。
1.1.3 Spring框架
Spring框架是Rod Johnson开发的,2003年发布了Spring框架的第一个版本。Spring是一个从实际开发中抽取出来的框架,因此它完成了大量开发中的通用步骤,从而大大提高了企业应用的开发效率。
Spring为企业应用的开发提供了一个轻量级的解决方案。其中依赖注入、基于AOP的声明式事务管理、多种持久层的整合与优秀的Web MVC框架等最为人们关注。Spring可以贯穿程序的各个层之间,但它并不是想取代那些已有的框架,而是以高度的开放性和它们紧密的整合。这也是Spring被广泛应用的原因之一。
上面简单介绍了这三种框架,读者只需有个印象就可以了,后面会分别对这三个流行框架进行一一讲解。