【学习提示】 Servlet的本质就是一个Java类,目的是为客户服务。它的任务是获取一个客户的请求,对请求进行相应处理后,再发回一个响应。本章重点讲解Servlet如何获取和使用客户端请求,怎样发送响应或者不发送响应直接进行重定向让浏览器完成工作,以及Servlet的整个开发、配置和使用流程。学习Servlet是掌握JSP的基础和前提,因为JSP在首次运行时都会被Tomcat容器自动转换为Servlet,再次运行时由Tomcat直接调用该Servlet。 7.1.1 CGI简介 与浏览器端技术从静态向动态的演进过程类似,Web服务端的技术也是由静态向动态逐渐发展并完善起来的。早期的Web服务器只能简单地响应浏览器发来的HTTP请求,并将存储在服务器上的HTML文件返回给浏览器,直到通用网关接口(Common Gateway Interface,CGI)技术的产生才使得Web服务器可根据运行时的具体情况(如数据库的实时数据)动态生成HTML页面。 CGI是外部应用程序与Web服务器交互的一个标准接口。1993年,CGI 1.0的标准草案由美国国家超级计算机应用中心(National Center for Supercomputing Applications,NCSA)提出,并于1995年制定了CGI 1.1标准。把遵循CGI标准编写的服务器端的可执行程序称为CGI程序。随着CGI技术的普及,聊天室、论坛、电子商务、搜索引擎等各式各样的Web应用蓬勃兴起,使得互联网真正成为信息检索、信息交换和信息处理的超级工具。 CGI技术允许服务端的应用程序根据客户端的请求,动态生成HTML页面,这使客户端和服务器端的动态信息交换成为了可能。绝大多数的CGI程序被用来解释处理用户在HTML文件的表单中所输入的信息,然后在服务器进行相应的处理并将结果信息动态编写为HTML文件反馈给浏览器。 CGI程序大多是编译后的可执行程序,其编程语言可以是C、C++、Pascal或Perl等程序设计语言。其中,Perl的跨操作系统、易于修改等特性使它成为CGI的主要编程语言。目前几乎所有的Web服务器都支持CGI。CGI程序的工作过程如图7-1所示,具体流程如下: (1) 用户指示浏览器访问一个URL; (2) 浏览器通过HTML表单或超链接请求指向一个CGI程序的URL; (3) ?Web服务器收到请求,并在服务器端执行所指定的CGI程序; (4) ?CGI程序根据参数执行所需要的操作; (5) ?CGI程序把结果格式化为HTML网页; (6) ?Web服务器把结果返回到浏览器中。 图7-1 CGI的基本操作 虽然CGI技术为Web服务器端带来了动态生成HTML文档的能力,但CGI的缺点也是较为明显的:CGI的应用程序一般都是一个独立的可执行程序,每一个用户的请求都会激活一个CGI进程。当用户请求数量非常大时,大量的CGI程序就会吞噬系统资源,造成Web服务器运行效率低下。另外,在CGI程序设计过程中,代码编写方式(在语言中不断嵌入HTML文档片段)、调试等环节非常繁琐,开发效率不高。 7.1.2 ISAPI与NSAPI简介 ISAPI (Internet Server API)与NSAPI(Netscape Server API) 是分别由Microsoft公司和Netscape公司定义的Web服务器应用程序编程接口。虽然两种技术所支持的Web服务器产品不同,但它们的定位和原理相似,以下主要讨论ISAPI。 ISAPI与CGI的工作原理相似,都是通过交互式网页获取用户输入的信息,然后交服务器后台处理。ISAPI与CGI最大的区别在于:在ISAPI下建立的应用程序都是以动态链接库(DLL)的形式存在的。基于ISAPI进程需要的系统资源也较CGI少,因此ISAPI的运行效率要显著高于CGI程序。 可以使用ISAPI筛选器来过滤浏览器端与服务器端之间来回传送的数据,如登录数据或URL请求等。当发生选定事件时相应的筛选器就被调用,通过这种机制,网站可以监视或更改浏览器端与服务器端之间传送的数据。ISAPI 筛选器常用来实现网站的权限控制、自定义加密、自定义压缩和用户访问日志等功能。 能够用来开发ISAPI程序的语言有Visual C++、Visual Basic、Borland C++?和Delphi等,支持ISAPI程序运行的Web服务器主要是Microsoft公司的IIS(Internet Information Services)服务器。支持NSAPI程序运行的Web服务器主要是Netscape公司的Enterprise Server和Sun公司的Java Web S
您可能关注的文档
- (NET程序设计与开发)第5章验证控件.ppt
- (NET程序设计与开发)第7章SqlDataSource数据源控件.ppt
- (PLC应用技术课件)项目三PLC步进顺控指令及其应用.ppt
- (PLC应用技术课件)项目五PLC模拟量控制.ppt
- (Web开发技术)第1章Web技术概述.ppt
- (Web开发技术)第2章Web应用程序开发环境简介.ppt
- (Web开发技术)第4章CSS.ppt
- (Web开发技术)第7章Web服务器端编程与JavaServlet.ppt
- (Web开发技术)第8章Web应用数据库接口.ppt
- (Web开发技术)第9章JSP技术.ppt
- 山西天一大联考2025-2026学年高二上学期期末学情监测语文试题(试卷+解析).docx
- 山西忻州部分学校2025-2026学年高一上学期2月质量检测数学试题(人教B版)(试卷+解析).docx
- 山西运城市2025-2026学年高二第一学期期末调研测试数学试题(试卷+解析).docx
- 陕西省榆林市榆阳区2025-2026学年八年级上学期期末地理试题(试卷+解析).docx
- 陕西西安市碑林区2025-2026学年度第一学期期末八年级生物试题(试卷+解析).docx
- 四川省广元市苍溪县2025-2026年八年级上学期期末道德与法治试题(试卷+解析).docx
- 江苏泰州市姜堰区2025-2026学年七年级上学期1月期末数学试题(试卷+解析).docx
- 江苏省扬州市邗江区2025-2026学年九年级上学期期末考试化学试题(试卷+解析).docx
- 江西上饶市铅山县2025-2026学年第一学期期末考试八年级数学试题(试卷+解析).docx
- 江苏扬州市高邮市2025-2026学年度第一学期期末学业质量监测试题九年级英语(试卷+解析).docx
原创力文档

文档评论(0)