3.ServletContext接口
3.1.当前的WEB应用,一个WEB应用对应一个唯一的ServletConfig对象
3.2.在项目启动时创建,在项目卸载时销毁
3.3.通过ServletConfig的getServletContext()方法获取
3.4.通过ServletContext可以访问应用范围的初始化参数和属性
在web.xml中配置初始化参数:
<context-param>
<param-name>adminEmail</param-name>
<param-value>webmaster</param-value>
</context-param>
<context-param>元素是针对整个应用的,所以并不嵌套在某个<servlet>元素中,该元素是<web-app>元 素的直接子元素
3.5.可以获取资源的真实路径(物理路径),主要在文件的上传和下载时使用
3.6.可以作为一个域对象在不同的web资源之间共享数据
扩展:ServletContext和ServletConfig区别
1.ServletContext:对任何servlet,任何人在任何时间都有效,这才是真正全局的对象;
2. ServletConfig:从一个servlet被实例化后,对任何客户端在任何时候访问有效,但仅对本servlet有效,
一个servlet的ServletConfig对象不能被另一个servlet访问;
3.如果一个参数为整个web应用所用,那么就配置为ServletContext参数
代码示例:
<context-param>
<param-name>haha</param-name>
<param-value>huhu</param-value>
</context-param>
4.如果一个参数仅为一个Servlet所用,那么就应该配置为ServletConfig参数
代码示例:
<servlet>
<servlet-name>ServletParam</servlet-name>
<init-param>
<param-name>haha</param-name>
<param-value>heihei</param-value>
</init-param>
<servlet-class>web.servlet.ServletParam</servlet-class>
</servlet>
5.参数的获取
(1)访问ServletContext中的参数
<1>调用现有的ServletConfig对象的getServletContext()
<2>调用getInitParamter()方法就能获取参数
(2)访问ServletConfig中的参数
<1>ServletConfig对象后,调用getInitParameter()方法
(3)代码示例:
public class TestServletConfig extends HttpServlet {
ServletConfig config;
public void init(ServletConfig config) {
this.config=config;
}
public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException {
//访问ServletConfig中的参数
String filepath=(String)config.getInitParameter("haha");
System.out.println(filepath);//输出heihei
//访问ServletContext中的参数
String encode=(String)config.getServletContext().getInitParameter("haha");
System.out.println(encode); }//输出huhu
}