👇每一个web应用都有且仅有一个ServletContext对象,又称为Application对象,从名称中可以得知,该对象是与应用程序相关的。在WEB容器启动的时候,会为每一个WEB应用程序创建一个对应的ServletContext对象。
作用:
👉(1)作为域对象用来共享数据,此时数据在整个应用程序中共享;
👉(2)该对象保存了当前应用程序相关信息。例如可以通过getServerInfo()方法获取当前服务器信息,getRealPath(String path)获取资源的真实路径等。
一、ServletContext对象的获取
1.通过request对象获取
2.通过session对象获取
3.通过servletConfig对象获取
//获取ServletContext对象
public class Servlet01 extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//通过request对象获取
ServletContext servletContext1 = req.getServletContext();
//通过session对象获取
ServletContext servletContext2 = req.getSession().getServletContext();
//通过ServletConfig对象获取
ServletContext servletContext3 = getServletConfig().getServletContext();
//直接获取
ServletContext servletContext4 = getServletContext();
//常用方法:
//1.获取当前服务器信息
String serverInfo = req.getServletContext().getServerInfo();
System.out.println("当前服务器的版本信息是:" + serverInfo);
//2.获取项目的真实路径
String realPath = req.getServletContext().getRealPath("/");
System.out.println("项目的真实路径是" + realPath);
}
二、ServletContext域对象
通过向其存取数据,可以使得整个应用程序共享程序某些数据。当然不建议存放过多数据,因为其里面的数据一旦存储进去就没有手动移出,将一直保存。
❤️
Servlet的三大域对象
1.request域对象
在一次请求中有效。请求转发有效,重定向失效。
2.session域对象
再一次会话中有效。请求转发和重定向都有效,session销毁后失效。
3.servletContext域对象
在整个应用程序中有效。服务器关闭后失效。