一、什么是Servlet上下文?
Servlet上下文又叫做:ServletContext。
当WEB服务器启动时,会为每一个WEB应用程序(webapps下的每个目录就是一个应用程序)创建一块共享的存储区域
ServletContext也叫做“公共区域”,也就是同一个WEB应用程序中,所有的Servlet和JSP都可以共享同一个区域。
ServletContext在WEB服务器启动时创建,服务器关闭时销毁
容器在启动的时候,会为每一个web应用创建唯一的一个符合ServletContext接口的对象,该对象一般称之为"servlet上下文"。
二、如何获得Servlet上下文
- 方式一:GenericServlet提供了getServletContext()方法。
- 方式二:ServletConfig提供了getServletContext()方法。
- 方式三:HttpSession提供了getServletContext()方法。
- 方式四:HttpServletRequest提供了getServletContext()方法。
三、Servlet上下文的特点
作用:
1、获取真实路径 获取当前项目的发布路径
- request.getSelectContext().getRealPath("/");
2、获取容器的附加信息
- System.out.println(request.getServletContext().getServerInfo());
- System.out.println(request.getServletContext().getContextPath());
3、全局容器
//设置信息到全局容器中
- request.getServletContext().setAttribute("msg", "共享信息");
//获取数据
- System.out.println(request.getServletContext().getAttribute("msg"));
//移除数据
- request.getServletContext().removeAttribute("msg");
特点:
唯一性 : 一个应用对应一个Servlet上下文
一直存在:只要容器不关闭或者应用不卸载,servlet上下文就一直存在(共享信息)
四、servlet的路径
绝对路径:就是你的主页上的文件或目录在硬盘上真正的路径(url和物理路径)
相对路径:相对某个基准的路径,包含web的相对路径。例如:在servlet中“/”代表web应用的根目录