CGI与Servlet的区别和联系

1. 定义:数据库

CGI(Common Gateway Interface 公共网关接口)是HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。windows

 

2. 功能:浏览器

绝大多数的CGI程序被用来解释处理杰自表单的输入信息,并在服 务器产生相应的处理,或将相应的信息反馈给浏览器。CGI程序使 网页具备交互功能。性能优化

 

3. 运行环境:服务器

CGI程序在UNIX操做系统上CERN或NCSA格式的服务器上运行。 在其它操做系统(如:windows NT及windows95等)的服务器上 也普遍地使用CGI程序,同时它也适用于各类类型机器。网络

 

4. CGI处理步骤:并发

  ⑴经过Internet把用户请求送到服务器。工具

  ⑵服务器接收用户请求并交给CGI程序处理。性能

  ⑶CGI程序把处理结果传送给服务器。优化

  ⑷服务器把结果送回到用户。

 

 

Servlet是一种服务器端的Java应用程序,具备独立于平台和协议的特性,能够生成动态的Web页面。 它担当客户请求(Web浏览器或其余HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。 Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不一样,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。

工做模式:客户端发送请求至服务器;服务器启动并调用Servlet,Servlet根据客户端请求生成响应内容并将其传给服务器;服务器将响应返回客户端。

 

 

Java Servlet与CGI (Common Gateway Interface 公共网关接口)的比较:

  与传统的CGI和许多其余相似CGI的技术相比,Java 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无需任何实质上的改动便可移植到ApacheMicrosoft IIS或者WebStar。几乎全部的主流服务器都直接或经过插件支持Servlet。

相关文章
相关标签/搜索