生命周期是一个程序的存在周期,受容器管理,所以容器决定生命周期。

生命周期包括 加载,初始化,服务,销毁,卸载 5个部分

加载:第一次使用的时候加载

初始化:init方法, 失败的话,直接卸载,如果成功的话,进行服务的操作,如果服务不再使用,进行销毁再卸载

服务:service方法

销毁:destroy方法

代码:

package org.lxh.servletdemo ;
import java.io.* ;
import javax.servlet.* ;
import javax.servlet.http.* ;
public class LifeCycleServlet extends HttpServlet{
public void init() throws ServletException{
System.out.println("** 1、Servlet初始化 --> init()") ;
}
public void doGet(HttpServletRequest req,HttpServletResponse resp)
throws ServletException,IOException{
System.out.println("** 2、Servlet服务 --> doGet()、doPost()") ;
}
public void doPost(HttpServletRequest req,HttpServletResponse resp)
throws ServletException,IOException{
this.doGet(req,resp) ;
}
public void destroy(){
System.out.println("** 3、Servlet销毁 --> destory()") ;
try{
Thread.sleep(3000) ;
}catch(Exception e){}
}/*
public void service(ServletRequest req,
ServletResponse res)
throws ServletException,
IOException{
System.out.println("************ 服务 **************") ;
}
*/
}

web.xml配置:

<servlet>
<servlet-name>life</servlet-name>
<servlet-class>org.lxh.servletdemo.LifeCycleServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>life</servlet-name>
<url-pattern>/LifeServlet</url-pattern>
</servlet-mapping>

init:在第一次运行的时候才会初始化

销毁destroy:

1. 容器关闭

2. 一个servlet长时间不使用

3. 还有一种开发中的可能性,执行了reload操作

如果调用service方法的话,主要功能是区分是get请求还是post请求,如果是get请求,则调用doGet方法,如post请求,则调用doPost请求,但是一旦在子类中被覆写之后,则没有了区分此种的能力,所以doGet和doPost都失效了。

实际上,这种方法更像是一种设计的模板操作,只需要按照要求将方法覆写完成了,那么就可以实现响应的功能。

当然还有一点需要注意,在正常情况下,初始化是在servlet第一次使用的时候调用,如果需要在容器启动的时候,servlet可以直接进行初始化操作的话,可以设置web.xml文件,增加一个相应的配置参数,表示在容器启动的时候加载参数:

<load-on-startup>1</load-on-startup>

总结:

1. 最重要的就是service方法,doGet,doPost是专门负责处理请求的。

2. 通过配置web.xml文件可以在服务器启动时自动初始化servlet

最新文章

  1. Sql常用语法以及名词解释
  2. C# WebService URL重写
  3. [Scrapy] Mac安装Scrapy
  4. cocos2d 如何优化内存使用
  5. 【Qt】学习笔记(一)
  6. Paratroopers
  7. 网易新闻优化APK下载链接
  8. linux下MySQL 5.6源码安装
  9. NSMutableString
  10. (转)关于eclipse的TestNG的插件安装方法
  11. 从知乎首页用户操作入口学习到的CSS技巧 - 合理利用伪元素实现一些装饰样式
  12. Find them, Catch them POJ - 1703
  13. java包的所有类生成class
  14. UVA 11134 Fabled Rooks(贪心的妙用+memset误用警示)
  15. 记一款bug管理系统(bugdone.cn)的开发过程(1) -- 为什么要开发一款bug开发系统
  16. Hadoop Hive sql 语法详解
  17. IOC与DI简介
  18. Python nltk English Detection
  19. 深入理解jQuery插件开发总结(四)
  20. iOS UITableViewHeaderFooterView设置背景色为透明

热门文章

  1. hashMap、hashTable、treeMap的区别
  2. Dash:程序员的好帮手
  3. OSI参考模型各层的主要功能
  4. PHP通过url下载远程图片到本地
  5. Android 内存监测工具 DDMS --&gt; Heap(转)
  6. android中分割线的实现
  7. mybatis结合redis实战二级缓存(六)
  8. weaver_oa
  9. YII2 运行概述(Overview)
  10. openwrt 中make的使用