Servlet的生命周期

来源:互联网 发布:熊猫看书软件下载 编辑:程序博客网 时间:2024/06/05 14:39

Servlet技术

1、Servlet是能够接收请求并向客户端相应的Java类;

2、开发Servlet的步骤:

(1)创建类并继承Servlet类,重写doGet()或doPost()方法;

(2)配置URL与Servlet的映射,可通过web.xml配置,也可通过注解配置。(URL映射是指用户通过浏览器输入URL向服务器发出请求时,将请求映射到Servlet类)

**注:在web.xml配置URL与Servlet的映射

<servlet>

<servlet-name>HelloWord</servlet-name>

<servlet-class>cn.itlaobing.servlet.HelloServlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>HelloWord</servlet-name>

<url-pattern>/HelloWord</url-pattern>

</servlet-mapping>

执行顺序:1、<servlet-mapping>中的<url-pattern>找到<servlet-mapping>中的<servlet-name>

          2、通过<servlet-mapping>中的<servlet-name>找到<servlet>中的<servlet-name>

          3、再通过<servlet>中的<servlet-name>找到<servlet>中的<servlet-class>

两个<servlet-name>必须一致。

3、Servlet生命周期:

1当请求到达web容器时,容器通过web.xml寻找到对应的servlet,如果该servlet被实例化了,则调用service方法,然后调用doGet()或者doPost()方法

2如果该servlet没有被实例化,则先对其进行实例化,然后调用init方法进行初始化。

3然后调用service方法再调用doGet()或者doPost()方法

4向客户端进行响应,当容器重启或者关闭是调用servletdestroy()方法进行销毁。

4、请求与响应的过程

1由客户端浏览器发出一个get或者post请求

2服务器收到请求后创建request和response

3读取web.xml寻找url对应的servlet(容器会在内存中寻找是否有servlet的实例,如果有就调用service方法然后调用doGet()或者doPost(),如果没有就先创建一个实例然后调用init()方法进行初始化)

4创建一个线程调用HttpServlet对象的service方法决定是调用doGet()还是doPost()方法

5处理完请求以后向客户端响应数据,并销毁线程以及request和response

5、启动时初始化:(在web.xml中的Servlet标签中配置<load-on-startup>)

1)代表容器启动时是否加载改Servlet;

2)值必须是一个整数;

3)当值大于等于零时,值越小优先级越高(0的优先级最高);

     当值小于零时,在调用的时候进行初始化;

     不指定时在调用时加载;

6、配置初始化时要加载的参数(在<load-on-startup>之前)

<init-param>

<param-name>username</param-name>

<param-value>name</param-value>

</init-param>

Servlet的init方法中获取初始化参数

config.getInitParameter(name)