zoukankan      html  css  js  c++  java
  • 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)方法

          

          

  • 相关阅读:
    hudson用SVN插件下载代码,用ant插件打包, 用SSH插件部署
    CSS加DIV布局
    CSS父元素高度随子元素高度变化而变化
    iframe父页面获取iframe子页面的元素 与 iframe子页面获取父页面元素
    基于ZooKeeper的Dubbo注册中心
    最近项目用到Dubbo框架,临时抱佛脚分享一下共探讨。
    接口测试中三种传参请求(Map、request、Integer)解析
    测试培训大纲第一课时,软件测试基础(培训待续中....)
    架构从最简单的数据访问框架(ORM)到资源调度和治理中心(SOA)说起
    让shell脚本在后台飞
  • 原文地址:https://www.cnblogs.com/goxcheer/p/8338208.html
Copyright © 2011-2022 走看看