`

servlet的生命周期

阅读更多

什么是servlet:

Servlet 是用 Java 编写的服务器端程序,它运行在服务器端,封装了需要处理的业务逻辑,来处理各种请求,利用 sevlet可以很轻松的扩展WEB服务器的功能,使它满足特定的应用需要。

Servlet的生命周期:

Servlet运行在Servlet容器中,他的生命周期由Servlet容器管理。Servlet 的生命周期起始于一个Servlet类被加载到servlet容器中,结束于这个Servlet类被销毁或被重新载入。

Servlet的生命周期包括三个阶段:

一初始化阶段:

当客户端(浏览器)发来了一个请求的时候,Servlet引擎首先检查是否已经装载并创建了该Servlet的实例对象。如果已经装载并创建了该Servlet的实例对象则不用再创建对象,如果没有实例对象,则创建对象。在整个servlet的生命周期中,只会有一个servelt对象。Servlet实例化之后,容器必须调用Servlet的init()方法,初始化这个对象,对于每一个Servlet实例,init()方法能被调用一次。

二请求处理:

当请求从客户端发过来的时候,如果WEB服务器发现的是静态资源,那么就直接WEB服务器处理了,如果是动态资源,Servlet 容器会将请求交给servlet以多线程的方式进行处理处理。Servlet 实例通过 ServletRequest 对象得到客户端的相关信息和请求信息,然后调用 service 方法,Service()方法可以调用doGet(),doPost(),来处理请求,在对请求进行处理后,调用 ServletResponse 对象的方法设置响应信息并且把结果交给WEB服务器,然后用WEB服务器响应给客户端。最后服务器就断开了与客户端的连接,这就到了最后一个阶段。

三服务终止

当容器检测到一个 Servlet 实例应该从服务中被移除,需要释放内存或者容器关闭的时候,例如,web应用程序退出或者重载时,容器就会调用实例的 destroy 方法,以便让该实例释放它所使用的资源。在 destroy 方法调用之后,容器会释放这个 Servlet 实例,该实例随后会被 java 的垃圾回收器所回收。如果再次需要这个 Servlet 处理请求,Servlet 容器会创建一个新的 Servlet 实例。Servlet 实例已进入了另一个新的生命周期。

 

在整个 Servlet 的生命周期过程中,创建 Servlet 实例、调用实例的 init 和 destroy 方法都只进行一次

1
2
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics