安装在一个服务器中的一个特定url名字空间(比如,/myapplication)下的所有servlet,jsp,javabean等web部件的集合构成了一个web的应用,每一个web应用(同一jvm),容器都会有一个背景对象,而javax.servlet.servlet context接口就提供了访问这个背景对象的途径。你可以通过一个servlet实例的getservlet context方法得到该servlet运行其中的这个背景对象。从这个背景对象中你可以访问如下信息或资源:
◆初始化参数
◆存储在背境中的对象
◆与本背景关联的资源
◆日志
可以调用servlet context.getinitparameternames()返回一个初始化参数的枚举对象(java.util.enumeration),或直接指定一个参数名来得到特定的参数值:servlet context.getinitparameter(string name)。
另外,在servlet的背景中还可以存放与特定名字绑定的任意类型的对象,比如:
context.setattribute(string name, object object);
将把object对象绑定到名字name,存放在servlet背景中,可供同一背景中的其他servlet共享。其他servlet可以通过context.getattribute(string name),得到一个背景中的对象,或通过context.removeattribute(string name)在背景中移除一个对象。
一个特定资源的url可以通过调用servlet context.getresource(string path)得到,这儿的path参数必须以“/”开始,将被解析为相对于当前servlet背景的根的相对路径。这个方法有别于基于类加载器的java.lang.class.getresource方法。如果你通过servlet context.getresource方法请求了一个.jsp页面,你得到的将是jsp的源码,要得到执行结果,可以使用requestdispatcher对象的include方法。你也可以直接以输入流的形式得到资源,
public inputstream getresourceasstream(string path);
servlet context提供了日志的支持,你可以简单的通过调用servlet context.log(string msg),或servlet context.log(string msg,throwable throwable)方法,向底层的servlet日志记录写入日志信息,后者还可写入异常信息和throwable的跟踪栈