一.最上层接口Servlet
查看Servlet接口源码:
有5个方法
访问过程(默认):
1.进行Servlet类加载
当Tomcat容器启动后,服务器寻找应用部署的描述文件(web.xml),从部署描述文件中读取到上下文初始化参数,此时创建一个
ServletContext对象,应用的所有部分共享此上下文。
即Servlet需要创建的信息在ServletContext对象保存
!类的加载在容器启动时执行,整个生命周期只执行一次
2.创建Servlet类的实例,并初始化
客户端访问请求,根据url,ServletContext会找到相应的Servlet处理类(表面是web.xml的mapping映射)
根据保存在ServletContext中的配置和参数信息来创建Servlet实例类初始化。
具体调用getServletConfig(),getServletInfo()和init()方法
!默认情况下:初始化在第一次请求访问时执行
可以配置:Serlvet容器启动时自动装载某些Servlet,实现它只需要在web.xml文件中<servlet> </servlet>之间添加<load-on-startup>1</load-on-startup>,数字越小,优先级越大。
3.执行处理方法Service()
每次请求到来时都会执行Service方法
4.destory()方法
服务器关闭时,servlet会执行,销毁自身,生命周期结束
二.往下看
我们一般都会创建一个Servlet类,继承HtttpServlet,实现doGet()和doPost(),因为httpServlet是子类,封装了更全面的功能
Servlet接口→GenericServlet抽象类→HttpServlet抽象类→MyServlet
实际上doGet和doPost就是相当于上层接口的Service
所以Servlet生命周期:
1)Servlet何时创建
默认第一次访问servlet时创建该对象
2)Servlet何时销毁
服务器关闭servlet就销毁了
3)每次访问必然执行的方法
service(ServletRequest req, ServletResponse res)方法