美文网首页
Servlet生命周期

Servlet生命周期

作者: itachi | 来源:发表于2016-12-21 16:00 被阅读43次

局部变量放在栈中,实例变量放在堆中,静态变量放在方法区中

所谓生命周期,指的是Servlet容器如何创建Servlet实例,分配其资源,调用其方法,并销毁其实例的整个过程

阶段一:实例化

创建Servlet对象,调用构造方法
在如下 两种情况下会进行对象的实例化
1、当请求到达容器时,容器查找该Servlet对象是否存在,
若存在,则直接拿来使用,不存在则创建
2、容器在启动时,或者新部署某个应用时,会检查web.xml当中Servlet是否有load-on-starup配置
如果有,则会创建改Servlet实例,load-on-up参数值越小,优先级越高(最小值为0)
Servlet 容器负责加载和实例化Servlet,当容器启动时,或者容器检测到需要这个Servlet来响应第一个请求时,web容器就加载并创建Servlet实例首先

注意:Servlet是单例的,当容器启动或请求到达时,容器会先检测是否由此Servlet,无则创建,有则不创建,直接使用,但是对于请求Servlet引擎会为每一次请求都创建一个request和response对象

阶段二:初始化

为Servlet分配资源,调用init方法(ServletConfig config)方法
config对象可以用来访问Servlet的初始化参数,初始化参数通过使用init-param配置
Servlet容器会为每一个Servlet对象创建一个ServletConfig对象

阶段三:就绪/调用

当有请求到达容器时,容器会根据请求调用对应Servlet对象的service()方法

阶段四:销毁

当Servlet对象初始化后就常留在内存中,直到服务器停止才需要被销毁,Servlet引擎调用Servlet对象的destroy()方法,把Servlet对象销毁

在Servlet的整个生命周期中,init,destroy只会执行一次,而service可以执行多次。

ServletConfig接口
创建Servlet对象时,同时会创建一个ServletConfig接口对象,ServletConfig可以为该Servlet读取预置参数,并且该对象是此Servlet对象独享,即每一个Servlet都有一个ServletConfig对象。

ServletContext对象 接口 Servlet上下文
ServletContext 是Servlet与Servlet容器之间的直接通信接口
Servlet容器在启动一个web应用时,会为他创建一个ServletContext对象,每个web应用都有唯一的一个ServletContext对象

同一个web应用所有Servlet对象共享一个Servletcontext
Servlet对象可以通过他来访问容器中的各种资源
Servletcontext对象在web应用被关闭时才会销毁
不同的web应用,Servletcontext各自独立

注:ServletConfig是在初始化Servlet前创建
Servletcontext是在服务器启动前创建,这两个对象都不是必须的,我们可以自己写组件给Servlet予置数据

图片1.png 图片2.png

相关文章

  • Servlet入门(二)

    Servlet生命周期 Servlet运行在Servlet容器中,其生命周期由容器来管理。Servlet的生命周期...

  • servlet生命周期及实现原理

    Servlet 生命周期:Servlet 加载--->实例化--->服务--->销毁。 Servlet生命周期分为...

  • Servlet 工作原理

    Servlet 生命周期 Servlet 生命周期:Servlet加载--->实例化--->服务--->销毁。 i...

  • java面试和笔试(四)

    61、servlet的生命周期 web容器加载servlet,生命周期开始。通过调用servlet的init()方...

  • 框架知识

    框架知识→ Servlet生命周期Servlet_生命周期:首先加载servlet的class,实例化servle...

  • Servlet生命周期

    Servlet 生命周期 Servlet 生命周期可被定义为从创建直到毁灭的整个过程。以下是 Servlet 遵循...

  • Servlet生命周期

    Servlet生命周期 Servlet 生命周期可被定义为从创建直到毁灭的整个过程。以下是 Servlet 遵循的...

  • J2EE--Servlet

    什么是Servlet? 如何使用Servler? Servlet生命周期 Servlet方法体系 Servlet3...

  • Servlet的生命周期

    Servlet 生命周期:Servlet 加载—->实例化—->服务—->销毁。 init():在Servlet的...

  • servlet学习(二):servlet的生命周期

    Servlet 生命周期指的是,Servlet 对象的创建、Servlet 对象的初始化、Servlet 对象服 ...

网友评论

      本文标题:Servlet生命周期

      本文链接:https://www.haomeiwen.com/subject/mwjqvttx.html