Servlet 与 CGI 的比较「建议收藏」

Servlet 与 CGI 的比较「建议收藏」首先什么是GCI,以下是百度给的定义。GCI:CGI 是Web 服务器运行时外部程序的规范,按CGI 编写的程序可以扩展服务器功能。CGI 应用程序能与浏览器进行交互,还可通过数据库API 与数据库服务器等外部数据源进行通信,从数据库服务器中获取数据。格式化为HTML文档后,发送给浏览器,也可以将从浏览器获得的数据放到数据库中。几乎所有服务器都支持CGI,可用任何语言编写CGI,包括流行的C、…

大家好,又见面了,我是你们的朋友全栈君。

首先什么是GCI,以下是百度给的定义。

GCI:CGI 是Web 服务器运行时外部程序的规范,按CGI 编写的程序可以扩展服务器功能。CGI 应用程序能与浏览器进行交互,还可通过数据库API 与数据库服务器等外部数据源进行通信,从数据库服务器中获取数据。格式化为HTML文档后,发送给浏览器,也可以将从浏览器获得的数据放到数据库中。几乎所有服务器都支持CGI,可用任何语言编写CGI,包括流行的C、C ++、VB 和Delphi 等。CGI 分为标准CGI 和间接CGI两种。标准CGI 使用命令行参数或环境变量表示服务器的详细请求,服务器与浏览器通信采用标准输入输出方式。间接CGI 又称缓冲CGI,在CGI 程序和CGI 接口之间插入一个缓冲程序,缓冲程序与CGI 接口间用标准输入输出进行通信。

Servlet 与 CGI比较:

和CGI程序一样,Servlet可以响应用户的指令(提交一个FORM等等),也可以象CGI程序一样,收集用户表单的信息并给予动态反馈(简单的注册信息录入和检查错误)。
然而,Servlet的机制并不仅仅是这样简单的与用户表单进行交互。传统技术中,动态的网页建立和显示都是通过CGI来实现的,但是,有了Servlet,您可以大胆的放弃所有CGI(perl?php?甚至asp!),利用Servlet代替CGI,进行程序编写。
    对比一:当用户浏览器发出一个Http/CGI的请求,或者说 调用一个CGI程序的时候,服务器端就要新启用一个进程 (而且是每次都要调用),调用CGI程序越多(特别是访问量高的时候),就要消耗系统越多的处理时间,只剩下越来越少的系统资源,对于用户来说,只能是漫长的等待服务器端的返回页面了,这对于电子商务激烈发展的今天来说,不能不说是一种技术上的遗憾。
而Servlet充分发挥了服务器端的资源并高效的利用。每次调用Servlet时并不是新启用一个进程 ,而是在一个Web服务器的进程中共享和分离线程,而线程最大的好处在于可以共享一个数据源,使系统资源被有效利用。
    对比二:传统的CGI程序,不具备平台无关性特征,系统环境发生变化,CGI程序就要瘫痪,而Servlet具备Java的平台无关性,在系统开发过程中保持了系统的可扩展性、高效性。
    对比三:传统技术中,一般大都为二层的系统架构,即Web服务器+数据库服务器,导致网站访问量大的时候,无法克服CGI程序与数据库建立连接时速度慢的瓶颈,从而死机、数据库死锁现象频繁发生。而我们的Servlet有连接池的概念,它可以利用多线程的优点,在系统缓存中事先建立好若干与数据库的连接,到时候若想和数据库打交道可以随时跟系统”要”一个连接即可,反应速度可想而知。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/147254.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Windows服务器补丁列表及介绍_操作系统打补丁我用WSUS[通俗易懂]

    你可曾遇到过使用Windows自带的UPDATE下载补丁速度非常慢,往往要等待3小时以上甚至更多呢?这还仅仅局限在关键更新上,要是把驱动和非关键更新也下载的话需要的时间会更长。如果公司只是在一个内网中员工计算机不容许上网的话你又是如何保证他们的补丁是最新的呢?恐怕使用默认的UPDATE都不能实现这些功能。  微软替我们想出了一个办法——使用WSUS。通过WSUS我们可以建立一个内部的UPDATE服…

    2022年4月15日
    555
  • 读书笔记摘抄读后感大全_谈美读书笔记摘抄感悟

    读书笔记摘抄读后感大全_谈美读书笔记摘抄感悟推荐序1 什么是小米跟苹果正面撕的底气?认知盈余是所有互联网商业模式的一大基础理论,我用一句话总结为:下班时间产生的革命性力量。小米模式的本质,用雷军的话说,就是:硬件+互联网+新零售。品牌的竞争VS流量的竞争乔布斯认为,品牌仅次于技术。他有一个品牌秘方:革命性技术与营销的结合才是苹果成功的关键。苹果能卖出这么高的溢价,最重要一招就是品牌效应,而且是爆品级的品牌效应。我称之为:爆品+品牌…

    2025年8月28日
    6
  • gtest测试框架使用详解_quartus在线调试教程

    gtest测试框架使用详解_quartus在线调试教程编辑推荐:本文来自51CTO,本文主要简单介绍了googletest代码的环境配置以及简单实用过程,希望对您的学习有所帮助。1、下载googletest代码得到压缩包:解压并进入msvc文件夹:googletest-master\googletest\msvc2、打开gtest.sln文件因为我的VS是2017版,下载的gtest对应的是2010版,所以打开会提示选择目标SDK版本和升级平台工具集…

    2022年9月29日
    6
  • ItemDataBound的用法

    ItemDataBound的用法原理:在生成datalist列时ItemDataBound触发,也就是说每生成一列就触发一次。这个事件的触发要早于itemcommand.  datalist里面嵌套datalist:内层控件数据绑定与事件声明在外层的ItemDataBind中实现private void dlFileType_ItemDataBound(object sender, System.Web.UI….

    2022年10月13日
    7
  • FPN(feature pyramid networks)算法讲解「建议收藏」

    FPN(feature pyramid networks)算法讲解「建议收藏」这篇论文是CVPR2017年的文章,采用特征金字塔做目标检测,有许多亮点,特来分享。论文:featurepyramidnetworksforobjectdetection论文链接:https://arxiv.org/abs/1612.03144论文概述:作者提出的多尺度的objectdetection算法:FPN(featurepyramidnetworks)。原来多数的

    2022年4月28日
    46
  • 【题解】PTA-Python题库 浙大版《Python 程序设计》题目集题解索引[通俗易懂]

    【题解】PTA-Python题库 浙大版《Python 程序设计》题目集题解索引[通俗易懂]编程题标号标题第1章-1从键盘输入两个数,求它们的和并输出第1章-2从键盘输入三个数到a,b,c中,按公式值输出第1章-3输出“Python语言简单易学”第2章-1计算11+12+13+…+m第2章-2计算分段函数[1]第2章-3阶梯电价第2章-4特殊a串数列求和第2章-5求奇数分之一序列前N项和第2章-6求…

    2025年7月3日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号