ServletContext
ServletContext 对象可以看做是web项目的法人.我们一个WEB项目 有 且只有一个ServletContext
创建: 随着项目的启动而创建
销毁:随着项目的关闭而销毁
获得:通过ServletConfig对象的 getServletContext方法获得.
功能:
1.可以获得项目参数
2.是Servlet技术中的3个域对象之一
3.获得项目内的资源
功能详解:
1>获得项目参数
String getInitParameter(String name)Enumeration getInitParameterNames()
2>域功能
Servlet三大域application
request
session
jsp技术中的域
page
域用于服务器组件之间的通讯(例如:两个servlet之间通讯).
域的实质就是map.
application域 就是在整个项目内共享数据的map.
*操作域的方法:
void setAttribute(String key,Object value);
Object getAttribute(String key);
Enumeration<String> getAttributeNames();
void removeAttribute(String key);
3>获得项目内资源
// 该方法使用相对路径获得 资源的流 其中 "/" ==> 项目根下 WebRootInputStream sc.getResourceAsStream();
// 使用相对路径获得绝对路径
String sc.getRealPath("/student.xml");
使用Class获得项目内资源
//获得当前servlet的Class文件
Class c = this.getClass();
//2 根据Class 获得资源
//也是根据相对路径获得字节流
// 填写相对路径时分为两种情况
// "/"开头 : "/"=>代表classes目录
// 不以"/"开头: 会以当前class所在包为根
InputStream is = c.getResourceAsStream("student.xml");
System.out.println(is);
//获得web-inf/classes下的student.xml的流
InputStream is2 = c.getResourceAsStream("/student.xml");
System.out.println(is2);
//也可以获得绝对路径
URL url = c.getResource("/student.xml");
System.out.println(url.getPath());