1 Web应用共享数据区ServletContext接口
ServletContext接口表示一个web应用的上下文。可以想象成一个web一个能用的共享数据区域,该区域保存整个web共享数据。
1.1 Servlet容器何时创建ServeltContext接口实现类
当一个web应用启动的时候,就会创建该ServletContext接口的实现类。我们可以在根据需求,读写ServletContext这个web共享区的数据,那么如何获得ServletContext这个实例呢?下面提供了两种方法
1.2 如何获得ServletContext接口实例
方法1:
可以通过ServletConfig接口的getServletContext()方法获得
方法2:
通过GenericServlet抽象类的getServletContext()方法获得,不过这个方法其实也是调用了ServletConfig的getServletContext()方法
在GenericServlet.java中
- public ServletConfiggetServletConfig(){
- return config;
- }
- public ServletContextgetServletContext(){
- return getServletConfig().getServletContext();
- }
ServletConfig接口:
- public interface ServletConfig
- {
- public abstract StringgetlnitParameter(Stringname); //取得servlet起始参数值(string)
- public abstract EnumerationgetlnitParameterNames(); //取得servlet起始参数名称(Enumeration)
- public abstract ServletContextgetServletContext(); //取得servletcontext对象(servletcontext)
- public abstract string getservletname(); //取得servle的名称(string)
- }
public interface ServletConfig
ServletConfig :从一个servlet被实例化后,对任何客户端在任何时候访问有效,但仅对servlet有效,一个servlet的ServletConfig对象不能被另一方面个servlet访问。
ServletContext:真正全局对象。
在web.xml中
下面就相当于一个ServletConfig对象。
-
<
init-param
>
-
<
param-name
>
Copration
</
param-name
>
-
<
param-value
>
DongDong
</
param-value
>
-
</
init-param
>
- < init-param >
- < param-name > Copration </ param-name >
- < param-value > DongDong </ param-value >
- </ init-param >
通过 ServletConfig 对象的
public String getInitParameter(String name); 或
public Enumeration getInitParameterNames();
方法来取得你已经配置好的参数,也就是说,你对
servlet的配置都已经记录在ServletConfig对象中了
。
结论:你对Servlet的配置,在Servlet的初始化时都由容器来收集并且记录到ServletConfig的实现类中。
转自:
http://lewis-q.iteye.com/blog/161814