1、init方法的调用
当Servlet被装载并实例化后,容器会调用init方法对Servlet进行初始化,只有在init方法调用成功后,Servlet才处于service状态,能够处理客户端的请求。
注意: 1) 在整个Servlet的生命周期中init方法仅被调用一次
2) 用户定义的Servlet中可以覆盖有参或无参的init方法,但是若覆盖有参init方法,最好先调用super.init(config),对变量config进行赋值初始化。而覆盖无参init可以不调用super.init(),推荐覆盖无参init,为了使用方便。
3) 用户定义的Servlet中可以不去覆盖init方法,覆盖只是为了使用方便(如:获得web.xml中描述的初始化参数。
2、service方法的调用
当Servlet被装载实例化并初始化后,客户端发起请求,容器就会调用Servlet实例的service方法对请求进行处理。
注意: service方法在生命周期中被调用多次,这跟请求的次数有关。
3、Servlet实例的销毁
当容器在销毁Servlet实例前会先去调用destroy(),
在此方法中可以作下列工作:
1) 恢复一些初始化的变量
2) 释放资源
3) 控制所有运行在Servlet中的线程在Servlet实例被销毁之前能正常运行结束
4) 记录日志信息
注意: 1) destroy()在生命周期中仅被调用一次
2) 用户定义的Servlet中可以不覆盖destroy()