ServletContext

 安装在一个服务器中的一个特定URL名字空间(比如,/myapplication)下的所有Servlet,JSP,JavaBean等Web部件的集合构成了一个Web的应用,每一个Web应用(同一JVM),容器都会有一个背景对象,而javax.servlet.ServletContext接口就提供了访问这个背景对象的途径。 Servlet实例的getServletContext方法:得到该Servlet运行其中的这个背景对象。从这个背景对象中你可以访问如下信息或资源:(注意该方法不是ServletContext的方法而是获取背景对象的方法由于HttpServlet继承Servlet的关系GenericServlet类和HttpServlet类同时具有该方法):初始化参数 ServletContext.getInitParameter(String name)。存储在背境中的对象 context.getAttribute(String name) 与本背景关联的资源 ServletContext.getResource(String path) 日志 ServletContext.log(String msg) 以上所示方法均为ServletContext所提供,值得一提的是对于存储在背境中的对象访问方法常用的还有: context.setAttribute(String name, Object object);将特定名字绑定的任意类型的对象上。将把object对象绑定到名字name,存放在Servlet背景中,可供同一背景中的其他Servlet共享。其他Servlet可以通过context.getAttribute(String name),得到一个背景中的对象,或通过context.removeAttribute(String name)在背景中移除一个对象。

 

ServletContext对象是由谁创建的?
由Servlet容器负责创建,对于每个JavaWeb应用,在启动时,Servlet容器都会创建一个ServletContext对象

 

一. WEB容器启动时候 它会为每个web应用程序创建一个ServletContext对象 它代表当前web应用。
二. servletContext对象的获取:
   1. ServletContext对象被包含在ServletConfig对象中 所以可以通过ServletConfig 对象调用ServletConfig.getServletContext()获得对ServletContext对象的引用。
   2.在继承了HttpServlet对象的类中 可以通过this.getServletContext来获取。

 

三:由于一个web应用中的所有servlet共享一个ServletContext对象 所以可以通过ServletContext对象来实现Servlet之间的通讯。

 

Java代码 复制代码  收藏代码
  1. public void doGet(HttpServletRequest request, HttpServletResponse response)   
  2.     throws ServletException, IOException {   
  3.    ServletContext context=this.getServletContext();   
  4.    context.setAttribute("data""hello jsp");   
  5.    RequestDispatcher rd=context.getRequestDispatcher("/index.jsp");   
  6.           
  7.    rd.forward(request, response);   
  8.      
  9. }  
 
Java代码 复制代码  收藏代码
  1. <body>   
  2.        <%=application.getAttribute("data") %>   
  3. </body>  

来源:http://hi.baidu.com/jlhaoran/blog/item/7c74d1128e7ba30c203f2e2b.html

 

你可能感兴趣的:(java,Web,jsp,object,servlet,String)