欢迎光临散文网 会员登陆 & 注册

Servlet服务小程序VS传统技艺CGI 优势明显~

2021-05-20 16:26 作者:自学Python的小姐姐呀  | 我要投稿



一、Web开发历史回顾

         静态资源:不需要运行代码生成的资源, HTML CSS JS 多媒体。

         动态资源:每次获得都是需要运行代码生成的资源,每次访问返回的数据都可能是不一样的servlet jsp。


二、CGI

        CGI(Common Gateway Interface)公共网关接口,是外部扩展应用程序与Web服务器交互的一个标准接口。服务器端与客户端进行交互的常见方式有多种,CGI 技术是其中之一。

        CGI 应用程序能与浏览器进行交互,还可通过数据API与数据库服务器等外部数据源进行通信,从数据库服务器中获取数据。格式化为HTML文档后,发送给浏览器,也可以将从浏览器获得的数据放到数据库中。

        几乎所有服务器都支持CGI,可用任何语言编写CGI,包括流行的C、C ++、Java、VB 和Delphi 等。


三、CGI缺点

以进程方式运行,对每一个客户端的请求都要启动一个进程来运行程序,导致用户数目增加时,服务器端资源被大量占用。

由于对操作系统和进程的不深刻理解,使得开发人员开发的CGI程序经常遇到莫名其妙的错误。

不同的CGI之间不能共享资源

四、Servlet 与 CGI 比较

       与传统的 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、MicrosoftIIS 或者 WebStar。几乎所有的主流服务器都直接或通过插件支持 Servlet。

节省投资

不仅有许多廉价甚至免费的 Web 服务器可供个人或小规模网站使用,而且对于现有的服务器,如果它不支持 Servlet 的话,要加上这部分功能也往往是免费的(或只需要极少的投资)。

六、FastCGI

FastCGI是对CGI模式的一个改进,采用了Pooling技术,一定程度上改善了性能,但是由于仍然是基于进程运行的所以并没有从根本上解决问题。

七、Servlet与 Applet 的比较

相似之处:

它们不是独立的应用程序,没有 main() 方法。

它们不是由用户或程序员调用,而是由另外一个应用程序(容器)调用。

它们都有一个生存周期,包含 init() 和 destroy() 方法。

不同之处:

Applet具有很好的图形界面(AWT),与浏览器一起,在客户端运行。

Servlet 则没有图形界面,运行在服务器端。

八、 Servlet介绍

      Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。


      狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。

      最早支持Servlet标准的是JavaSoft的Java Web Server,此后,一些其它的基于Java的Web服务器开始支持标准的Servlet。


九、 Servlet技术特点

Servlet使用单进程多线程方式运行。

十、Servlet在应用程序中的位置

                       同学想要学习《Servlet:服务端小程序》

                                      点击上方链接即可学习



Servlet服务小程序VS传统技艺CGI 优势明显~的评论 (共 条)

分享到微博请遵守国家法律