Java Web应用开发项目教程
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2 Web应用

1.2.1 Web应用基础

从软件工程学来看,Web应用是在Internet或Intranet通过Web浏览器访问的应用,也可以说是由Web浏览器支持的语言(如HTML,JavaScript,Java等)开发的应用程序,这些程序运行在Web服务器上,可供浏览器访问。

Web应用程序一般是B/S模式,是典型的浏览器/服务器结构的产物。Web应用程序首先是“应用程序”,和用标准的程序语言如C、C++等编写出来的程序没有本质上的不同。然而Web应用程序又有自己独特的地方,就是它是基于Web的,而不是采用传统方法运行的。

对于Web应用,我们需要使用Web浏览器,通过网络访问在远程服务器上运行的程序。通过浏览器可以访问新浪网、淘宝网、谷歌、微软及Sun公司的网站,事实上这些网站中运行的程序就是一个Web应用程序。在上网时对这些网站的访问,也就由这些应用来实现的,上网的过程如下:

打开浏览器,输入网址或单击链接,网站经过一段时间的处理将网页内容显示在浏览器上。然后可以在网页上继续进行其他操作,可能在网页上单击超链接访问时,等待浏览器中内容的更新,或者在网页上输入一些信息,然后单击网页上的按钮、图片等元素,等待浏览器中内容的再次更新。

不管是在地址栏输入地址,还是单击超链接或者单击按钮,都需要等待浏览器中内容的更新。等待浏览器内容更新的过程,实际上是浏览器访问Web应用的过程。这个过程是使用统一资源标识符(Uniform Resource Locator,URL)请求Web应用中的某个文件,请求及响应的工作过程如下:

(1)浏览器根据输入的URL找到相应的服务器,不同的网站会部署在不同的服务器上。这个服务器可以接收浏览器发送的请求,通常称为Web服务器。

(2)Web服务器将请求交给应用服务器,应用服务器上运行着由若干不同的文件构成的Web应用。

(3)应用服务器接收到请求之后分析这个请求,判断该请求的文件是否需要处理,若需要处理,将文件直接返回给浏览器,否则,启动相应的处理程序加载并执行这个文件。执行的结果通常是HTML文档。

(4)应用服务器执行完相应的文件之后,把执行的结果返回给Web服务器,Web服务器再把这个结果返回给浏览器。

(5)浏览器解析HTML文档,然后把解析后的网页显示给用户。

提示Web服务器、应用服务器是Web应用中服务器端程序运行的容器,一般使用目前成熟的产品,不需要Web应用程序员开发。

至此,可以简单地说,Web应用就是一个网站,网站由大量的页面组成,每个页面通常是由一个或者多个文件组成。组成网站的大量文件之间通过特定的方式进行组织,并且由一个系统来管理这些文件。管理这些文件的系统通常称为应用服务器,它的主要作用就是管理网站的文件。网站的文件通常由以下几种类型。

(1)网页文件:主要是提供用户访问的页面,包括静态的和动态的网页,这是网站中最重要的部分,如.html、.jsp等;

(2)网页的格式文件:可以控制网页信息显示的格式、样式,如.css等;

(3)资源文件:网页中用到的文字、图形、声音、动画、资料库,以及各式各样的软件;

(4)配置文件:用于声明网页的相关信息、网页之间的关系,以及对所在运行环境的要求等;

(5)处理文件:用于对用户的请求进行处理,如供网页调用、读/写文件或访问数据库等。

1.2.2 静态网页

静态网页是相对于动态网页而言,是指没有后台数据库、不含程序和不可交互的网页。网页的内容是固定的,不会根据浏览者的不同需求而改变。静态网页更新起来相对比较麻烦,适用于一般更新较少的展示型网站。早期的网站一般都是由静态网页制作的,通常以.htm、.html、.shtml、.xml等为文件扩展名。静态网页的网址形式通常为:http:/www.163.com/index.html。在HTML格式的网页上,也可以出现各种“动态效果”,如GIF格式的动画、Flash、滚动字符等,但这些“动态效果”只是视觉上的,与下面将要介绍的动态网页是不同的概念。

静态网页的特点简要归纳如下:

