Servlet的生命周期和不同的映射方式

一、Servlet介绍
1.Servlet的生命周期

- 对象的生命周期,就是对象从出生到死亡的过程。即:出生 -> 活着 -> 死亡。官方说法是对象创建到销毁的过程
- 出生:请求第一次到达 Servlet 时,对象就创建出来,并且初始化成功。只出生(创建)一次,将对象放到内存中
- 活着:服务器提供服务的整个过程中,该对象一直存在,每次都是执行 service 方法
- 死亡:当服务停止时,或者服务器宕机时,对象死亡
- 结论:Servlet 对象只会创建一次,销毁一次。所以 Servlet 对象只有一个实例。如果一个对象实例在应用中是唯一的存在,那么我们就称它为单例模式

2.Servlet不同映射方式

① 第一种
具体名称的方式。访问的资源路径必须和映射配置完全相同
在web.xml中配置

LoginServlet
com.itheima.controller.LoginServlet


LoginServlet
/loginServlet

浏览器地址写http://localhost:8080/Web/loginServlet

②第二种
/ 开头 + 通配符的方式。只要符合目录结构即可,不用考虑结尾是什么
在web.xml中配置

LoginServlet
com.itheima.controller.LoginServlet


LoginServlet
/login/*

浏览器地址写http://localhost:8080/Web/login/abcd(自定义)
也可以不写http://localhost:8080/Web/login

③ 第三种
通配符 + 固定格式结尾的方式。只要符合固定结尾格式即可,不用考虑前面的路径
在web.xml中配置

LoginServlet
com.itheima.controller.LoginServlet


LoginServlet
/login/*

浏览器地址写http://localhost:8080/Web/abcd(自定义).action

注意:优先级问题。越是具体的优先级越高,越是模糊通用的优先级越低。第一种 -> 第二种 -> 第三种

3.Servlet创建时机

①第一次访问时创建
优势:减少对服务器内存的浪费。提高了服务器启动的效率
弊端:如果有一些要在应用加载时就做的初始化操作,无法完成

②服务器加载时创建
优势:提前创建好对象,提高了首次执行的效率。可以完成一些应用加载时要做的初始化操作
弊端:对服务器内存占用较多,影响了服务器启动的效率

二、ServletContext介绍

  • ServletContext 是应用上下文对象。每一个应用中只有一个 ServletContext 对象。
  • 作用:可以获得应用的全局初始化参数和达到 Servlet 之间的数据共享。
  • 生命周期:应用一加载则创建,应用被停止则销毁。
    出生——活着——死亡
    出生: 应用一加载,该对象就被创建出来了。一个应用只有一个实例对象。(Servlet和ServletContext都是单例的)
    活着:只要应用一直提供服务,该对象就一直存在。
    死亡:应用被卸载(或者服务器挂了),该对象消亡。
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值