1. ServletContext概述
- 全局对象,也拥有作用域,对应一个Tomcat中的Web应用
- 当Web服务器启动时,会为每一个Web应用程序创建一块共享的存储区域(ServletContext)
-
ServletContext在Web服务器启动时创建,服务器关闭时销毁。
2.获取ServletContext对象
-
GenericServlet提供了getServletContext()方法。this.getServletContext();
-
HttpServletRequest提供了getServletContext()方法;
-
HttpSession提供了getServletContext()方法。
package com.qf.servletProject.servlet.controller;
import com.mysql.cj.Session;
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 javax.servlet.http.HttpSession;
import java.io.IOException;
import java.net.HttpURLConnection;
@WebServlet(name = "ServletContextController",value = "/ctxController")
public class ServletContextController extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 1. 通过this.getServletContext();
ServletContext servletContext = this.getServletContext();
// 2.通过request对象获取
ServletContext servletContext1 = request.getServletContext();
// 3.通过session对象获取
HttpSession session = request.getSession();
ServletContext servletContext2 = session.getServletContext();
System.out.println(servletContext);
System.out.println(servletContext1);
System.out.println(servletContext2);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
}
- 如上代码中,使用了三种方式创建了ServletContext对象,需要明确的是,这三个对象是同一个。
3. ServletContext作用
3.1 获取项目真实路径
3.2 获取项目上下文路径
3.3 全局容器
3.4 ServletContext特点
作用域总结
网友评论