预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共85页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第6章(1)Web应用程序开发6.1什么是Web应用程序利用Web应用程序,用户可以方便地完成信息的采集、保存、快速查询和分析。网上商店、网上问卷、用户反馈表、电子图书馆、搜索引擎等等都是Web应用程序的生动实例。 以上海热线网站上旅游站点为例,如图6-1所示。 旅游网站的旅游快讯是动态页面的很好的例子,用户看到页面在不同的日期不同的时刻都可能不同。用户每次请求该页面时,Web服务器都会根据当时数据库中的实际内容,来生成当时有效的页面。 有关旅游网站Web应用程序实例的信息请查阅: http://tttrip.online.sh.cn/news.asp 6.2.1静态页面的处理流程 静态页面的内容在页面设计者设计时就完全确定了,它由一系列静态的HTML标签元素组成。Web服务器上保存的静态页面传到用户端时是不变的。处理静态页面的工作由Web服务器完全承担。当用户单击网页上的超链接,选择浏览器中的书签或直接在浏览器的地址栏中输入URL地址来请求一个静态页面时,浏览器会向Web服务器发送对该页面的请求;Web服务器接收到该请求后,会根据请求所指出的页面地址,根据服务器上虚拟目录和实目录的对应关系找到该页面文件;然后Web服务器把该页面文件通过HTTP协议原封不动地传给用户端的浏览器,其处理流程如图6-2所示。 图6-2静态页面的处理流程 对Web应用程序而言,处理流程就没有这么简单。由于对动态页面有部分的页面内容会在请求时生成,所以处理上增加一些层次。动态页面是在静态页面的基础上添加服务器端脚本或标签编写而成的。当Web服务器接收到对动态页面的请求,找到该页面后,并不马上传回用户,而是先把页面传给一个专门负责处理动态元素的处理层次来生成最终传回用户端的页面内容。这个处理层次被称为应用服务器。 应用服务器执行动态页面中的服务器端脚本或标签,执行的动作包括对服务器端可访问的资源的操作(例如文件操作、数据库操作、会话信息等)和生成结果。生成结果是把原来页面中的服务器端脚本或标签替换成一系列静态的页面元素,生成什么页面由服务器端脚本或标签控制。因此,应用服务器返回给Web服务器的是一个静态页面,再由Web服务器将这个静态的结果页面传给用户。对简单的动态页面,不涉及外部资源访问,处理流程仅增加应用服务器这一个层次。图6-3是这个流程的示意图。 图6-3简单动态页面的处理流程该流程概述如下: (1)浏览器发出对动态页面的请求; (2)Web服务器找到该页面,传给应用服务器; (3)应用服务器扫描页面,执行代码,生成结果; (4)应用服务器把结果页面返回给Web服务器; (5)Web服务器发回该结果页面给浏览器。 下面是一个ASP动态页面的例子: <html> <head> <title>简单动态页面实例</title> </head> <body> <strong><%=now()%></strong><br> 应用服务器会将上面的服务器端脚本替换掉 </body> </html> 在用户端浏览器的某一次执行看到的是如图6-4所示的结果页面。如果在用户端浏览器查看该页面的源代码,可以看到服务器端脚本<%=now()%>已经被替换成该函数的执行结果:2002-8-2210:26:36。 由于脚本在服务器上而不是在客户端运行,传送到浏览器上的Web页是在Web服务器上生成的,所以不必担心浏览器能否处理脚本,Web服务器已经完成了所有脚本的处理,并将标准的HTML传输给浏览器。由于只有脚本的结果返回到浏览器,所以服务器端脚本不易复制,用户看不到当前正在浏览的页面创建时的脚本命令。 图6-4简单动态页面的结果实例当需要访问外部资源时,Web应用程序的处理流程会增加更多的处理层次。这种情况下,动态页面的服务器脚本中将包含访问外部资源的代码,可能对外部资源作检索、更新、添删等操作,并可把操作结果或者抽取的外部资源数据编排好生成替换服务器脚本的静态内容。外部资源的最典型的例子是数据库,但并不只限于数据库,文件系统、企业应用网关(如企业资源计划(ERP)/客户关系管理(CRM)/供应链管理(SCM)等)、传统主机应用网关(IBM的交易处理中间件(CICS))等都是典型的外部资源。图6-5复杂动态页面的处理流程以数据库作为外部资源的情况为例,当Web服务器接收到对动态页面的请求,找到该页面后,把页面传给应用服务器;应用服务器执行动态页面中的服务器端脚本或标签,当遇到访问数据库的代码时,应用服务器发送代码中的SQL命令给数据库服务器;数据库服务器执行SQL命令,把结果所得的数据集返回给应用服务器;应用服务器执行脚本中的后续代码,生成替换脚本的静态内容,生成过程中如何利用数据库服务器返回的数据集,由脚本代码控制;应用服务