目录
1. 作为域对象
1.1 ServletContext对象--存储数据
1.2 ServletContext对象--获取数据
1.3 ServletContext对象--删除数据
2. 获取MIME类型
3. 获取文件的真实(服务器)路径
3.1 获取web目录下的资源
3.2 获取WEB-INF目录下的资源
3.3 获取src目录下的资源
1. 作为域对象
域对象指的是对象有作用域(即作用范围)。域对象可以实现数据的共享。不同作用范围的域对象,共享数据的能力也不一样。
在 Servlet 规范中,一共有 4 个域对象。ServletContext 就是其中的一个。它也是 web 应用中最大的作用域,也叫 application 域。它可以实现整个应用之间的数据共享!
返回值 | 方法名 | 说明 |
---|---|---|
void | setAttribute(String name,Object value) | 向域对象中存储数据 |
Object | getAttribute(String name) | 通过名称获取域对象中的数据 |
void | removeAttribute(String name) | 通过名称移除域对象中的数据 |
1.1 ServletContext对象--存储数据
@WebServlet("/aa")
public class Servlet01 extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//ServletContext作为域对象存储数据
//1.获取ServletContext对象
ServletContext servletContext = this.getServletContext();
//2.向ServletContext对象存数据
servletContext.setAttribute("Chinese","文明古国");
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
}
1.2 ServletContext对象--获取数据
@WebServlet("/bb")
public class Servlet02 extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1.获取ServletContext对象
ServletContext servletContext = this.getServletContext();
//2.从ServletContext对象中获取数据
Object Chinese= servletContext.getAttribute("Chinese");
System.out.println("Chinese= " + Chinese);
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
}
1.3 ServletContext对象--删除数据
@WebServlet("/cc")
public class Servlet03 extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1.获取ServletContext对象
ServletContext servletContext = this.getServletContext();
//2.从ServletContext对象中删除数据
servletContext.removeAttribute("Chinese");
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
}
2. 获取MIME类型
MIME类型:在互联网通信过程中定义的一种文件数据类型,每一个类型的文件都有对应MIME类型格式: 大类型/小类型 例如: text/html image/jpeg。
返回值 | 方法名 | 说明 |
---|---|---|
String | getMimeType(String filename) | 根据文件名获取该文件对应的MIME类型 |
@WebServlet("/dd")
public class Servlet04 extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//ServletContext获取MIME类型
//1.获取ServletContext对象
ServletContext servletContext = this.getServletContext();
//2.根据文件名获取MIME类型
String mimeType = servletContext.getMimeType("a.html");
System.out.println("mimeType = " + mimeType);
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
}
3. 获取文件的真实(服务器)路径
真实路径也叫服务器路径。举个例子,你在本地工作空间里存储着一份你的项目,同时你在你的服务器上也存储着同样的项目。那么你访问的时候是访问本地空间里的项目呢,还是访问服务器上的项目。显然是服务器上的路径。所以 真实路径也叫服务器路径。
返回值 | 方法名 | 说明 |
---|---|---|
String | getRealPath(String path) | 获取文件的真实路径 |
在项目中,文件结构如下, a.txt在src路径下, b.txt在web目录下, c.txt在WEB-INF目录下:
文章来源:https://www.toymoban.com/news/detail-458302.html
3.1 获取web目录下的资源
//1.获取ServletContext类型
ServletContext servletContext = this.getServletContext();
//2. web目录下的资源
String realPathB = servletContext.getRealPath("/b.txt");
System.out.println("realPathB = " + realPathB);
3.2 获取WEB-INF目录下的资源
//1.获取ServletContext类型
ServletContext servletContext = this.getServletContext();
//2.WEB-INF目录下的资源
String realPathC = servletContext.getRealPath("/WEB-INF/c.txt");
System.out.println("realPathC = " + realPathC);
3.3 获取src目录下的资源
//1.获取ServletContext类型
ServletContext servletContext = this.getServletContext();
//2. src目录下的资源
String realPathA = servletContext.getRealPath("/WEB-INF/classes/a.txt");
System.out.println("realPathA = " + realPathA);
如果对你有帮助,请帮我点一下赞,我才有动力继续创作,谢谢!文章来源地址https://www.toymoban.com/news/detail-458302.html
到了这里,关于ServletContext(二)-- ServletContext对象的作用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!