Java Web开发从初学到精通
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2 缤纷的Web世界

前面介绍了B/S模型的优越性,这种模式就是在Web开发中,通过浏览器和服务器的交互来实现系统的业务逻辑。这种模式组成的应用程序一般称为 Web 应用程序。本节对Web的一些基础知识进行描述。

1.2.1 什么是Web——网络从何来

Web出现于1989年3月,由欧洲粒子物理研究所(CERN)的科学家Tim Berners-Lee发明。1990年11月,第一个Web服务器正式运行,这时通过Web浏览器看到了最早的Web 页面。1991 年 Web 技术标准正式发布。1993 年,第一个图形界面的浏览器 Mosaic开发成功,1995年著名的Netscape Navigator浏览器问世。随后,微软公司推出了著名的IE浏览器(Windows操作系统默认安装IE浏览器)。目前,与Web相关的各种技术标注都由著名的W3C组织(World Wide Web Consortium)管理和维护。

Web是一个分布式的超媒体信息系统,它将大量的信息分布于因特网上。目的就是为人们提供更多的多媒体网络信息服务。从技术层面上看,Web技术的核心有3点。

超文本传输协议(HTTP)协议,实现网络的信息传输。

统一资源定位符(URL),实现互联网信息的定位的统一标识(如http://www.sohu.com中的www.sohu.com)。

超文本标记语言(HTML),实现信息的表示与存储。

1.2.2 管理Web中文本传输的协议——HTTP协议

超文本传输协议HTTP(HyperText Transfer Protocol)是专门为Web设计的一种应用层协议。常用的Web服务器软件有Apache、IIS等。Web浏览器软件包括IE、Netscape、Mozilla Firefox等。

当用户在浏览器地址栏中输入网址或通过超链接访问目的网站时,都向目标主机(Web服务器)发送一个HTTP请求。HTTP定义的信息交互处理由以下4步组成。

浏览器与Web服务器建立连接。

浏览器向服务器提出请求。

如果请求被接受,则服务器送回响应,响应信息中包括状态码和所需要的文件。

浏览器和Web服务器断开连接。

HTTP向服务器发出一段请求也就是一段报文,是由以下4个部分组成的文本。

(1)请求行。请求行由三个标记组成,即请求方法、请求URL和HTTP版本,它们用空格分隔。例如,GET /Index.html HTTP 1.0的意思就是检索当前文件夹下的Index.html文件,使用的HTTP版本是HTTP 1.1。其中,HTTP 1.1规范定义了8种请求的方法。

Get:检索URL中标识资源的一个简单请求。

Head:与Get方法相同,服务器只返回状态行和头标,并不返回请求文档。

Post:服务器接收被写入客户端输出流中的数据请求。

Put:服务器保存请求数据作为指定URL新内容的请求。

Delete:服务器删除URL中命名的资源的请求。

Options:关于服务器支持的请求方法信息的请求。

Trace:Web服务器反馈HTTP请求和头标的请求。

Connect:已文档化但未实现的一个方法,预留做隧道处理。

在Web应用中,通常只使用Get和Post方法。

(2)请求头标。由关键字和值对组成,每行一对,关键字和值用冒号(:)分隔。请求头标通知服务器关于客户端的功能和识别。典型的请求头标有以下几种。

User-Agent:客户端厂家和版本。

Accept:客户端可识别的内容类型列表。

Content-Length:附加到请求的数据字节。

(3)空行。最后一个请求头标之后是一个空行,发送回车符和退行,通知服务器不再有头标。

(4)请求数据。使用Post发送数据。

服务器接到请求后,解析请求。如果请求是静态资源,如文档、图片等,则将请求的资源返回给浏览器;如果请求是动态的服务器程序,如 Servlet、JSP、ASP、CGI 等,则在服务器端运行程序后返回运行的结果。通常的运行结果是生成的一个HTML文档。一个响应由4个部分组成,这些部分与请求报文的部分基本相同,本节只介绍状态行部分。

状态行由三部分组成:HTTP版本、响应代码和响应描述。

HTTP版本:向客户端指明其可以理解的最高版本。

响应代码:为三位的数字代码,指出请求的成功或失败。如果失败,则指明原因。

响应描述:为相应代码的可读性解释。例如:

        HTTP/1.1 200 OK

HTTP响应代码的说明如下所示。

1xx:信息请求收到,继续处理。

2xx:成功,行为被成功的接收、理解和采纳。

3xx:重定向,为了完成请求,必须进一步执行动作。

4xx:客户端错误。

1.2.3 静态网页——HTML语言

静态网页由超文本标记语言(HTML)组成,用来在页面中显示内容。代码1.1 是一段静态页面,输出“Hello Word!”。因为本章只是介绍Java Web的发展,不涉及语法知识,所以相关的HTML语句请参见第3章。

本案例参考光盘下的源代码\01\HelloWorld.htm。

代码1.1 静态页面

        <html>
          <head>
            <title>第一个静态网页</title>
          </head>
          <body>
            Hello World!
          </body>
        </html>

静态网页的扩展名为.htm,这样会自动在浏览器中打开。本案例的运行效果在浏览器中打开,效果如图1.3所示。

图1.3 静态页面的效果

注意

不同的浏览器下效果可能稍有不同。

1.2.4 动态网页——ASP、JSP和PHP

静态网页有很多问题,最明显的就是无法与服务器进行交互,即用户无法从服务器获取信息并自动更新,也无法将用户的信息提交到服务器。因此就出现了动态网页。动态网页一般由两部分组成:静态页面和动态操作。通过HTML来显示页面,然后通过动态操作完成信息的更新。

完成这种操作的一般有三种开发语言:ASP、JSP和PHP。在Java Web开发中,通常都用JSP。JSP的具体语法和使用方法将在第6章介绍。代码1.2是一个简单的JSP输出“世界,你好!”的程序。

本案例参考光盘下的源代码\01\HelloWorld.jsp。

代码1.2 动态页面

        <%@ page contentType="text/html;charset=gb2312"%>
        <html>
            <head>
              <title>JSP第一个测试页面</title>
            </head>
            <body>
              <%= "<h1>Hello World<br/>世界,你好!</h1>" %>
            </body>
        </html>

注意

JSP程序并不是直接运行在IE浏览器下的,需要相关配置,具体参考第6章的介绍。