Servlet的生命周期
Java对象的生命周期:
实例化 -> new。
JVM执行指令对对象进行初始化。
当对象不再使用时,gc调用finalize对对象进行清理,完成后销毁对象。
Servlet的生命周期
step1:
Tomcat容器会自动实例化Servlet。
Tomcat容器会自动调用init方法进行简单的初始化
默认情况下,Servlet对象是在第一次建立连接时创建的,通过Web.xml映射
初始化对应的Servlet对象。这个实例只会创建一次(单实例)。
step2:
可以通过配置web.xml的servlet映射修改其默认的初始化时机:
先找到要修改的Servlet对象的<servlet>标签,
加上:<load-on-startup>大于等于0的任意数字,负数则是默认初始化</load-on-startup>
restart服务,servlet对象就会在服务启动时初始化了。
step3: service方法
实际上我们在发起一个请求时,最先调用的是service方法,
这个方法在父类HttpServlet中,创建Servlet时默认不重写。
父类service方法中调用了doGet和doPost方法,请求最先会
提交到service方法中,service方法再根据method类型调用
对应的方法(doGet或者doPost等。。)
默认加载流程:
请求 --> 创建servlet实例 --> 调用init --> 调用service --> 输出响应信息
服务停止或者重启时调用destroy销毁并回收servlet对象。