ServletContext是一个容器(域对象)可以存储键值对数据(String key,Object value),保存在ServletContext中的数据不仅可以提供给所有的servlet使用,而且可以在整个项目范围内使用;
服务器会在启动的时候,就为它所托管的每一个项目都创建一个ServletContext实例对象,并且每个项目中有且只有一个ServletContext实例对象;
获取Servlet上下文方式
GenericServlet提供了getServletContext()方法 ServletConfig提供了getServletContext()方法 HttpSession提供了getServletContext()方法 HttpServletRequest提供了getServletContext()方法
获取MIME类型
MIME类型:在互联网通信过程中定义的一种文件数据类型 格式: 大类型/小类型 text/html image/jpeg String getMimeType(String file)
ServletContext作为域对象
ServletContext getServletContext() 获取ServletContext对象 void setAttribute(String name, Object object) 往servletcontext容器中存入数据,name为数据名称,object为数据的值 Object getAttribute(String name) 从ServletContext中获取数据,根据指定的数据名称 void removeAttribute(String name) 从ServletContext中移除数据,根据指定的数据名称
ServletContext对象范围:所有用户所有请求的数据
只要容器不关闭或者应用不关闭,Servlet上下文就一直存在 ;
ServletContext获取资源文件的真实路径
ServletContext context = request.getServletContext(); // src目录下的src.txt String src_path = context.getRealPath("/WEB-INF/classes/src.txt"); //找不到路径 System.out.println(src_path); // WEB-INF目录下的web-inf.txt String webInfPath = context.getRealPath("/WEB-INF/web-inf.txt"); System.out.println(webInfPath); // web目录下的web.txt String webPath = context.getRealPath("/web.txt"); System.out.println(webPath);
原文:https://www.cnblogs.com/coder-zyc/p/10632722.html