ServletContext对象叫servlet上下文对象。 一个网站只会创建一个ServletContext对象。代表的是整个网站的环境信息
ServletContext对象的获取:
ServletContext对象存在于ServletConfig对象中,所以要获取ServletContext对象要先获取ServletConfig对象;
获取方法
this.getServletConfig().getServletContext();
this.getServletContext();//(该方法的内部还是调用了上面的方法)
由于一个网站只会创建一个ServletContext对象,所以在不同的servlet中都可以获取ServletContext,且该ServletContext都是一样的
ServletContext的5大作用:
- 获取web的上下文路径
java.lang.String getContextPath() - 获取全局参数
java.lang.String getInitParameter(java.lang.String name)
java.util.Enumeration getInitParameterNames() - 和域对象相关的
void setAttribute(java.lang.String name, java.lang.Object object)
java.lang.Object getAttribute(java.lang.String name)
void removeAttribute(java.lang.String name)
什么是域对象?
域对象在不同的资源之间来共享数据。保存数据,获取数据
Servlet三个域对象:
- ServletContext
- HttpServletRequest
- HttpSession
-
请求转发的
RquestDispatcher getRequestDispatcher(java.lang.String path)在servlet跳转页面: 请求重定向: 1)地址栏会发送改变,变成重定向到的地址。 2)可以跳转到项目内的资源,也可以跳转项目外的资源 3)浏览器向服务器发出两次请求,那么就不能使用请求来作为域对象来共享数据。 请求转发: 1)地址栏不会改变。 2)只能跳转到项目内的资源,不能跳转到项目外的资源 3)浏览器向服务器发出一次请求,那么可以使用请求作为域对象共享数据。 5)读取web项目的资源文件 java.lang.String getRealPath(java.lang.String path) java.io.InputStream getResourceAsStream(java.lang.String path) java.net.URL getResource(java.lang.String path)