ServletContext简介

什么是SercletContext

ServletContext官方叫servlet上下文。服务器会为每一个工程创建一个对象,这个对象就是ServletContext对象。这个对象全局唯一,而且工程内部的所有servlet都共享这个对象。所以叫全局应用程序共享对象。

eg:我们登录一些网站可以看到在线人数、或者是当前的时间、又或者blibli上的有3人正在观看,这些数据只要你进入那个网站都可以看到,也就是说所有用户共享那些数据。

ServletContext解决了什么问题

解决:不同用户对同一数据的共享问题。

Servlet的生命周期

从服务器开启到服务器关闭

Servlet的创建

1.ServletContext sc = this.getServletContext();

2.ServletContext sc = this.getServletConfig().getServletContext();

3.ServletContext sc = req.getSession().getServletContext();

数据的存储

sc.setAttribute(String name ,Object value)

数据的获取

sc.getAttribute(String name)返回Object类型,不存在返回null

如果ServletContext只是做这一件事的话功能就太单一了,所以ServletContext还附带了一些其他的功能:

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

首先介绍web.xml全局配置的设置

sc.getInitParameter(String param-name)

获取 webroot 下项目资源流对象
书写方式1:

 这种方式的不足:当你的web项目运行在别人的电脑上,而那个电脑不存在D盘或者Tomcat没有在D盘根目录,那么上述书写方式就会报错,File not Found

书写方式2:

 动态获取(获取到)解决上述问题

获取 webroot 下资源绝对路径
 
不一样的烟火
原文地址:https://www.cnblogs.com/cstdio1/p/11668527.html