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。

CGI与Servlet的区别和联系相关推荐

  1. jsp与java的关系_jsp教程中:jsp与servlet的区别和关系

    jsp教程上:我们一定学了servlet,也学习了jsp,那么jsp与servlet的区别是什么呢,jsp与servlet又有什么关系呢?下面我们先创建一个demo.jsp的页面,然后tomcat运行 ...

  2. jsp与servlet的区别与联系

    jsp和servlet的区别和联系: 1.jsp经编译后就变成了Servlet. (JSP的本质就是Servlet,JVM只能识别java的类,不能识别JSP的代码,Web容器将JSP的代码编译成JV ...

  3. JSP和Servlet的区别(servlet生命周期)

    在说JSP和servlet的区别先说说servlet(因为JSP在本质上就是Servlet,只是两者的创建方式不一样) Servlet工作原理: 1.     在客户端对web服务器发出请求 2.   ...

  4. JSP和Servlet的区别和联系 JSP 内置对象和作用

    JSP和Servlet的区别和联系 1.jsp经编译后就变成了Servlet. (JSP的本质就是Servlet,JVM只能识别java的类,不能识别JSP的代码,Web容器将JSP的代码编译成JVM ...

  5. jsp和servlet的区别

    jsp和servlet的区别 JSP(全称JavaServer Pages)是由Sun Microsystems公司主导创建的一种动态网页技术标准.JSP部署于网络服务器上,可以响应客户端发送的请求, ...

  6. 详谈jsp和servlet的区别

    其实说白了JSP和SERVLET到底什么区别呢,JSP就象宾馆前台的服务员,要长的不错,让顾客一看就觉得比较舒服,他主要就是负责显示这个宾馆的形象的.而SERVLET就象部门经理,要处理各种各样的业务 ...

  7. Web Service和Servlet的区别

    在最开始学习Web Service时候,总觉得Web Service和Servlet没有什么区别,觉得Servlet可以对Http请求进行相应并返回数据,而Web Service只不过是基于SOAP协 ...

  8. javaBean和Servlet的区别

    可以像使用一般的类一样使用JavaBean,Bean只是一种特殊的类.特殊在可以通过<jsp:useBean  />调用JavaBean.而其他类,可以和一般java中一样使用.  Bea ...

  9. 简单留言管理平台实现中 包含的 MVC,另:javabean和servlet的区别

    首先,JavaBean和Servlet虽都是Java程序,但是是完全不同的两个概念. 引用mz3226960提出的MVC的概念,即M-model-模型:JavaBean:V-view-表现:JSP页面 ...

最新文章

  1. mssql 查询当前自增序号_查询函数Choose、Lookup、Hlookup、Vlookup应用技巧解读
  2. 一个当了爹的程序员的自白
  3. jmeter插件 --PerfMon Metrics Collector监控工具的使用
  4. C++中的函数指针和函数对象总结
  5. ubuntu14.04安装dropbox
  6. java cpu 占用高问题定位
  7. C语言入门(4)——常量、变量与赋值
  8. Java中的值类型:为什么它们不可变?
  9. python之deque
  10. 快速上手友盟推送前后端
  11. 程序员必读的入门到大牛高效书单
  12. cmd命令快速切换电源模式-平衡模式和卓越模式
  13. Latex写科技论文小技巧--修改稿件
  14. 已知直线方程,计算直线对应的向量
  15. 拜登签署芯片法案后,英特尔股票的前景如何?
  16. 嵌入式程序员应知道的问题
  17. 怎么通过django模板输出双花括号{{}}
  18. Netapp 两节点双活VS本地HA
  19. 使用H5中的表单标签制作一个简单的网页登陆页面
  20. 电脑英寸,怎么看自己显示器尺寸_怎么查看电脑屏幕多少英寸

热门文章

  1. Python入门(三)变量类型及数据类型转换
  2. 在IE右键菜单,添加图片保存快捷方式
  3. log4j.properties配置详解与实例
  4. 专访东软杨纪文:深入业务做好移动安全防护
  5. linux sheel script demo
  6. Android :数据库
  7. Spring源码解析 - AbstractBeanFactory 实现接口与父类分析
  8. What is 软件工程
  9. Google Protocol Buffer 简单介绍
  10. MIMO系统ML检测(最大似然检测)