1. 概念
代表整个 web 应用, 可以和程序的容器 (服务器) 来通信
2. 获取
1. 通过 request 对象获取
request.getServletContext();
2. 通过 HttpServlet 获取
- this.getServletContext();
- package cn.itcast.Web.servletcontext;
- import javax.servlet.ServletContext;
- import javax.servlet.ServletException;
- import javax.servlet.annotation.WebServlet;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import java.io.IOException;
- @WebServlet("/servletContextDemo1")
- public class ServletContextDemo1 extends HttpServlet {
- protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- /*
- ServletContext 对象获取:
- 1. 通过 request 对象获取
- request.getServletContext();
- 2. 通过 HttpServlet 获取
- this.getServletContext();
- */
- //1. 通过 request 对象获取
- ServletContext context1 = request.getServletContext();
- //2. 通过 HttpServlet 获取
- ServletContext context2 = this.getServletContext();
- System.out.println(context1);
- System.out.println(context2);
- System.out.println(context1 == context2);//true
- }
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- this.doPost(request,response);
- }
- }
3. 功能
1. 获取 MIME 类型:
MIME 类型: 在互联网通信过程中定义的一种文件数据类型
格式: 大类型 / 小类型 text/html image/jpeg
获取: String getMimeType(String file)
- package cn.itcast.Web.servletcontext;
- import javax.servlet.ServletContext;
- import javax.servlet.ServletException;
- import javax.servlet.annotation.WebServlet;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import java.io.IOException;
- @WebServlet("/servletContextDemo2")
- public class ServletContextDemo2 extends HttpServlet {
- protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- /*
- ServletContext 功能:
- 1. 获取 MIME 类型:
- * MIME 类型: 在互联网通信过程中定义的一种文件数据类型
- * 格式: 大类型 / 小类型 text/HTML image/jpeg
- * 获取: String getMimeType(String file)
- 2. 域对象: 共享数据
- 3. 获取文件的真实 (服务器) 路径
- */
- //2. 通过 HttpServlet 获取
- ServletContext context = this.getServletContext();
- //3. 定义文件名称
- String filename = "a.jpg";//image/jpeg
- //4. 获取 MIME 类型
- String mimeType = context.getMimeType(filename);
- System.out.println(mimeType);
- }
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- this.doPost(request,response);
- }
- }
2. 域对象: 共享数据
- setAttribute(String name,Object value)
- getAttribute(String name)
- removeAttribute(String name)
ServletContext 对象范围: 所有用户所有请求的数据
- package cn.itcast.Web.servletcontext;
- import javax.servlet.ServletContext;
- import javax.servlet.ServletException;
- import javax.servlet.annotation.WebServlet;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import java.io.IOException;
- @WebServlet("/servletContextDemo3")
- public class ServletContextDemo3 extends HttpServlet {
- protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- /*
- ServletContext 功能:
- 1. 获取 MIME 类型:
- 2. 域对象: 共享数据
- 3. 获取文件的真实 (服务器) 路径
- */
- //2. 通过 HttpServlet 获取
- ServletContext context = this.getServletContext();
- // 设置数据
- context.setAttribute("msg","haha");
- }
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- this.doPost(request,response);
- }
- }
- package cn.itcast.Web.servletcontext;
- import javax.servlet.ServletContext;
- import javax.servlet.ServletException;
- import javax.servlet.annotation.WebServlet;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import java.io.IOException;
- @WebServlet("/servletContextDemo4")
- public class ServletContextDemo4 extends HttpServlet {
- protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- /*
- ServletContext 功能:
- 1. 获取 MIME 类型:
- 2. 域对象: 共享数据
- 3. 获取文件的真实 (服务器) 路径
- */
- //2. 通过 HttpServlet 获取
- ServletContext context = this.getServletContext();
- // 获取数据
- Object msg = context.getAttribute("msg");
- System.out.println(msg);
- }
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- this.doPost(request,response);
- }
- }
3. 获取文件的真实 (服务器) 路径
方法: String getRealPath(String path)
- package cn.itcast.Web.servletcontext;
- import javax.servlet.ServletContext;
- import javax.servlet.ServletException;
- import javax.servlet.annotation.WebServlet;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import java.io.File;
- import java.io.IOException;
- @WebServlet("/servletContextDemo5")
- public class ServletContextDemo5 extends HttpServlet {
- protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- /*
- ServletContext 功能:
- 1. 获取 MIME 类型:
- 2. 域对象: 共享数据
- 3. 获取文件的真实 (服务器) 路径
- */
- // 通过 HttpServlet 获取
- ServletContext context = this.getServletContext();
- // 获取文件的服务器路径
- String b = context.getRealPath("/b.txt");//Web 目录下资源访问
- System.out.println(b);
- // File file = new File(realPath);
- String c = context.getRealPath("/WEB-INF/c.txt");//Web-INF 目录下的资源访问
- System.out.println(c);
- String a = context.getRealPath("/WEB-INF/classes/a.txt");//src 目录下的资源访问
- System.out.println(a);
- }
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- this.doPost(request,response);
- }
- }
来源: http://www.bubuko.com/infodetail-3275463.html