关于Servlet的生命周期

关于Servlet的生命周期

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

 

这个工程的名字: TestLifeCyecleServlet

index.html:

[html]  view plain copy
  1. <html>  
  2.   <body>  
  3.     This is my JSP page. <br>  
  4.     <form action="LifeCycleServlet" method="post">  
  5.     <input type=submit value="mySubmit">  
  6.     </form>  
  7.   </body>  
  8. </html>  


 

 

action="LifeCycleServlet"

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

 

再看看我们的Servlet: LifeCycleServlet

LifeCycleServlet.java:

 

[java]  view plain copy
  1. package myServlet;  
  2.    
  3. import java.io.IOException;  
  4.    
  5. import javax.servlet.ServletConfig;  
  6. import javax.servlet.ServletException;  
  7. import javax.servlet.http.HttpServlet;  
  8. import javax.servlet.http.HttpServletRequest;  
  9. import javax.servlet.http.HttpServletResponse;  
  10.    
  11. public class LifeCycleServlet extends HttpServlet {  
  12.           
  13.          /** 
  14.           * 
  15.           */  
  16.          privatestatic final long serialVersionUID = 1L;  
  17.    
  18.          publicLifeCycleServlet() {  
  19.                    //TODO Auto-generated constructor stub  
  20.                    System.out.println("Constructor......");  
  21.          }  
  22.           
  23.          @Override  
  24.          protectedvoid doPost(HttpServletRequest req, HttpServletResponse resp)  
  25.                             throwsServletException, IOException {  
  26.                    //TODO Auto-generated method stub  
  27.                    System.out.println("doPost;");  
  28.          }  
  29.    
  30.          @Override  
  31.          publicvoid destroy() {  
  32.                    //TODO Auto-generated method stub  
  33.                    System.out.println("detroy");  
  34.          }  
  35.    
  36.          @Override  
  37.          publicvoid init() throws ServletException {  
  38.                    //TODO Auto-generated method stub  
  39.                    System.out.println("init()");  
  40.          }  
  41.           
  42.          @Override  
  43.          publicvoid init(ServletConfig config) throws ServletException {  
  44.                    //TODO Auto-generated method stub  
  45.                    System.out.println("init(config)");  
  46.                     
  47.                    super.init(config);  
  48.           
  49.          }  
  50. }  
  51.    


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

[html]  view plain copy
  1. <servlet>  
  2.   <servlet-name>LifeCycleServlet</servlet-name>  
  3.   <servlet-class>myServlet.LifeCycleServlet</servlet-class>  
  4. </servlet>  
  5. <servlet-mapping>  
  6.   <servlet-name>LifeCycleServlet</servlet-name>  
  7.   <url-pattern>/LifeCycleServlet</url-pattern>  
  8. </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、付费专栏及课程。

余额充值