servlet生命周期由web容器(如tomcat)管理,初始化一次,直到web容器关闭才会被销毁。
1、servlet是单例多线程,每个请求过来容器都会启用一个新线程
2、servlet在容器中保持单例,只会被初始化一次
当web.xml中servlet配置load-on-startup为正整数时,容器启动时servlet就会初始化:创建对象->init(ServletConfig config)->init()
当load-on-startup没有设置或值为负数时,servlet要被请求时才会初始化:创建对象->init(ServletConfig config)->init()
3、一个请求过来容器会启动新线程,包装HttpServletRequest和HttpServletResponse交给servlet,触发servlet的service方法,service方法会根据请求指定的method调用对应的方法(doGet、doPost、doPut、doDelete...)