欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

学问补充:servlet与cgi

更新时间: 2014-01-05 02:03:54 责任编辑: Author_N1

 

知识补充:Servlet与CGI

一、CGI

 

1. 定义:

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

 

2. 功能:

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

3. 运行环境:

CGI程序在UNIX操作系统上CERNNCSA格式的服务器上运行。 在其它操作系统(如:windows NTwindows95等)的服务器上 也广泛地使用CGI程序,同时它也适用于各种类型机器。

4. CGI处理步骤:

通过Internet把用户请求送到服务器。

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

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

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

 

 

二、Servlet

Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。

它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。

Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,ServletWeb服务器进行加载,该Web服务器必须包含支持ServletJava虚拟机。

 

工作模式:

Servlet被服务器实例化后,容器运行其init方法。

客户端发送请求到达服务器时运行其service方法,

service方法自动派遣运行与请求对应的doXXX方法(doGetdoPost)等。

服务器将响应返回客户端。

 

 

三、Servlet与CGI的区别

ServletCGI (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还能够在各个程序之间共享数据,使得数据库连接池之类的功能很容易实现。

  * 可移植性好

ServletJava编写,Servlet API具有完善的标准。因此,为IPlanet Enterprise Server写的Servlet无需任何实质上的改动即可移植到ApacheMicrosoft IIS或者WebStar。几乎所有的主流服务器都直接或通过插件支持Servlet

 

上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:03:54
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/5216/
本文WWW.DOC100.NET DOC100.NET版权所有。