版权声明:本文为setlilei原创文章 未经博主允许不得转载 https://blog.csdn.net/setlilei/article/details/84679780
①ServletContext对象(域对象)
生命周期 : 创建 该web应用被加载(服务器启动) 销毁 该web应用被卸载
ServletContext 代表一个web应用的对象 内部封装该web应用的信息
作用 : 获得web应用全局的初始化参数 获得web应用任何资源绝对路径
<!--web.xml配置初始化参数-->
<context-param>
<param-name>driver</param-name>
<param-value>Servlet-Context</param-value>
</context-param>
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ServletContext context = getServletContext();
String parameter = context.getInitParameter("driver");
System.out.println(parameter);
}
//console 输出 Servlet-Context
ServletContext获取资源路径(相对于web应用 即tomcat\webapps\项目名下)
ServletContext context = getServletContext();
/*getRealPath() 里面的参数 第一个 '/' 可不写 Java工程不能写*/
//获取src下的A.file文件
String str_a = context.getRealPath("/WEB-INF/classes/A.file");
System.out.println(str_a);
//获取WebContent下的B.file文件
String str_b = context.getRealPath("/B.file");
System.out.println(str_b);
//获取WEB-INF下的C.file文件
String str_c = context.getRealPath("/WEB-INF/C.file");
System.out.println(str_b);
//获取项目根目录下的D.file文件
无法获取 原因 web应用发布时把WebContent下的所有文件复制tomcat根目录
把src下的文件编译成class文件 复制到tomcat根目录/WEB-INF/classes/下
而项目根目录下的直接文件不参与发布 (开发环境目录 和 运行环境目录区别)
console 输出
D:\apache-tomcat-8\webapps\项目名\WEB-INF\classes\A.file
D:\apache-tomcat-8\webapps\项目名\B.file
D:\apache-tomcat-8\webapps\项目名\WEB-INF\C.file
类加载器获取资源路径(相对于classes 即tomcat\webapps\项目名\WEB-INF\classes\下)
//获取src下的A.file文件
/*getPath() 里面的参数 第一个字符不可为 '/' */
String path = Test.class.getClassLoader().getResource().getPath("A.file");
System.out.println(path);
console 输出
/D:/apache-tomcat-8/webapps/项目名/WEB-INF/classes/A.file
ServletContext对象存取值
ServletContext context = getServletContext();
//存 键为 name 值为 test
context.setAttribute("name","test");
//取 键为 name 的值
context.getAttribute("name");