目录
1.概念
每一个Web Project,运行时都部署在Tomcat下,称为一个应用。部署后,启动Tomcat时,Tomcat将为每一个应用创建一个对象,这个对象称之为上下文对象。一个应用有且只有一个上下文对象,由容器创建,并保存在容器上。
2.作用
1.上下文对象类似一个全局变量,在整个应用中有效。
2.利用上下文对象,可以实现多个用户间的数据共享。Servlet API中定义了ServletContext接口,用来封装上下文对象。
3.方法
类型 方法名称 说明
void setAttribute(String key,Object value) 以key,value的形式保存对象值
Object getAttribute(String key) 通过key获取对象值
String getInitParameter(String key) 返回上下文参数的值
String getRealPath(String path) 根据虚拟路径返回实际路径
其中,getServletContext()中的方法getRealPath()其作用是获取项目运行目录的路径。
该方法继承自父类HttpServlet
//声明上下文对象
ServletContext sc;
//获得ServletContext对象
sc = this.getServletContext();
//获取项目中文件的绝对路径
String path = sc.getRealPath("WEB-INF/count.txt");
//获取项目在服务器的绝对路径
String path = sc.getRealPath("/");
//在控制台输出路径
System.out.println(path);
getRealPath获取的东西不一样,网页地址栏输出也会有所不同
servletContext.getRealPath(""); -->列: E:\apache-tomcat项目名
servletContext.getRealPath("/"); -->列: E:\apache-tomcat\项目名\
servletContext.getRealPath("/文件名"); -->列: E:\apache-tomcat\项目名\文件名
4.如何获取上下文对象
1.Servlet类中常用的获取上下文对象的方法
-Servlet直接调用getServletContext方法返回ServletContext对象
ServletContext sc = this.getServletContext();
if(sc.getAttribute("a")){
}
2.JSP文件中使用上下文对象的方法
-JSP文件的内置对象application即上下文对象,可以调用ServletContext接口中的任意方法
<%=application.getAttribute("") %>