Servlet ServletContext对象

ServletContext对象

作用

Request对象解决了一次请求内的数据共享问题, session对象解决了用户相同, 不同请求的数据共享问题. ServletContext解决了不同用户的数据共享问题.

原理

ServletContext 对象由服务器进行创建,一个项目只有一个对
象。不管在项目的任意位置进行获取得到的都是同一个对象,那
么不同用户发起的请求获取到的也就是同一个对象了,该对象由
用户共同拥有。

特点

  1. 服务器进行创建
  2. 用户共享
  3. 一个项目只有一个

生命周期

服务器启动到服务器关闭

作用域

项目内

使用

获取ServletContext对象

// 获取servletContext对象. 三种获取方式. 获得同一个对象
ServletContext servletContext = this.getServletContext();
ServletContext servletContext1 = this.getServletConfig().getServletContext();
ServletContext servletContext2 = req.getServletContext();

使用作用域进行共享数据流转

// 存储共享数据
servletContext.setAttribute("flag", false);

// 删除共享数据
servletContext.removeAttribute("flag");

// 取得共享数据
Boolean flag = (Boolean) servletContext.getAttribute("flag");

使用ServletContext获取web.xml中的全局配置

web.xml中配置全局属性

<context-param>
    <param-name>Hello</param-name>
    <param-value>你好</param-value>
</context-param>

使用ServletContext获取

String hello = servletContext.getInitParameter("Hello");
System.out.println("hello = " + hello);

获取webroot下资源流对象

// 获取资源流对象. 使用相对路径即可
InputStream resourceAsStream = servletContext.getResourceAsStream("img/1.jpg");
System.out.println("resourceAsStream = " + resourceAsStream);

获取webRoot下资源的绝对路径

// 获取资源的绝对路径
String realPath = servletContext.getRealPath("img/1.jpg");
System.out.println("realPath = " + realPath);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值