servlet生命周期

来源:互联网 发布:js页面跳转动画效果 编辑:程序博客网 时间:2024/05/21 10:25
Servlet的生命周期是由servlet的容器来控制的,且分为3个阶段:初始化阶段、运行阶段、销毁阶段。
一、初始化阶段:
<1>
1.Servlet容器加载servlet类,把它的.Class文件中的数据读到内存中。2.Servlet容器创建servletConfig对象。servletConfig对象包含了servlet的初始化配置信息。此外servlet容器还会使得servletConfig对象与当前的web应用的servletContext对象关联。3.Servlet容器创建servlet对象。4.Servlet容器调用servlet对象的init(ServletConfig config)方法。
<2>
在web.xml文件中为servlet设置了<load-on-startup>元素
<servlet><servlet-name>servlet1</servlet-name><servlet-class>servlet.servlet1</servlet-class><load-on-startup>0</load-on-startup></servlet>
说明:在servlet的配置当中,<load-on-startup>5</load-on-startup>的含义是:标记容器是否在启动的时候就加载这个servlet。当值为0或者大于0时,表示容器在应用启动时就加载这个servlet;当是一个负数时或者没有指定时,则指示容器在该servlet被选择时才加载。正数的值越小,启动该servlet的优先级越高。
<4>当web应用被重新启动时,web应用中的所有servlet会在特定的时间被重新初始化。
注:
1.WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前web应用。 
2.ServletConfig对象中维护了ServletContext对象的引用,开发人员在编写servlet时,可以通过ServletConfig.getServletContext方法获得ServletContext对象。
二、运行阶段在这个阶段sevlet可以随时响应客户端的请求。当servlet容器接到访问特定的servlet请求时,servlet容器会创建针对与这个请求的servletRequest和servletResponse对象,然后调用service()方法,并把这两个对象当做参数传递给service()方法。Service()方法通过servletRequest对象获得请求信息,并处理该请求,再通过servletResponse对象生成响应结果。
当客户端首次请求访问一个Servlet时,Servlet容器可能会创建对象:Servlet对象、Servlet关联的ServletConfig对象、ServletRequest和ServletResponse对象。
注:
1.不管是post还是get方法提交,都会在service中处理,然后,由service来交由相应的doPost或doGet方法处理;如果你重写了service方法,就不会再处理doPost或doGet了,如果重写sevice()方法,可以自己转向doPost()或doGet()方法2.当servlet容器把servlet生成的响应结果发送给客户后,servlet容器会销毁servletRequest和sevletResponse对象。三、销毁阶段当Web应用被终止时,servlet容器会先调用web应用中所有的servlet对象的destroy()方法,然后在销毁servlet对象。此外容器还会销毁servlet对象关联的servletConfig对象。在destroy()方法的实现中,可以释放servlet所占用的资源。如关闭文件输入输出流,关闭与数据库的连接。注:
sevlet的生命周期中,servlet的初始化和销毁只会发生一次,因此init()和destroy()方法只能被servlet容器调用一次,而service()方法取决与servlet被客户端访问的次数。
0 0
原创粉丝点击