当前位置 : 主页 > 编程语言 > c++ >

Servlet 与 CGI 的比较

来源:互联网 收集:自由互联 发布时间:2021-07-03
Servlet 与 CGI 的比较 和CGI程序一样,Servlet可以响应用户的指令(提交一个FORM等等),也可以象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有连接池的概念,它可以利用多线程的优点,
    在系统缓存中事先建立好若干与数据库的连接,到时候若想和数据库打交道可以随时跟系统"要"一个连接即可,
    反应速度可想而知。
网友评论