关闭

CGI与Servlet的区别和联系

标签: servletunixcgijava
1325人阅读 评论(0) 收藏 举报
分类:
  1. 定义:

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

  1. 功能:

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

  1. 运行环境:

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

  1. 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无需任何实质上的改动即可移植到Apache、Microsoft IIS或者WebStar。几乎所有的主流服务器都直接或通过插件支持Servlet。

1
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Servlet与CGI的区别

概括来讲,Servlet可以完成和CGI相同的功能。   CGI应用开发比较困难,因为它要求程序员有处理参数传递的知识,这不是一种通用的技能。CGI不可移植,为某一特定平台编写的CGI应用只能运行于这一环境中。每一个CGI应用存在于一个由客户端请求激活的进程中,并且在请求被服务后被卸载。这种...
  • kobejayandy
  • kobejayandy
  • 2013-09-22 18:30
  • 4248

Servlet的生命周期,Servlet和CGI的区别

概括来讲,Servlet可以完成和CGI相同的功能。    CGI应用开发比较困难,因为它要求程序员有处理参数传递的知识,这不是一种通用的技能。CGI不可移植,为某一特定平台编写的CGI应用只能运行于这一环境中。每一个CGI应用存在于一个由客户端请求激活的进程中,并且在请求被服务后被...
  • dwarcheng
  • dwarcheng
  • 2016-09-06 13:37
  • 577

Servlet和CGI的区别

Servlet和CGI的区别Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。servlet处于服务器进程中,它通过...
  • qin87
  • qin87
  • 2007-05-25 22:20
  • 10572

CGI和Servlet

概括来说,CGI和Servlet可以完成相同的功能。 CGI(Common Gateway Interface)程序,主要用Perl、Shell Script或C编写,能够向客户端提供动态内容,即每次客户端浏览器访问某一页面时,可以看到不同的内容。CGI应用开发比较困难,因为它要求程序员有处...
  • somayuki
  • somayuki
  • 2016-03-28 11:30
  • 168

Python学习笔记(二)——Python CGI编程

最近一周的时间在网上继续学习Python,接触到了Python的CGI编程,CGI的官方定义如下: CGI(Common Gateway Interface),通用网关接口,它是一段程序,运行在服务器上如:HTTP服务器,提供同客户端HTML页面的接口。 我比较感兴趣的是Python CGI...
  • song527730241
  • song527730241
  • 2016-03-30 20:42
  • 3693

java 笔试易错题(二 )

接着之前总结的java笔试易错题,后续会有好多,所以新起一篇。 后续会持续更新。。。 1、下面有关JVM内存,说法错误的是? A   程序计数器是一个比较小的内存区域,用于指示当前线程所执行的字节码执行到了第几行,是线程隔离的 B   Java方法执行内存模型...
  • u010918416
  • u010918416
  • 2016-03-07 17:48
  • 1235

Servlet和CGI的区别

Servet使用Java编写的Server端程序,它运行在基于Java语言的Web服务器端,与协议和平台无关。Java Servlet可以动态地扩展服务器的能力,并采用请求/响应模式提供Web服务。         CGI程序,...
  • u013063153
  • u013063153
  • 2015-08-07 13:21
  • 746

Servlet的生命周期,Servlet和CGI的区别

<br />Servlet的生命周期分为5个阶段:<br />实例化:Servlet容器创建Servlet类的实例。<br />初始化:该容器调用init()方法,通常会申请资源。<br />服务:由容器调用service()方法,(也就是doGet(...
  • zdwzzu2006
  • zdwzzu2006
  • 2010-10-16 17:40
  • 6807

CGI与servlet的比较

转载自:http://www.maxhis.info/java/cgi-vs-servlet/ 概括来说,CGI和Servlet可以完成相同的功能。 CGI(Common Gateway Interface)程序,主要用Perl、Shell Script或C编写,能够向客户端...
  • qq_23217629
  • qq_23217629
  • 2016-09-23 09:29
  • 518

Python CGI 模块剖析

CGI(Common Gateway Interface)即通用网关接口,按百度百科对其的解释是: CGI(Common Gateway Interface) 是WWW技术中最重要的技术之一,有着不可替代的重要地位。CGI是外部应用程序(CGI程序)与Web服务器之间的接口标准,是在CGI程序和...
  • BUPT_WX
  • BUPT_WX
  • 2015-08-27 00:19
  • 2991
    个人资料
    • 访问:2385667次
    • 积分:30665
    • 等级:
    • 排名:第189名
    • 原创:501篇
    • 转载:316篇
    • 译文:43篇
    • 评论:1081条
    联系方式(点击)
    546190761
    Loving in Android
    技术 | 交流 | 娱乐 可以加下博主的群-- 312303901


    大家没事可以在群里闲聊Android, IOS,C/C++, Linux等技术问题,心得,学习体会等

    PS:博主仍是计算机行业的一名小学生

    The Weather
    博客专栏
    最新评论
    BruceZhang
    时间