Java Web应用开发技术与案例教程
上QQ阅读APP看书,第一时间看更新

1.1 Java Web应用开发技术简介

Java Web应用开发是基于JavaEE(Java Enterprise Edition)框架的,而JavaEE是建立在Java平台上的企业级应用的解决方案。JavaEE框架提供的Web开发技术主要支持两类软件的开发和应用,一类是做高级信息系统框架的Web应用服务器(Web Application Server),另一类是在Web应用服务器上运行的Web应用(Web Application)。本书所介绍的Java Web应用开发就是这里的第2类,即在Web应用服务器上运行的Web应用开发。

JavaEE框架是由J2EE更名的。Sun公司在1998年发布JDK1.2版本的时候,开始使用名称Java 2 Platform,即Java 2平台,修改后的JDK称为Java 2 Platform Software Developing Kit,即J2SDK,并分为标准版(Standard Edition,J2SE)、企业版(Enterprise Edition,J2EE)和微型版(Micro Edition,J2ME)。2006年5月,Sun公司推出JavaSE5,此时,Java的各种版本又更名,J2EE更名为JavaEE,J2SE更名为JavaSE,J2ME更名为JavaME。

1.1.1 Java Web应用

“Java Web应用”一般定义为:一个由HTML/XML文档、Java Servlet、JSP(Java Server Pages)、JSTL(Java Server Pages Standard Tag Library)、类以及其他任何种类文件可以捆绑起来,并在来自多个厂商的多个Web容器上运行的Web资源构成的集合。可以将Web应用从一个服务器移到另外一个服务器,或者移动到同一服务器的不同位置,而不需要对组成Web应用的任何种类的文件作任何改动。而Java Web应用开发是基于JavaEE框架的,需要在该框架的容器和组件支持下完成。

1.容器

“容器(Container)”指的是提供特定程序组件服务的标准化运行环境,通过这些组件可以在JavaEE平台上得到所期望的服务。容器的作用是为组件提供与部署、执行、生命周期管理、安全和其他组件需求相关的服务。此外,不同类型的容器明确地为它们管理的各种类型的组件提供附加服务。例如,Web容器都提供响应客户请求、执行请求时间的处理,以及将结果返回到客户端的运行时环境支持;Web容器还负责管理某些基本服务,像诸如组件的生命周期、数据库连接资源的共享、数据持久性等。

一般来说,软件开发人员只要开发出满足JavaEE应用需要的组件并能安装在容器内就可以了。程序组件的安装过程包括设置各个组件在JavaEE应用服务器中的参数,以及设置JavaEE应用服务器本身,这些设置决定了在底层由JavaEE服务器提供的多种服务(例如安全、交易管理、JNDI查寻和远程方法调用等)。

JavaEE平台对每一种主要的组件类型都定义了相应的容器类型。JavaEE平台由Applet容器、应用客户端容器(Application Client Container)、Web容器(Servlet、JSP容器)和EJB容器(Enterprise JavaBeans Container)4种类型的程序容器组成。

(1)EJB容器——为Enterprise JavaBean组件提供运行时环境,它对应于业务层和数据访问层,主要负责数据处理以及和数据库或其他Java程序的通信。

(2)Web容器——管理JSP和Servlet等Web组件的运行,主要负责Web应用和浏览器的通信,它对应于表示层。Web容器是本书所使用的容器。

(3)应用客户端容器——负责Web应用在客户端组件的运行,对应于用户界面层。

(4)Applet容器——负责在Web浏览器和Java插件(Java Plug-in)上运行Java Applet程序,对应于用户界面层。

每种容器内都使用相关的Java Web编程技术。这些技术包括应用组件技术(如Servlet、JSP、EJB等技术构成了应用的主体)、应用服务技术(如JDBC、JNDI等服务保证组件具有稳定的运行时环境)、通信技术(如RMI、JavaMail等技术在平台底层实现机器和应用程序之间的信息传递)等3类。

2.组件

为了降低软件开发成本,适应企业快速发展的需求,JavaEE平台提供了基于组件的方式设计、开发、组装和部署企业应用系统。按照这种方式开发出来的JavaEE组件,不依赖于某个特定厂商提供的产品或者API,不管是开发商还是最终用户,都有最大的自由去选择那些能更好地满足业务或技术需求的产品或组件。

组件(Component)是指在应用程序中能发挥特定功能的软件单位,实质上是几种特定的Java程序,只不过这些程序被规定了固定的格式和编写方法,它们的功能和使用方式在一定程度上被标准化了。例如,在Java 2标准版中提供的JavaBean组件,就是按照特定格式编写的Java类文件,JavaBean可以通过get/set方法访问对象中的属性数据。

JavaEE平台主要提供了以下3类JavaEE组件:

(1)客户端组件——客户端的Applet和客户端应用程序。

(2)Web组件——Web容器内的JSP、Servlet、Web过滤器、Web事件监听器等。

(3)EJB组件——EJB容器内的EJB组件。

3.组件与容器的关系

