一、CGI
1. 定义:
CGI(Common Gateway Interface 公共网关接口)是HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。
2. 功能:
绝大多数的CGI程序被用来解释处理杰自表单的输入信息,并在服 务器产生相应的处理,或将相应的信息反馈给浏览器。CGI程序使 网页具有交互功能。
3. 运行环境:
CGI程序在UNIX操作系统上CERN或NCSA格式的服务器上运行。 在其它操作系统(如:windows NT及windows95等)的服务器上 也广泛地使用CGI程序,同时它也适用于各种类型机器。
4. CGI处理步骤:
⑴通过Internet把用户请求送到服务器。
⑵服务器接收用户请求并交给CGI程序处理。
⑶CGI程序把处理结果传送给服务器。
⑷服务器把结果送回到用户。
二、Servlet
Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。
它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。
Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。
工作模式:
Servlet被服务器实例化后,容器运行其init方法。
客户端发送请求到达服务器时运行其service方法,
service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等。
服务器将响应返回客户端。
三、Servlet与CGI的区别
Servlet与CGI (Common Gateway Interface 公共网关接口)的比较:
与传统的CGI和许多其他类似CGI的技术相比,Servlet具有更高的效率,更容易使用,功能更强大,具有更好的可移植性,更节省投资。在未来的技术发展过程中,Servlet有可能彻底取代CGI。
在传统的CGI中,每个请求都要启动一个新的进程,如果CGI程序本身的执行时间较短,启动进程所需要的开销很可能反而超过实际执行时间。而在Servlet中,每个请求由一个轻量级的Java线程处理(而不是重量级的操作系统进程)。
在传统CGI中,如果有N个并发的对同一CGI程序的请求,则该CGI程序的代码在内存中重复装载了N次;而对于Servlet,处理请求的是N个线程,只需要一份Servlet类代码。在性能优化方面,Servlet也比CGI有着更多的选择。
* 方便
Servlet提供了大量的实用工具例程,例如自动地解析和解码HTML表单数据、读取和设置HTTP头、处理Cookie、跟踪会话状态等。
* 功能强大
在Servlet中,许多使用传统CGI程序很难完成的任务都可以轻松地完成。例如,Servlet能够直接和Web服务器交互,而普通的CGI程序不能。Servlet还能够在各个程序之间共享数据,使得数据库连接池之类的功能很容易实现。
* 可移植性好
Servlet用Java编写,Servlet API具有完善的标准。因此,为IPlanet Enterprise Server写的Servlet无需任何实质上的改动即可移植到Apache、Microsoft IIS或者WebStar。几乎所有的主流服务器都直接或通过插件支持Servlet。
分享到:
相关推荐
- **高效性**:与 CGI 相比,Servlet 由于采用不同的进程处理模型,运行效率更高。 - **可移植性**:基于 Java 技术,确保了跨平台的能力。 - **标准支持**:遵循多个 Internet 规范,如 HTTP/1.0 和 HTTP/1.1,确保...
### Java Servlet API中文说明文档知识点概述 #### 一、Java Servlet API简介 Java Servlet 技术是Java平台上的一个重要组成部分,主要用于开发动态Web应用程序。它允许开发者创建高性能、可扩展的服务器端组件来...
- **补充资源**:为了更全面地了解Java Servlet API,读者可以通过指定链接下载Javadoc格式的官方文档。 - **目标受众**:主要面向Java Servlet开发者以及Servlet引擎开发者。 #### Java Servlet API 2.1 版概述 - ...
### Servlet基础知识与核心技术详解 #### 一、Servlet简介与Web服务器配置 ##### 1.1 Servlet简介 - **Servlet** 是服务器端的小程序,相对于客户端的 Applet 而言。它可以在服务器端运行,接收来自客户端的 ...
### Servlet_chuanjiang.pdf知识点概览 #### 一、Servlet基础概述 - **Servlet简介**: - **定义**:Servlet是一种服务器端的轻量级小型应用程序,它用于处理客户端发送给服务器的请求并生成响应。与Applet相对,...
### Java Servlet API 知识点详解 #### 一、Java Servlet API 概述 Java Servlet API 是一套由 Sun Microsystems 开发并广泛应用于企业级 Web 应用开发的技术规范。Servlet 技术允许开发者创建高性能、可重用的...
**Servlet与CGI的区别**: - **性能**:Servlet具有更好的性能,因为它们运行在服务器进程中,不需要为每个请求启动新的进程或线程。 - **交互性**:Servlet提供了更好的交互性,可以直接访问Java类库中的各种功能...
总的来说,Wicket基础知识培训会涵盖从Servlet技术到Wicket框架的原理及其与Struts的对比,帮助学员建立起Web开发的坚实基础,并掌握使用Wicket构建动态Web应用的技能。在实际工作中,理解并熟练运用这些知识能够...
在本部分中,我们主要讨论了JavaWeb和WebService领域的面试题目,其中涉及了Servlet与CGI的区别、Servlet接口中的方法、转发与重定向的区别以及JSP的内置对象等知识点。 首先,Servlet和CGI是两种不同的服务器端...
#### Java基础知识补充 - **String 是基本数据类型吗?** - `String` 不是基本数据类型,而是引用类型。基本数据类型包括 `byte`、`int`、`char`、`long`、`float`、`double`、`boolean` 和 `short`。 - **运行时...
本书从基础的安装与配置,到高级的部署、性能调优、集成、安全性以及故障排除等多方面内容,为读者提供了一套完整的Tomcat应用知识体系。以下是对书中内容的详细解读: 1. Tomcat的安装与入门(第1章:Getting ...
- Servlet的生命周期包括初始化(init)、服务(service)和销毁(destroy)三个阶段,而Servlet与CGI的主要区别在于Servlet运行在服务器的JVM中,更加高效和易于管理,能够处理并发请求,而CGI每次请求都需要启动一...
与CGI相比,Servlet可以利用容器提供的多线程支持,在同一个进程中处理多个请求,而CGI为每个请求创建一个新的进程。 10. ArrayList、Vector和LinkedList是Java集合框架中提供动态数组和链表功能的类。ArrayList和...