ServletContext对象

1.ServletContext概述

  • 代表整个web应用,可以和程序的容器(服务器)来通信

  • 获取:

    1. 通过request对象获取,request.ServletContext();

    2. 通过HttpServlet获取:直接调用this.ServletContext();

  • 功能

    1. 获取MIME类型
    2. 域对象:共享数据
    3. 获取文件的真实(服务器)路径

2.获取MIME类型

  • MIME类型:在互联网通信过程中定义的一种文件数据类型

    • 格式:大类型/小类型 text/html image/jpg

    • 在服务器安装目录下/conf/web.xml中有对应关系

  • 获取:ServletContext对象调用**getMimeType(String file)**方法

3.域对象

  1. 方法

    • setAttribute(String name,Object value)

    • getAttribute(String name)

    • removeAttribute(String name)

  2. ServletContext对象范围:共享所有用户请求的数据

4.获取文件服务器

  1. 方法:getRealPath(String path)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@WebServlet("/ServletContextDemo3")
public class ServletContextDemo3 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取ServletContext对象
ServletContext context = this.getServletContext();
//获取文件的服务器真实路径
//1.获取web目录下的a.txt
String bPath = context.getRealPath("/a.txt");
System.out.println(bPath);
//2.获取WEB-INF目录下的c.txt
String cPath = context.getRealPath("/WEB-INF/c.txt");
System.out.println(cPath);
//3.获取src目录下的a.txt
String aPath = context.getRealPath("/WEB-INF/classes/a.txt");
System.out.println(aPath);
}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
}