一.最上层接口Servlet

    查看Servlet接口源码:

     Servlet(API)生命周期-LMLPHP

      有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

        Servlet(API)生命周期-LMLPHP

            Servlet(API)生命周期-LMLPHP

            实际上doGet和doPost就是相当于上层接口的Service

   

          所以Servlet生命周期:

                

            1)Servlet何时创建

                默认第一次访问servlet时创建该对象

            2)Servlet何时销毁

                服务器关闭servlet就销毁了

            3)每次访问必然执行的方法

                service(ServletRequest req, ServletResponse res)方法

      

      

04-14 17:47