关于Servlet的生命周期

关于Servlet的生命周期

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

这个工程的名字: TestLifeCyecleServlet

index.html:

<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:

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里配置的:

<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部署时才终止

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值