Servlet执行流程和生命周期

Servlet执行流程

Get方式请求HelloServlet ---> <a href="servlet/HelloServlet">

                ↓

  服务器在配置文档中查找相对应的Servlet

<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-parttern>/servlet/HelloServlet</url-pattern>
</servlet-mapping>

         ↓

     找到相对应的处理类

<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>servlet.HelloServlet</servlet-class>
</servlet>

        ↓

再根据具体请求方式找到对应的处理方法

Servlet生命周期

1.初始化阶段,调用init()方法

2.响应客户请求阶段,调用service()方法。由service()方法根据提交方式选择执行doGet()或者doPost()方法

3.终止阶段,调用destroy方法

(下图request和response箭头打反了)

Servlet执行流程和生命周期

在下列时刻Servlet容器装载Servlet:

第一种情况Servlet容器启动时自动装载某些Servlet,实现它只需要在web.xml文件中的<Servlet></Servlet>之间添加如下代码:

<Servlet>
...
<loadon-startup>1</loadon-startup>
</Servlet>

数字越小表示优先级越高。

第二种情况

在Servlet容器启动后,客户首次向Servlet发送请求

第三种情况

Servlet类文件被更新后,重新装载Servlet(Servlet是长期驻留在内存的)

Servlet被装载后,Servlet容器创建一个Servlet实例并且调用Servlet的init()方法进行初始化。在整个Servlet的生命周期内,init()方法只被调用一次。

上一篇:Linux下分析bin文件的10种方法


下一篇:[转]JavaWeb之 Servlet执行过程 与 生命周期