Servlet的生命周期分为5个阶段:加载、创建、初始化、处理客户请求、卸载。

(1)加载:Servlet容器(Tomcat)通过类加载器加载servlet文件(.class)
(2)创建:通过调用servlet构造函数创建一个servlet对象
(3)初始化:调用init方法初始化
(4)处理客户请求:每当有一个客户请求,容器会创建一个线程来处理客户请求
(5)卸载:调用destroy方法让servlet自己释放其占用的资源
servlet是由Servlet容器负责加载Servlet类,创建Servlet对象并实例化,然后调用Servlet的init方法,进行初始化,之后调用Service方法。实例化和初始化不同。先实例化,再初始化。

ServletConfig和ServletContext

  1. Jsp/Servlet容器初始化一个Servlet类型的对象时,会为这个Servlet对象创建一个ServletConfig对象。在ServletConfig对象中包含了Servlet的初始化参数信息。
  2. ServletContext是servlet与servlet容器之间的直接通信的接口。Servlet容器在启动一个Webapp时,会为它创建一个ServletContext对象,即servlet上下文环境。每个webapp都有唯一的ServletContext对象。同一个webapp的所有servlet对象共享一个ServeltContext,servlet对象可以通过ServletContext来访问容器中的各种资源。

从作用范围来说,ServletConfig作用于某个特定的Servlet,即从该Servlet实例化,那么就开始有效,但是该Servlet之外的其他Servlet不能访问;ServletContext作用于某个webapp,即在一个webapp中相当于一个全局对象,在Servlet容器启动时就已经加载,对于不同的webapp,有不同的ServletContext。

最后,说明一下参数的获取。访问ServletConfig参数,取得ServletConfig对象后,调用getInitParameter()方法;访问ServletContext对象,只要调用现有的ServletConfig对象的getServletContext()即可,然后同样调用getInitParamter()方法就能获取参数。

Servlet的生命周期分为5个阶段:加载、创建、初始化、处理客户请求、卸载。相关推荐

  1. Vue的生命周期有哪些,第一次加载会触发哪些钩子函数

    Vue的生命周期有哪些,第一次加载会触发哪些钩子函数 beforeCreate created 创建 初始化数据事件 beforeMount mounted 载入 DOM渲染完成 beforeUpda ...

  2. Spring中Bean的生命周期以及IOC与AOP加载过程

    首先说一下Bean的生命周期 Bean的生命周期 创建Bean >> 初始化 >> 摧毁 1.创建Bean 当设置Bean为单例时,在spring容器启动时会创建Bean. 当 ...

  3. JavaBean、MVC模式、Servlet、Servlet生命周期:5个阶段

    JavaBean 后缀Dao:表示操作数据库. JavaBean(就是一个java类)定义: (1)public修饰的类,public无参构造 (2)所有属性都是private,并且提供set/get ...

  4. servlet的生命周期 (四个阶段).

    1.加载阶段 加载并实例化我们的servlet实例 从我们的Tomcat(容器)启动,Tomcat会通过类的加载器加载我们的servlet,并调用默认的构造函数 2.初始化阶段init() servl ...

  5. Servlet的生命周期和工作原理

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

  6. 41. 请简述 Servlet 的生命周期中的方法及作用

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

  7. Servlet的生命周期(简单易懂)

    生命周期是指事物从创建到毁灭的过程.人的生命周期就是从出生到死亡的过程,在这个过程中,必定会有一些与生命周期息息相关的事件,如:出生.吃饭.上学.死亡等.这些事件会在生命周期中的某个特定时刻发生. S ...

  8. Servlet 的生命周期详解

    目录 1.Servlet 的生命周期 2.Spring 中一个 Controller 是一个Servlet 吗? 3.在 Spring 中有多少个 Servlet ? 4.DispatcherServ ...

  9. java之Servlet的生命周期

    Servlet运行在Servlet容器中,其生命周期由容器来管理.Servlet的生命周期通过javax.servlet.Servlet接口中的init().service()和destroy()方法 ...

最新文章

  1. 转;说说AngularJS中的$parse和$eval
  2. 使用PCB Editor 制作元件封装Footprint
  3. bugly怎么读_高级功能
  4. ApacheSkyWalking APM 生态衍生多语言监控, 支持 .NET Core
  5. Git Permission to fazhiyun86/Test.git denied to MarRoar
  6. 看mysql版本信息_查看mysql 的版本信息
  7. Android数据储存之SharedPreferences总结
  8. goland gorm分组查询统计_golang gorm 计算字段和获取sum()值的实现
  9. 【Hbase】程序批量put数据到Hbase
  10. LoadRunner启动自带例子Web Tours报错
  11. xul 和xml区别_使用Atom XML和Firefox XUL实施Web剪切和粘贴
  12. 原生js绑定事件的三种方法
  13. java开发的微信公众号服务端生产环境中的两个大坑
  14. 建模神器 | 涨知识,BIM渲染神技能
  15. “80后”古宅修复者辗转5省 用匠心唤醒老宅魅力
  16. [leetcode] 116. Populating Next Right Pointers in Each Node @ python
  17. 设计师一定要知道这几个网站,解决你80%的设计素材。
  18. matlab 蜡烛图 颜色,Matplotlib图facecolor(背景颜色)
  19. 《嵌入式 - 嵌入式大杂烩》深入理解单总线协议
  20. 2022解决谷歌服务助手错误:很抱歉,当前暂不支持该设备,华为荣耀鸿蒙,MagicUI安装谷歌服务框架Google Play商店GMS

热门文章

  1. GhostXP_SP2电脑公司经典版_v8.0
  2. 松下服务器型号,WEA-ASC970/CH 松下综合型系统管理服务器
  3. 特斯拉入华,充电接口怎么办?
  4. 如何写综述论文全攻略
  5. python截取字符串后三位_python如何截取字符串后几位
  6. 关于Connections could not be acquired from the underlying database
  7. 英飞凌基础学习笔记(SMU)Safety Management Unit
  8. 从OJB到Hibernate的迁移
  9. html 滚动图片代码
  10. 机器学习算法之贝叶斯算法 3、案例二:新闻数据分类