zoukankan      html  css  js  c++  java
  • JSP Servlet WEB生命周期

    【转载】

    JavaWeb的生命周期是由Servlet容器来控制的总的来说分为三个阶段
    1.启动阶段:加载web应用相关数据,创建ServletContext对象,对Filter和servlet进行初始化
          a.把web.xml中的数据加载到内存中
          b.为JavaWeb应用创建一个ServletContext对象
          c.对所有的Filter进行初始化
          d.对需要在web应用启动时就被初始化的Servlet进行初始化

    2.运行时阶段:为客户提供服务
          a.所有的Servlet都处于待命状态,随时响应客户请求,提供服务
          b.如客户请求的Servlet还不存在,Servlet容器会先初始化Servlet再调用它的service()方法

    3.终止阶段:释放web应用占用的各种资源
          a.销毁JavaWeb中所有处于运行状态的Servlet
          b.销毁JavaWeb中所有处于运行状态的Filter
          c.销毁所有与JavaWeb相关的对象如ServletContext,并释放资源

    Servlet的生命周期也是由Servlet容器来控制也分为三个阶段与JavaWeb相同
    1.初始化阶段(对应javax.servlet.Servlet接口中的init()方法)
      a.Servlet容器加载Servlet类,将其.class文件中的数据读入内存
      b.Servlet容器创建ServletConfig对象,ServletConfig对象包含特定的Servlet的初始化配置信息。同时Servlet容器还会使得ServletConfig对象与当前Web应用的ServletContext对象关联
      c.Servlet容器创建Servlet对象
      d.Servlet容器调用Servlet对象的init(ServletConfig config)方法完成初始化。Servlet对象只要通过getServletContext()方法就能得到当前Web应用中的ServletContext对象

    2.运行阶段(对应Service()方法)
      a.当Servlet容器接收到要求访问特定的Servlet和客户请求时Servlet容器会创建针对这个请求的ServletRequest对象和ServletResponse对象,然后调用对应Servlet的service()方法从ServletRequest对象中得到客户请求信息并处理该请求。再通过ServletResponse对象生成响应结果。
      b.当Servlet容器把Servlet生成的响应结果发送给客户,Servlet容器就会销毁ServletRequest对象和ServletResponse对象

     

    3.销毁阶段(对应destroy()方法)
      a.当Web应用被终止时,Servlet容器会调用当前Web应用中所有Servlet对象的destroy()方法,然后再销毁这些Servlet对象。
      b.在destroy()方法中会释放Servlet所占用的资源(关闭输入输出流,数据库连接等)
      c.Servlet容器销毁与Servlet对象关联的ServletConfig对象

    注意:Servlet的初始化和销毁只会发生一次,初始化发生特定Servlet在首次被客户端访问。销毁发生在web应用被终止

    JSP的生命周期:JSP的生命周期与Servlet一个区别在于,Servlet容器必须先将Jsp编译成Servlet类然后再运行它.JSP生命周期如下:
      a.解析阶段:Servlet容器解析JSP文件的代码查看是否有语法错误
      b.翻译阶段:Servlet容器把JSP文件翻译成Servlet源文件(.java)
      c.编译阶段:Servlet容器翻译Servlet源文件生成Servlet类(.class)
      d.初始化阶段:加载与JSP对应的Servlet尖,创建其实例,并调用它的初始化方法
      e.运行时阶段:调用与JSP对应的Servlet实例的服务方法
      f.销毁阶段:调用与JSP对应的Servlet实例的销毁方法,然后销毁Servlet实例

    注意:在JSP的生命周期中,解析,翻译,编译是JSP特有的阶段,仅发生在JSP文件首次被客户端请求访问,JSP文件被更新,与JSP文件相对应的Servlet类的类文件被手工删除

  • 相关阅读:
    vue项目中使用bpmn-流程图json属性转xml(七篇更新完成)
    vue项目中使用bpmn-流程图xml文件中节点属性转json结构
    vue项目中使用bpmn-自定义platter
    vue项目中使用bpmn-为节点添加颜色
    vue项目中使用bpmn-节点篇(为节点添加点击事件、根据id找节点实例、更新节点名字、获取指定类型的所有节点)
    vue项目中使用bpmn-流程图预览篇
    vue项目中使用bpmn-基础篇
    万事开头难——学习新知识是要打好基本规则基础的
    老川交易的艺术——普通的一周生活——读后感
    艾宾浩斯遗忘曲线表格——使用
  • 原文地址:https://www.cnblogs.com/cocoat/p/5628168.html
Copyright © 2011-2022 走看看