您的位置:首页 > 运维架构 > Tomcat

Servlet的生命周期

2009-03-05 00:22 369 查看
生命周期
分为5个阶段
1.加载 ClassLoader
2.实例化 NEW :有客户端请求时
3.初始化init(servletConfig) :只调用一次
4.处理请求 service doget dopost  采用多线程方式让多个客户端连接
5.退出服务 destroy() web应用程序退出时或者类发生改变。

在Servlet生命周期里只有一个对象
下面采用代码方式进行生命周期的测试:
首先将 servlet-api.jar导入到项目里,此jar包位于tomcat所在文件夹/lib里
如何导入:
项目名上右键-属性——Java Build Path——Libraries——Add External Jars
然后选择jar包进行导入

 

代码的编写

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class testLife extends HttpServlet{

public testLife(){                //实例化
System.out.println("testLife");
}

public void init() throws ServletException {   //初始化
System.out.println("init");
}
protected void doGet(HttpServletRequest req, HttpServletResponse resp)   //处理请求
throws ServletException, IOException {
System.out.println("doget");
}

public void destroy() {   //退出服务

System.out.println("destroy!!");
}

}


代码输入完后,将class文件复制到servlet文件中的classes文件里,并且修改WEB-INF里的web.xml
打开 web.xml

在<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> 下面加入
<servlet>
<servlet-name>testLife</servlet-name>
<servlet-class>testLife</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>testLife</servlet-name>
<url-pattern>/testLife</url-pattern>
</servlet-mapping>


 

然后保存退出,启动服务器
然后打开浏览器访问127.0.0.1:8080/myServlet/testLife

查看Tomcat会发现每个方法我们都采用打印一条语句来测试生命周期的顺序,当我们进行客户端连接时会发现顺序是testLife,init,doget,无论多少个客户端连接上来他
都只是一个对象。当类发生改变时才退出服务。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息