引入
ServletContext对象,叫做Servlet的上下问对象,表示一个当前的Web应用环境.包含整个web.xml的全部信息.一个web应用中只有一个ServletContext对象
创建时间: 加载Web应用时创建对象
得到对象:通过ServletConfig对象的getServletContext() 方法获得
ServletContext对象核心Api:
获取当前Web应用的路径**
String getContextPath();
request.getContextPath(); // 该方法和上面的方法等价
获得web应用的初始化参数**
String getinitParameter(String name);
Enumeration getInitParameterNames();
![](https://img.haomeiwen.com/i1983465/73cacbaf875a5d26.png)
域对象有关的方法**
void setAttribute(String name, Object object);
Object getAttribute(String name);
void removeAttribute(String name);
转发(类似于重定向)
RequestDispatcher getRequestDispatcher(String path);
request.getRequestDispacher("路径").forward(request,response); // 该方法等价于上面的方法
// 实例代码
RequestDispatcher rds = this.getServletContext().getRequestDispatcher("/index.html");
rds.forward(request, response);
重定向和转发区别
转发:
1. 地址栏不会改变
2. 只能转发到当前web应用内的资源
3. 在转发过程中可以把数据保存在request对象中传递
重定向:
1. 地址栏会改变,变化为从定向的目标地址
2. 可以跳转到web应用内资源,或者其他web应用,甚至其他外部域名
3. 在重定向过程中,不能把数据保存在request对象中进行传递
总结: 如果要使用request域对象进行数据共享,只能用"转发"技术.
得到Web应用的资源文件
String getRealPath(String path)
InputStream getResourceAsStream(String path);
网友评论