• Servlet(API)生命周期


    一.最上层接口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)方法

          

          

  • 相关阅读:
    Description Resource Path Location Type Java compiler level does not match the version of the instal
    myeclipse导入项目后,项目类中报Base64错
    Oracle中查询一个字符串的长度的函数
    异常QueryTimeoutException和for input String
    myeclipse中的内存溢出PermGen space
    SecureCRT--下重启服务器
    清除tomcat的缓存
    oracle 定时任务 job 调用存储过程有回到输出参数(含out参数)
    Spring之AOP
    @RequestParam、@PathVariable、@RequestBody区别
  • 原文地址:https://www.cnblogs.com/goxcheer/p/8338208.html
Copyright © 2020-2023  润新知