关于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部署时才终止
以下我们写一个一个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部署时才终止
相关文章推荐
- 关于servlet的生命周期和线程的安全性
- 关于Servlet的生命周期和线程安全
- 关于Servlet的生命周期
- 黑马程序员--关于servlet的生命周期整个过程
- 关于servlet的工作原理和生命周期 和几个参数的使用范围
- 关于Servlet的生命周期与工作原理
- 关于Servlet对象的生命周期
- 关于Servlet的生命周期
- 关于Servlet对象的生命周期
- 一起谈.NET技术,关于ASP.NET页面生命周期的整体把握
- 关于servlet和servlet容器的图
- [原创]java WEB学习笔记11:HttpServlet(HttpServletRequest HttpServletRsponse) 以及关于 Servlet 小结
- servlet的生命周期
- servlet生命周期
- servlet (2) 生命周期
- Servlet的生命周期、反射机制详解Servlet生命周期
- 关于字符串常量在内存中的生命周期
- 关于子函数变量生命周期以及指针的一些问题
- 【JavaWeb笔记】Servlet的生命周期
- servlet的生命周期