(1)静态网页的每个网页都有一个固定的URL,且网页URL以.htm、.html、.shtml等常见形式为后缀;

(2)网页内容一经发布到网站服务器上,无论是否有用户访问,每个静态网页的内容都是保存在网站服务器上的,也就是说,静态网页是实实在在保存在服务器上的文件,每个网页都是一个独立的文件;

(3)静态网页的内容相对稳定,因此容易被搜索引擎检索;

(4)静态网页没有数据库的支持,在网站制作和维护方面工作量较大,因此当网站信息量很大时,完全依靠静态网页制作方式比较困难;

(5)静态网页的交互性较差,在功能方面有较大的限制。

静态网页的设计和开发相对要简单一些,但采用静态网页会导致很大的局限性,由于HTML页面构成的Web应用程序的内容是静止的,不会对用户的动作做出动态响应。

1.2.3 动态网页

动态网页是与静态网页相对应的,与网页上的各种动画、滚动字幕等视觉上的“动态效果”没有直接关系,动态网页也可以是纯文字内容的,也可以是包含各种动画的内容,这些只是网页具体内容的表现形式,无论网页是否具有动态效果,采用动态网站技术生成的网页都称为动态网页。

动态网页是指在接到用户访问要求后动态生成的页面,页面内容会随着访问时间和请求信息的不同而发生变化。动态网页是在服务器端运行的程序、网页、组件,属于动态性的,即使是访问同一个网页,也会随不同客户、不同时间,返回不同内容的网页。动态网页的URL的扩展名不是.htm、.html、.shtml、.xml等静态网页的常见形式,而是以.asp、.jsp、.php、.perl、.cgi等形式为扩展名。并且在动态网页的网址中有一个标志性的符号——“?”,如一个典型的动态网页URL形式:http://www.Webhome.com/ index.jsp?id=1。

动态网页有如下特点:

(1)动态网页以数据库技术为基础,网页内容是动态生成的,可以大大降低网站维护的工作量。

(2)采用动态网页技术的网站可以实现更多的功能,如用户注册、用户登录、在线信息管理、控制等。

(3)动态网页实际上并不是独立存在于服务器上的网页文件,只有当用户请求这个网页时服务器才返回一个完整的网页。

静态网页和动态网页各有特点,网站采用动态网页还是静态网页主要取决于网站的功能需求和网站内容的多少。如果网站功能比较简单,内容更新量不是很大,采用纯静态网页的方式会更简单,反之一般要采用动态网页技术来实现。静态网页是网站建设的基础,静态网页和动态网页之间也并不矛盾,为了网站适应搜索引擎检索的需要和加快页面的访问速度,即使采用动态网页技术,也可以将网页内容转化为静态网页发布。

动态网站也可以采用静动结合的原则,适合采用动态网页的地方采用动态网页,如果有必要使用静态网页,则可以考虑用静态网页的方法来实现。在同一个网站上,动态网页内容和静态网页内容同时存在也是很常见的。

1.2.4 Web应用运行环境

Web应用是运行在服务器上,客户端通过网络与服务器相连接,并使用浏览器访问Web应用。因而Web应用的运行需要涉及客户端环境、服务器端环境和网络环境。

1.客户端环境

Web应用的用户通常分布在不同的地方,要访问Web应用需要客户端安装相应的程序,Web应用的客户端程序通常称为浏览器。现在流行的浏览器包括微软的IE浏览器、Netscape的Navigator浏览器和Mozilla的FireFox浏览器等。

浏览器的主要功能如下:

(1)用户可以通过在浏览器的地址栏中输入地址向服务器发送请求。

(2)建立与服务器的连接,接收从服务器传递回来的信息。

(3)把用户在客户端输入的信息提交到服务器。

(4)解析并显示从服务器返回的内容。

2.服务器端环境

