1.概念:ServletContext对象 ,叫做Servlet的上下文对象。表示一个当前的web应用环境。一个web应用中只有一 个ServletContext对象。
2.对象创建和得到:
创建时机:加载web应用时创建ServletContext对象。
得到对象: 从ServletConfig对象的getServletContext方法得到
可以这样设计:
public void init( ServletConfig config,ServletContext context ){ //多了一个参数
this.config = config; //得到ServletConfig对象;
this.context = context; //得到ServletContext对象;
}
Sun公司设计:
1)创建ServletContext对象 ServletContext context = new ServletContext()
2)创建ServletConfig对象 ServetConfig config = new ServletConfig();
class ServletConfig{
ServletContext context;
public ServletContext getServletContxt(){
return contxt;
}
}
public void init( ServletConfig config ){
得到ServletConfig对象
从ServletConfig对象中得到ServletContext对象
SerlvetContext context = config.getServletContext();
}
3.ServletContext核心API
java.lang.String getContextPath() --得到当前web应用的路径
java.lang.String getInitParameter(java.lang.String name) --得到web应用的初始化参数
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)
RequestDispatcher getRequestDispatcher(java.lang.String path) --转发(类似于重定向)
java.lang.String getRealPath(java.lang.String path) --得到web应用的资源文件
java.io.InputStream getResourceAsStream(java.lang.String path)
4. 得到web应用路径
java.lang.String getContextPath() 用在请求重定向的资源名称中
5.得到web应用的初始化参数(全局参数)
java.lang.String getInitParameter(java.lang.String name) --得到web应用的初始化参数
java.util.Enumeration getInitParameterNames()
注意:web应用参数可以让当前web应用的所有servlet获取,这里的web应用参数特指web全局参数,不是一个servlet中的配置参数。