【转载】

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类的类文件被手工删除

JSP Servlet WEB生命周期的更多相关文章

  1. Servlet是什么?JSP和Servlet的区别。Servlet的生命周期。

    Servlet(Server Applet),全称Java Servlet, 是用Java编写的服务器端程序.而这些Sevlet都要实现Servlet这个借口.其主要功能在于交互式地浏览和修改数据,生 ...

  2. Spring,SpringMVC,MyBatis,Hibernate,Servlet的生命周期,jsp有哪些内置对象,Tomcat,Cookie和Session的作用以及区别,oracle,MYSQL等面试题总结

    1. 什么是Spring,谈谈你对Spring的理解 Spring是我们JAVA开发人员在搭建后台时选用的一个轻量级的开源框架,Spring框架目前也是功能丰富,十分优秀企业级采用最多的一个框架. S ...

  3. Java Web -- Servlet(5) 开发Servlet的三种方法、配置Servlet具体解释、Servlet的生命周期(2)

    三.Servlet的生命周期 一个Java servlet具有一个生命周期,这个生命周期定义了一个Servlet怎样被加载并被初始化,怎样接收请求并作出对请求的响应,怎样被从服务中清除.Servlet ...

  4. IT兄弟连 Java Web教程 Servlet的生命周期

    JavaWeb应用的生命周期由Servlet容器来控制,而Servlet作为JavaWeb应用的最核心的组件,其生命周期也由Servlet容器来控制.Servlet的生命周期可以分为3个阶段:初始化阶 ...

  5. Servlet的生命周期和Jsp的生命周期

    Servlet的生命周期: 1)构造方法(第1次访问) 2)init方法(第1次访问) 3)service方法 4)destroy方法 Jsp的生命周期 1)翻译: jsp->java文件 2) ...

  6. WEB基础(二)--servlet的生命周期

    Servlet的生命周期一般可以用三个方法来表示: init():仅执行一次,负责在装载Servlet时初始化Servlet对象 service() :核心方法,一般HttpServlet中会有get ...

  7. Servlet的生命周期及工作原理

    Servlet生命周期分为三个阶段: 1,初始化阶段  调用init()方法 2,响应客户请求阶段 调用service()方法 3,终止阶段 调用destroy()方法 Servlet初始化阶段: 在 ...

  8. servlet的生命周期与运行时的线程模型

    第 14 章 生命周期 注意 讲一下servlet的生命周期与运行时的线程模型,对了解servlet的运行原理有所帮助,这样才能避免一些有冲突的设计. 如果你不满足以下任一条件,请继续阅读,否则请跳过 ...

  9. Servlet/JSP-01 Servlet及其生命周期

    一.起步 1.新建一个类继承Servlet接口 public class HelloServlet implements Servlet { @Override public void destroy ...

随机推荐

  1. swiper 增加同页面增加2个滚动

    js代码 <script type="text/javascript"> var mySwiper = new Swiper('.slide_a',{ noSwipin ...

  2. python中,ascii,unicode,utf8,gbk之间的关系梳理

    在计算机中,经常遇到编码问题,本节主要梳理下ascii,unicode,utf8,gbk 这几种编码之间的关系. ASCII 计算机中,所有数据都以0和1来表示.在一开始的时候,要表示的内容比较少,人 ...

  3. JavaScript 函数参数传递到底是值传递还是引用传递

    tips:这篇文章是听了四脚猫的js课程后查的,深入的理解可以参看两篇博客: JavaScript数据类型--值类型和引用类型 JavaScript数据操作--原始值和引用值的操作本质 在传统的观念里 ...

  4. 使用Xunit来进行单元测试

    不管你爱与不爱,单元测试对于一个软件的长治久安还是必不可少的一环.在Visual Studio 2012后,VS中的测试浏览器也能与第三方的集成了,用起来还是非常方便的.目前在.Net框架下的测试工具 ...

  5. EntityFramework系列:SQLite.CodeFirst自动生成数据库

    http://www.cnblogs.com/easygame/p/4447457.html 在Code First模式下使用SQLite一直存在不能自动生成数据库的问题,使用SQL Server C ...

  6. SignalR 资料

    链接:http://www.cnblogs.com/royding/p/3919134.html

  7. MySQL5.7 Replication主从复制配置教程

    最近配置mysql5.7主从复制的时候碰到了些问题,老老实实按老版本的步骤配置会有错误,后来自己查看了官方文档,才解决了问题,在这里总结一下5.7的配置步骤, 大体步骤跟老版本的还是一样的,只是有一些 ...

  8. java常用类 --- Object

    Object类 Object类是所有Java类的父类,其位于java.lang包中.任何Java对象,如果没有显示定义父类则它默认Object类作为父类. 方法如下: 其中与线程相关的有5个方法: n ...

  9. Javascript设计模式详解

    Javascript常用的设计模式详解 阅读目录 一:理解工厂模式 二:理解单体模式 三:理解模块模式 四:理解代理模式 五:理解职责链模式 六:命令模式的理解: 七:模板方法模式 八:理解javas ...

  10. CSS hack 汇总

    1, IE条件注释法,微软官方推荐的hack方式. <!]> IE6以及IE6以上版本可识别 <![endif]--> <!]> 仅IE7可识别 <![end ...