CGI与servlet的对比

CGI是一种与servlet相似的工作在服务器端的web技术,两者都可以响应客户端的请求,还可以收集用户表单的信息并给予动态的反馈;
但是servlet的功能远比CGI强大的多,大致有三个方面:
⑴servlet占用的系统资源少
每当服务器调用CGI程序的时候,服务器端就要启动一个新的线程,使用完毕再将其销毁,当同时有多个客户访问服务器的时候,服务器端就会启动很多个线程,这样的话服务器端就会变得无比臃肿,系统资源变得越来越少;

但是servlet不同,每当调用servlet时并不是启动一个新的线程,而是在服务器的进程中共享和分离线程,这样的好处是可以共享一个数据源,使系统资源被有效利用。

servlet拥有CGI所没有的的可移植性
servlet的平台无关性,servlet在多种平台都可以实现它的功能继承了java的平台独立和可移植性,而CGI一旦更换系统环境程序就会瘫痪。

servlet拥有数据库连接池,CGI没有
在传统技术中,一般都为“web服务器”+“数据库系统”两层结构,CGI中也是如此,这种结构在大量用户访问web应用时,与数据库建立连接的过程会变得非常缓慢,更会导致死机,数据库死锁等现象;在servlet中引入了连接池的概念,它利用多线程的优点,与数据库提前建立好若干连接,在需要建立连接时只要从连接池中取出即可使用,能够有效的缓解这种情况。

猜你喜欢

转载自201610222643.iteye.com/blog/2344199
CGI