Servlet 生命周期

来源:互联网 发布:wifi网络配置存在问题 编辑:程序博客网 时间:2024/05/01 20:02
Servlet本身不是直接在Java虚拟机上运行的,它需要Web容器程序控制这个载入和运行过程。Web容器控制整个Servlet的生命周期。一般分为以下三总分:

1、创建和初始化

Web容器在载入Web程序时创建程序内每个Servlet类的一个实例。这一般发生在以下几种情况:当Web服务器启动时;或当第一个用户对Servlet的请求传递到Web容器时;或者当程序被加入Web服务器时。这意味着,一个Servlet在生命周期内只被初始化一次。

 

   若要在服务器启动时装入Servlet,可以在web.xml的<servlet>定义,加入<load-on-startuup>标签:
    <servlet>
        <servlet-name>Servletname1</servlet-name>
        <servlet-class>demo.servlet.SomeServlet1</servlet-class>
        <load-on-startup>10</load-on-startup>
    </servlet>
  <load-on-startup>标签设定的是装入时的顺序值,数值越小就越先装入。

同时,在调用Servlet的init()方法初始化Servlet时,Web容器创建一个Servlet设置对象(ServletConfig)实例并通过该对象向Servlet传递初始参数。这个Servlet设置对象在Servlet初始化后一直在内存中存在,直到Servlet被清除(Destroy)。初始化如果成功,Servlet成为可提供服务的状态,否则相反。

   可以用ServletConfig的getInitParameter()取得web.xml中设定的初始化参数:
    <servlet>
        <init-param>
        <param-name>parameter</param-name>
        <param-value>value</param-value>
        </init-param>
     </servlet>

2、处理Web请求

当用户请求传递到Web服务器时,Web服务器产生一个请求对象和响应对象。Web窗口将这两个对象传递到处于可以服务状态的Servlet来让其进行处理。对应Servlet中的Service()、doGet()方法和doPost()方法。处理完成后通过Response对象返回给Web容器。

在编程时,将请求理解为输入,将响应理解为输出是一个很易懂的想法.

 

3、终止服务

当Web容器需要终止Servlet时(比如Web服务器即将被关掉),它会调用Servlet的destroy()方法使Servlet停止服务并被清除掉。


原创粉丝点击