servlet的生命周期是servlet相关知识中很重要的一部分。web
servlet从被加载到销毁经历了多个阶段,其中须要咱们十分了解每一个阶段的意义做用,才能更好地编写相关的servlet程序。数据库
下图很好的说明了servlet的各个阶段函数
init() 什么时候调用:servlet实例建立后,并在servlet能为客户请求提供service服务前,容器要对servlet调用init。 做用: 使你在servlet处理客户请求以前有机会对其进行初始化 是否覆盖: 有可能。若是由初始化代码(如获得一个数据库链接),就要调用init()方法线程
service() 什么时候调用: 第一个客户请求到来时,容器会开始一个新线程,或者从线程池分配一个线程,并调用servlet的service()方法。 做用: 这个方法会查看请求,肯定http方法 是否覆盖: 不太可能对象
doGet或者doPost 什么时候调用: service方法根据请求的http方法调用doGet或者doPost。 做用: 要在这里写代码,你的web须要实现的业务逻辑等 是否覆盖: 必定要覆盖其中之一。生命周期
** 每一个请求在一个单独的线程里运行。容器不关心是谁的请求,每一个到来的请求意味着一个新的线程。ip