生命周期
生命周期有如下几个阶段
加载类 实例化 初始化 请求处理 销毁
其中加载阶段和实例化阶段无法观察,但是初始化阶段、服务、销魂阶段是可以观察到了。
初始化调用init方法
服务阶段调用service方法
销毁阶段调用destroy方法
注:默认情况下servlet是在第一次被访问的时候初始化的,初始化之后进入服务阶段(调用的是service方法)。销毁通过关闭服务器的时候销魂。
也可以在web.xml文件中进行配置,使得服务器已启动就初始化
<servlet>
<servlet-name>empServlet</servlet-name>
<servlet-class>com.biubiu.controller.EmpServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>empServlet</servlet-name>
<url-pattern>/emp</url-pattern>
</servlet-mapping>
运行机制
- 当发送一个请求到服务器端的时候,容器(Tomcat)会判断该路径属于哪一个Servlet进行处理。Servlet有一个抽象的父类“HttpServlet”,这个类是一个模板设计模式的类,其中service方法是一个模板方法,当接收到请求之后容器会自动调用父类的service()方法。
- 根据需求在子类中覆写其他在被service方法调用的钩子方法(一般模板方法是不要求去覆写的)
当容器接收到请求之后调用的是父类service方法-》在该方法中哦按段请求的类型-》根据调用doGet()或者doPost()方法。一般是在子类中重写doGet和doPost方法。