服务器端程序用于接收客户端发送的请求,根据请求选择服务器上的资源对用户响应,并管理服务器上的程序。通常包括两部分:一部分主要与客户端进行交互,接收用户请求信息并对用户响应,发送网页;另一部分是管理服务器上的Web应用。前者通常称为Web服务器,后者通常称为应用服务器。比较著名的Web服务器有微软的IIS服务器和Apache基金会的Apache服务器。对于使用不同语言编写的Web应用来说,应用服务器是不同的,同一种语言编写的多个Web应用可以使用同一个应用服务器。为了管理Web应用中的数据,大部分网站在服务器环境中还需要数据库服务器。

3.网络环境

Web应用必须有网络的支持,用户通过客户端浏览器访问,客户端和服务器之间必须有网络连接。

提示:在学习过程中如果只使用一台计算机来开发和运行Web应用,这台计算机既作为服务器又作为客户端来使用,这台机器在逻辑上分为两台计算机,这时可以不使用网络。

1.2.5 Web应用技术

Web浏览器现已成为深受大多数用户喜爱的用户界面。虽然与传统的GUI界面相比有一定的差距,但它提供了一种独立而又简单的方法来访问分布式资源,尤其是Internet资源。而且越来越多的客户端Web程序扩展技术变得更加成熟,出现了包括CSS、JavaScript、VBScript、动态HTML、Java Applet应用等技术在内的客户端Web程序设计技术。

1.HTTP协议

Internet的基本协议是TCP/IP协议,然而在TCP/IP模型最上层的是应用层(Application Layer),它包含所有高层的协议。高层协议有:文件传输协议FTP、电子邮件传输协议SMTP、域名服务DNS、网络新闻传输协议NNTP和HTTP协议等。HTTP协议是Web应用最基础的协议,对HTTP协议细节的理解是编写Web应用程序的开发人员所必须要掌握的。

