Servlet生命周期:创建阶段、初始化阶段、执行阶段、销毁阶段
创建阶段:如果是在web.xml中配置了<load-on-startup>,那么在启动服务器的时候就会自动创建对应的Servlet对象,如果没有配置,那就是在调用servlet的时候创建对象。
初始化阶段:初始化函数分为带参的init(ServletConfig config)和不带参的init(),初始化是在第一次调用servlet时进行的,如果有参的init函数和无参的init函数同时存在则会默认调用带参的init函数,初始化阶段的任务一般是获取在web.xml中配置的初始化参数以及预先执行一些代码。
执行阶段:执行时首先根据浏览器请求调用对应的方法,get请求调用doGet方法,post请求调用doPost方法,在方法的参数中以注入的形式设置接口型(HttpServletRequest、HttpServletResponse)变量指向实现类(HttpServletRequestWrapper、HttpServletResponseWrapper)对象地址,将前台数据封装成表单bean,将bean参数传入调用相应的业务方法,根据业务方法返回的结果bean及转向信息,将请求通过response转发到相应的View组件。
销毁阶段:servlet的销毁方法是destroy(),因为在servlet创建之后就一直处于等待被调用的状态,所以销毁的时候也就是说服务器不再响应即关闭的时候,servlet的销毁方法会被调用,同时gc(垃圾回收器)会自动清除代码的残余。