ServletContext

ServletContext, 此接口是WEBAPP的上下文.代表当前web应用.

1.servlet容器启动时,会为每个webAPP创建一个servletContext.

2.ServletConfig对象中维护了ServletContext对象的引用,开发人员在编写servlet时,可以通过ServletConfig.getServletContext方法获得ServletContext对象。

3.由于一个WEB应用中的所有Servlet共享同一个ServletContext对象,因此Servlet对象之间可以通过ServletContext对象来实现通讯。ServletContext对象通常也被称之为context域对象。

    多个Servlet通过ServletContext对象实现数据共享。

InitServletService方法中利用ServletContext对象存入需要共享的数据

/*获取ServletContext对象*/  

ServletContext context = this.getServletContext();   

//存入共享的数据    

context.setAttribute("name", "haha"); 

在其它的Servlet中利用ServletContext对象获取共享的数据   

/*获取ServletContext对象*/  

ServletContext context = this.getServletContext();   

//获取共享的数据   

String name = context.getAttribute("name");   

System.out.println("共享的内容值是:"+name);  

 

4.获取WEB应用的初始化参数。

<web-app>   

 <context-param>   

<param-name>url</param-name>   

<param-value>jdbc:mysql://localhost:3306/4g</param-value>   

 </context-param>   

<context-param>   

 <param-name>password</param-name>   

 <param-value>1314qr</param-value>   

 </context-param>   

 <context-param>   

  <param-name>user</param-name>   

  <param-value>root</param-value>   

  </context-param>   

</web-app>  

 

 5.对Distributed的Web Application来说,每个JVM下的Web Application都有一个独立的ServletContext,因而ServletContext不可以作为全局信息存储的地方,因而它并没有分布式信息同步的功能,即它只是本地的ServletContext。在Servlet中,使用ServletConfig实例可以获取ServletContext实例。

 

/*****************************************************************************************/

以下为该接口的重要方法.

1.    // 通过给定一个Context Path以在当前Servlet Container中找到其对应的ServletContext实例。

     // 可以通过该方法获取Servlet Container中定义的另一个Web Application的ServletContext实例,并获得其RequestDispatcher,并将当前请求Dispatch到那个Web Application中做进一步的处理。这里的uripath必须以"/"开头,且其路径相对于当前Server的根路径。出于安全考虑,该方法可能会返回null。
     // 在Jetty的实现中,这里uripath可以是一个具体的路径,并且支持查找最准确的匹配。如:对uripath为/foo/goo/abc.html,在Server中由以下Context Path定义:"/", "/foo", "/foo/goo",则最终查找到的ServletContext为"/foo/goo"作为Context Path对应的ServletContext实例。
     public  ServletContext getContext(String uripath);   查看详细在此 http://www.blogjava.net/DLevin/archive/2014/05/11/413395.html

猜你喜欢

转载自jiazhaokeji.iteye.com/blog/2115439