天天看点

java基础——Servlet的生命周期,Servlet和CGI的区别。

servlet的生命周期:就是从servlet出现到销毁的全过程。主要分为以下几个阶段:

加载类—>实例化(为对象分配空间)—>初始化(为对象的属性赋值)—>请求处理(服务阶段)—>销毁

CGI:(Common Gateway Interface 公共网关接口),它是外部应用程序(CGI程序)与Web服务器之间的接口标准,是CGI程序和Web服务器之间传递信息的过程。

Servlet:被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。

与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。

Servlet提供了Java应用程序的所有优势——可移植、稳健、易开发。