概念
Servlet 生命周期可被定义为从创建直到毁灭的整个过程。以下是 Servlet 遵循的过程:
- Servlet 通过调用 init () 方法进行初始化。
- Servlet 调用 service() 方法来处理客户端的请求。
- Servlet 通过调用 destroy() 方法终止(结束)。
- 最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。
Servlet 生命周期方法
构造方法 | 创建 Servlet对象 时被调用,只调用了1次,证明了servlet是单例的。 |
init () 方法 | 创建完对象之后调用的,只调用了1次,该方法用于初始化对象。 |
service() 方法 | 在每次请求时调用,调用n次。该方法为入口方法,我们的逻辑代码在这里被调用。 |
destroy() 方法 | 在servlet对象销毁之后调用,只调用了1次。重新部署网站或停止服务器,servlet对象就会销毁。 |
伪代码演示tomcat服务器调用四个方法:
字符串:gz.itcast_servlet.HelloWorld
- 通过反射,创建HelloServlet对象
①得到HelloServlet的Class对象
Class clazz = Class.forName("gz.itcast_servlet.HelloWorld");
②通过class对象调用构造方法
Object obj = clazz.newlnstance(); --调用无参的构造方法 - 通过反射,得到init方法
①得到init方法对象
Method m = clazz.getDeclareMethod("init",ServletConfig.class);
②调用方法
m.invoke(obj,config); - 通过反射,得到service方法
①得到service方法对象
Method m = clazz.getDeclareMethod("service",HttpServletRequest.class,HttpServletResponse.class);
②调用方法
m.invoke(obj,request,response); - 通过反射,调用destroy方法
①得到destroy方法对象
Method m = clazz.getDeclareMethod("destroy",null);
②调用方法
m.invoke(obj,null);
架构图