您的位置:首页 > 其它

关于Servlet的生命周期

2014-02-22 10:48 411 查看
关于Servlet的生命周期

以下我们写一个一个html,和一个简单的Servlet,然后在html页面上以dopost方式来提交表单来访问Servlet的dopost函数,然后分析Servlet的生命周期

这个工程的名字: TestLifeCyecleServlet

index.html:

[html] view
plaincopy

<html>

<body>

This is my JSP page. <br>

<form action="LifeCycleServlet" method="post">

<input type=submit value="mySubmit">

</form>

</body>

</html>

action="LifeCycleServlet"

所以这个表单提交的目标是: http://localhost:8080/TestLifeCyecleServlet/LifeCycleServlet

再看看我们的Servlet: LifeCycleServlet

LifeCycleServlet.java:

[java] view
plaincopy

package myServlet;

import java.io.IOException;

import javax.servlet.ServletConfig;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class LifeCycleServlet extends HttpServlet {

/**

*

*/

privatestatic final long serialVersionUID = 1L;

publicLifeCycleServlet() {

//TODO Auto-generated constructor stub

System.out.println("Constructor......");

}

@Override

protectedvoid doPost(HttpServletRequest req, HttpServletResponse resp)

throwsServletException, IOException {

//TODO Auto-generated method stub

System.out.println("doPost;");

}

@Override

publicvoid destroy() {

//TODO Auto-generated method stub

System.out.println("detroy");

}

@Override

publicvoid init() throws ServletException {

//TODO Auto-generated method stub

System.out.println("init()");

}

@Override

publicvoid init(ServletConfig config) throws ServletException {

//TODO Auto-generated method stub

System.out.println("init(config)");

super.init(config);

}

}

我们要用Servlet,一般都要在web.xml里配置的:

[html] view
plaincopy

<servlet>

<servlet-name>LifeCycleServlet</servlet-name>

<servlet-class>myServlet.LifeCycleServlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>LifeCycleServlet</servlet-name>

<url-pattern>/LifeCycleServlet</url-pattern>

</servlet-mapping>

表示这个LifeCycleServlet的访问地址为: http://localhost:8080/TestLifeCyecleServlet/LifeCycleServlet

主页面:index.html





第一次提交表单后:





然后再提交N次后:



然后我们在Tomcat下停止这个工程后:



Constructor......

init(config)

init()

doPost;

doPost;

doPost;

doPost;

2011-11-2 10:59:08org.apache.catalina.startup.HostConfig checkResources

信息: Reloading context [/TestLifeCyecleServlet]

Detroy

我们会发觉,这个项目由部署到Remove部署,由始至终这个Servel只到构造并初始化一次(第一次被访问的那个时候被构造,也就是第一次提交表单时被构造,不提交不构造)

Constructor

init(config)

init() //用户的自定义初始化



然后每将提交表单,这个Servlet就会响应一次dopost,无论以后有多少个用户提交表单,这个Servlet就只管响应就可以了…

最后,这个项目被Remove部署后, Detroy就会被调用….

所以这个Servlet的生命周期是这个Servlet被访问时构造,项目被Remove部署时才终止
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: