什么是servlet的生命周期?
servlet的生命周期是指:servlet对象什么时候实例化,什么时候初始化,什么时候调用方法,什么时候销毁。
实例化:
servlet的实例化有两种情况:
(1)默认情况下servlet是在请求的时候实例化;
(2)web容器启动的时候实例化。这种情况需要在web.xml中配置<load-on-starup>1</load-on-starup>,数值越小表示优先级越高。
初始化:
当请求地址在web.xml中匹配到了相应的servlet时,会通过反射实例化Servlet对象,并且调用有参的init()方法,再在有参的init()方法中调用无参的init()方法。如果需要重写初始化代码就重写init()方法。
方法调用:
servlet对象初始化以后,web容器调用service()方法,会根据请求方式的不同来调用doGet()或者doPost()方法。service()方法是servlet的核心方法,是用于处理真正的业务逻辑的地方。service()方法调用前init()方法必须执行成功。
销毁:
当工程从web容器中移除时执行destory()方法,方法调用后会释放servlet实例,随后将会被垃圾收集器回收。