什么是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)
这种方式的不足:当你的web项目运行在别人的电脑上,而那个电脑不存在D盘或者Tomcat没有在D盘根目录,那么上述书写方式就会报错,File not Found
书写方式2:
动态获取(获取到)解决上述问题