HTTP协议(Hyper Text Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。这就是为什么在浏览器中看到的网页地址多以http://开头的原因。

在学习Web程序设计技术之前有必要理解HTTP操作的工作过程,一次HTTP操作称为一个请求和响应过程,大体可分为以下4步:

(1)客户机与服务器需要建立连接。只要在客户机上单击某个超级链接,HTTP的工作就开始了。

(2)建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息,包括请求修饰符、客户机信息和可能的内容。

(3)服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息,包括服务器信息、实体信息和可能的内容。

(4)客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,客户机与服务器断开连接。

其中,MIME(Multipurpose Internet Mail Extensions)多功能Internet邮件扩充服务,是一种多用途网际邮件扩充协议,在1992年最早应用于电子邮件系统,但后来也应用到浏览器。服务器会将它们发送的多媒体数据的类型告诉浏览器,而使用的方法就是说明该多媒体数据的MIME类型,即通过将MIME标识符放入传送的数据中来告诉浏览器文件类型,常用的MIME类型及所代表的媒体类型的文件扩展名如表1.1所示。

表1.1 MIME类型及所代表的媒体类型的文件扩展名

提示:访问一个网页构成了一次请求及相应的过程,但客户端每次访问某个网站时与服务器的交互可能涉及一个或多个请求和响应的过程。

2.动态HTML

动态HTML(DHTML)支持JavaScript和Java等多项技术,但其重要的特性是层叠样式表(Cascading Style Sheets,CSS)。动态HTML(DHTML)文档对象模型(Document Object Model,DOM)使网页制作者可以直接以可编程的方式访问Web文档上每个独立的部分,而不论被访问的是元素还是容器。这种访问方式包括了事件模型。事件模型使浏览器可对用户输入做出反应,通过执行脚本,无须从服务器下载一个新的页面就可以根据用户输入显示新的内容。动态HTML文档对象模型(DHTML DOM)以一种便捷的方式为广大普通网页制作者提供了丰富的网页交互性。

3.CSS

CSS是动态HTML技术的一个部分,可以和HTML结合使用。CSS简洁的语法可以容易地控制HTML标记,最大的特点是可以帮助页面开发人员将显示元素从内容(HTML)与格式分开处理(以.css为后缀存储成一个独立的文件)。CSS利用各种样式来支持颜色、字体规范、显示图层和页边空白这样的页面元素特征,辅助开发HTML网页。例如,统一页面的布局和页面元素控制就可以使用CSS,易于网页的维护和改版。

4.JavaScript

JavaScript是用于浏览器的第一种具有通用目的、动态的客户端脚本语言。Netscape于1995年首先提出了JavaScript,但当时将其称为LiveScript。后来Netscape迅速地将LiveScript改名为JavaScript。一个JavaScript程序其实是一个文档,一个文本文件。它是嵌入到HTML文档中的。所以,任何可以编写HTML文档的软件都可以用来开发JavaScript。常用的网页开发工具都能编辑JavaScript。

JavaScript就是适应动态网页制作的需要而诞生的一种新的编程语言,如今越来越广泛地使用于Internet网页制作上。JavaScript是一种脚本语言(Scripting Language),或者称为描述语言。在HTML基础上,使用JavaScript可以开发交互式Web网页。JavaScript的出现使得网页和用户之间实现了一种实时性的、动态的、交互性的关系,使网页包含更多活跃的元素和更加精彩的内容。运用JavaScript编写的程序需要能支持JavaScript语言的浏览器。Netscape公司Navigator 3.0以上版本的浏览器都能支持JavaScript程序,微软公司Internet Explorer 3.0以上版本的浏览器基本上支持JavaScript。另外,微软公司自己开发的JavaScript,称为JScript。JavaScript和JScript基本上是相同的,只是在一些细节上有出入。JavaScript短小精悍,又是在客户机上解释和执行的,大大提高了网页的浏览速度和交互能力。同时它又是专门为制作Web网页而量身定做的一种简单的编程语言。

很多人看到Java和JavaScript都有“Java”,就以为它们是同一种语言,或者认为是Java的不同版本。事实上,Java语言和JavaScript语言是相关的,但是它们的联系并非那样紧密。首先Java语言是Sun Microsystems公司的产品,而JavaScript是Netscape公司的产品。其次,它们在功能上也有些差异:Java在客户端运行的应用程序叫做Java Applet,是嵌在网页中,而又有自己独立的运行窗口的小程序。Java Applet是预先编译好的一个二进制文件(.class),不能直接使用Notepad等软件打开阅读。Java Applet的功能很强大,可以访问http、ftp等协议,甚至可以在计算机上种植病毒。相比之下,JavaScript的能力就比较小。JavaScript是一种“脚本”(Script)程序,它直接把代码写到HTML文档中,浏览器读取它们时才进行编译、执行,所以能查看HTML源文件就能查看JavaScript源代码。JavaScript没有独立的运行窗口,浏览器当前窗口就是它的运行窗口。

5.VBScript

VBScript是Visual Basic Script的简称,即Visual Basic脚本语言,有时也被缩写为VBS。是ASP动态网页默认的编程语言,Microsoft在发布JScript的同时,开发了VBScript作为其Visual Basic程序设计语言的解释子集,用于在Microsoft的Internet Explorer上编写动态网页脚本程序。像JavaScript一样,VBScript需要在浏览器中要有解释器支持。Microsoft将VBScript定位于JavaScript的一种变化形式,以供已经掌握了Visual Basic的程序员使用。只有Microsoft的浏览器和Microsoft的Web服务器IIS(Internet Information Server,Internet信息服务)才支持VBScript。

6.Java Applet(Java小应用程序)

Java Applet就是用Java语言编写的一些小应用程序,它们可以直接嵌入到网页中,并能够产生特殊的效果。当用户访问这样的网页时,Applet被下载到用户的计算机上执行,但前提是用户使用的是支持Java的网络浏览器。由于Applet是在用户的计算机上执行的,因此它的执行速度不受网络带宽的限制。

在Java Applet中,可以实现图形绘制、字体和颜色控制、动画和声音的插入、人-机交互及网络交流等功能。Applet还提供了名为抽象窗口工具箱(Abstract Window Toolkit,AWT)的窗口环境开发工具,但AWT的设计是存在缺陷的,取而代之的Swing技术为Java GUI编程提供了强大丰富的API和灵活的结构设计,并在AWT基础上,提供了替代AWT重量组件的轻量组件。它们利用用户计算机的GUI元素,可以建立标准的图形用户界面,如窗口、按钮、滚动条等。目前,在网络上有非常多的Applet范例来生动地展现这些功能,实现许多动态的效果。