组件是组装到JavaEE平台中独立的软件功能单元,每一个JavaEE组件在容器中执行,容器为组件提供标准服务和API,容器充当通向底层JavaEE平台的接口。“连接器(Connector)”在概念上驻留在JavaEE平台的下方,连接器提供了可移植服务的API,JavaEE应用使用这些API来插入到现有的企业应用中。连接器也称为资源适配器,它为JavaEE体系结构增加了另一种灵活性。

4.Java Web应用的定义

基于“组件”和“容器”的视角,在JavaEE平台下,Web应用是满足下列要求的软件体系。

(1)Java Web应用由软件组件构成,这些组件根据其各自所属的层进行分类。

(2)组成Java Web应用的各种组件在对应容器中执行,容器为组件提供底层JavaEE API的统一视图。

(3)容器管理组件并为组件提供多种系统级服务。例如,生命周期管理、事务管理、数据缓存、异常处理实例池、线程以及安全性。Java Web应用以分布式组件集合的形式存在,而各分布式软件组件在其各自的容器中运行。

(4)Java Web应用客户为应用提供用户界面,客户端向最终用户提供了一个窗口,最终用户可以通过该窗口使用Java Web应用提供的各种服务。

1.1.2 Java Web应用开发技术

Java Web应用程序供用户通过浏览器(如IE)发送请求,程序通过执行产生Web页面,并将页面传递给客户机器上的浏览器,将得到的Web页面呈现给用户。

一个完整的Java Web应用程序通常由多种组件构成的,一般由表示层组件、控制层组件、业务逻辑层组件及其数据访问层(或持久层)组件组成。

●表示层组件一般由HTML和JSP页面组成。

●控制层组件一般由Servlet组成。

●业务逻辑层一般是JavaBean或EJB。

●持久层组件一般是JDBC、Hibernate。

●此外,Java Web应用的各个组件需要在XML格式的配置文件中进行声明,然后打

包,部署到Java Web服务器(如Tomcat)中运行。

下面简单介绍HTML、CSS、JavaScript JSP、Servlet、JavaBean、JDBC、XML、Tomcat技术以及Struts2、Hibernate等框架技术。对于它们的具体内容,将在以后各章中将详细介绍。

1.HTML

HTML(Hypertext Markup Language)即超文本链接标示语言,使用它可以设计静态网页。

2.CSS

CSS(Cascading Style Sheets)即层叠样式表,简称“样式表”,是一种美化网页的技术,主要完成字体、颜色、布局等方面的各种设置。

在HTML基础上,使用CSS不仅能够统一、高效地组织页面上的元素,还可以使页面具有多样的外观。

3.JavaScript

JavaScript是一种简单的脚本语言,在浏览器中直接运行,无须服务器端的支持。这种脚本语言可以直接嵌套在HTML代码中,它响应一系列的事件。当一个JavaScript函数响应的动作发生时,浏览器就会执行对应的JavaScript代码,从而在浏览器端实现与客户的交互。

JavaScript增加了HTML网页的互动性,它可以在浏览器端实现一系列动态的功能,仅仅依靠浏览器就可以完成一些与用户的互动。

4.JSP

JSP页面由HTML代码和嵌入其中的Java代码组成。在页面被客户端请求后,Web服务器对Java代码进行处理,然后将生成的HTML页面返回客户端的浏览器。JSP页面一般包含JSP指令、JSP脚本元素、JSP标准动作以及JSP内置对象。

5.Servlet

Servlet(Java服务器小程序)是用Java语言编写的服务器端程序,是由服务器端调用和执行的。它可以处理客户端传来的HTTP请求,并返回一个响应。它是按照Servlet自身规范设计的一个Java类,具有可移植性、功能强大、安全、继承、模块化和可扩展性好等特点。

6.JavaBean

JavaBean用Java语言编写并遵循一定规范的类,该类的一个实例称为JavaBean,简称Bean。JavaBean可以被JSP引用,也可以被Servlet引用。

7.JDBC

JDBC(Java Database Connectivity,数据库访问接口)是Java Web应用程序开发中最主要的API之一,任何应用程序总是需要访问数据库。它使数据库开发人员能够用标准的Java API编写数据库应用程序。JDBC API主要用来连接数据库和直接调用SQL命令执行各种SQL语句。

8.XML

XML(eXtensible Markup Language,可扩展的标记语言),在Java Web应用程序中,XML主要用于描述配置信息。Servlet、Struts2以及Hibernate框架都需要配置文件,它们的配置文件都是XML格式的。

9.Struts2

Struts2框架,提供了一种基于MVC体系结构的Web程序的开发方法,具有组件模块化、灵活性和重用性等优点,使基于MVC模式的程序结构更加清晰,同时也简化了Web应用程序的开发,是目前最常用的开发框架。

10.Hibernate

Hibernate是一个面向Java环境的对象/关系数据库映射工具,即ORM(Object-Relation Mapping对象——关系映射)工具。它对JDBC API进行了封装,负责Java对象的持久化,在分层的软件架构中位于下持久化层,封装了所有数据访问细节,使业务逻辑层可以专注于实现业务逻辑。

另外,还有Ajax、EL、JSTL、过滤器、监听器等技术。