`
shift8
  • 浏览: 149991 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

WebApplicationContext : org.springframework.web.context.ContextLoaderListener作用

阅读更多

如果您想要在自己所定义的Servlet类别中使用Spring的容器功能,则也可以使用 org.springframework.web.context.ContextLoaderListener,例如在web.xml中使用< listener>标签加以定义:

...
<listener>
    <listener-class>
      org.springframework.web.context.ContextLoaderListener
    </listener-class>
</listener>
...


ContextLoaderListener预设会读取applicationContext.xml,您可以指定自己的定义档,只要在<context-param>中指定"contextConfigLocation"参数,例如:

...
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/beans-config.xml,
           → /WEB-INF/demo-service.xml</param-value>
</context-param>
...


接着您可以在自定义的Servlet中使用 org.springframework.web.context.support.WebApplicationContextUtils,从 ServletContext中取得org.springframework.web.context.WebApplicationContext,例如: 

WebApplicationContext ctx =
    WebApplicationContextUtils.
        getRequiredWebApplicationContext(
                         this.getServletContext());


WebApplicationContext实作了ApplicationContext介面,是Spring专为Servlet的Web应用程式设计的 ApplicationContext实作类别,在取得WebApplicationContext之后,您可以利用它来取得Bean定义档中定义的 Bean实例,例如:
Date date = (Date) ctx.getBean("dateBean");


在不支援Listener设定的容器上(例如Servlet 2.2以更早的版本),您可以使用org.springframework.web.context.ContextLoaderServlet来取代上面的ContextLoaderListener的设定,例如:

...
<servlet>
    <servlet-name>contextLoader</servlet-name>
    <servlet-class>
      org.springframework.web.context.ContextLoaderServlet
    </servlet-class>  
    <load-on-startup>1</load-on-startup>
</servlet>
...


综合以上的叙述,撰写一个简单的范例来示范完整的组态方式,假设您撰写了一个简单的Servlet程式,作用为提供简单的报时功能,如下所示:

TimeServlet.java

package onlyfun.caterpillar; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import org.springframework.web.context.WebApplicationContext;import org.springframework.web.context.                                support.WebApplicationContextUtils; public class TimeServlet extends HttpServlet {     public void doGet(HttpServletRequest req,                     HttpServletResponse res)                   throws ServletException, IOException {         WebApplicationContext ctx =                 WebApplicationContextUtils.                    getRequiredWebApplicationContext(                        this.getServletContext());                PrintWriter out = res.getWriter();         out.println(ctx.getBean("dateBean"));     } }

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/taijianyu/archive/2008/10/29/3176263.aspx
这个Servlet中使用了WebApplicationContext来尝试取得dateBean,您可以在web.xml中定义ContextLoaderListener与Bean定义档的位置,例如:

web.xml
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="
http://java.sun.com/xml/ns/j2ee"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee    → http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"  version="2.4">    <session-config>        <session-timeout>            30        </session-timeout>    </session-config>        <context-param>        <param-name>contextConfigLocation</param-name>        <param-value>/WEB-INF/beans-config.xml</param-value>    </context-param>             <listener>        <listener-class>         org.springframework.web.context.ContextLoaderListener        </listener-class>    </listener>        <servlet>        <servlet-name>time</servlet-name>        <servlet-class>            onlyfun.caterpillar.TimeServlet        </servlet-class>    </servlet>    <servlet-mapping>        <servlet-name>time</servlet-name>        <url-pattern>/time.do</url-pattern>    </servlet-mapping>      </web-app>
在<context-param>的"contextConfigLocation"属性中,设定了Bean定义档的位置与名称,Bean定义档的内容如下所示:

beans-config.xml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC  "-//SPRING/DTD BEAN/EN"  "
http://www.springframework.org/dtd/spring-beans.dtd"> <beans>       <bean id="dateBean" class="java.util.Date" singleton="false"/></beans>
您可以连接至TimeServlet,结果会显示连接上的时间。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/taijianyu/archive/2008/10/29/3176263.aspx

分享到:
评论

相关推荐

    spring-web-2.5.jar

    org.springframework.web.context.ContextLoaderListener.class org.springframework.web.context.ContextLoaderServlet.class org.springframework.web.context.ServletConfigAware.class org.springframework.web....

    struts2驱动包

    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3843) at org....

    spring-simple-web:使用 Spring Framework 的简单 Web (WAR) 项目

    Web 应用程序使用 Spring Web 侦听器初始化,例如web.xml org.springframework.web.context.ContextLoaderListener 。 Spring Web 侦听器使用web.xml的contextConfigLocation上下文参数进行初始化。 此设置的...

    Spring的监听器ContextLoaderListener的作用

    &lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener&lt;/listener-class&gt; 这样, ContextLoaderListener 就会自动装配 spring 配置文件。 ContextLoaderListener 是 Spring 框架中一个非常重要的...

    Web项目中使用Spring, 使用 Spring 的器监听器 ContextLoaderListener.docx

    &lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener ``` 3. **指定Spring配置文件位置**: 在`web.xml`中通过`contextConfigLocation`指定Spring配置文件的位置,通常是在WEB-INF目录下...

    在Eclipse 中创建Spring的 Web应用.doc

    Spring框架提供了对Web应用的支持,其中包括`org.springframework.web.context.WebApplicationContext`接口。这个接口扩展了`ApplicationContext`,专门为Web应用设计,提供了处理HTTP请求和响应的能力。与传统的`...

    spring在web.xml中和在struts中的不同配置.[收集].pdf

    &lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener ``` `ContextLoaderListener`监听Web应用程序的启动和结束,它在服务器启动时加载`contextConfigLocation`指定的配置文件,并创建...

    Spring源码学习七:web应用自动装配Spring配置文件1

    &lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener &lt;context-param&gt; &lt;param-name&gt;contextConfigLocation classpath:applicationContext.xml; &lt;/context-param&gt; ``` 这段配置告诉Web...

    Spring与Web环境集成.pdf

    org.springframework.web.context.ContextLoaderListener 5. 通过工具获得应用上下文对象 使用WebApplicationContextUtils工具,我们可以获得应用上下文对象ApplicationContext,例如: ApplicationContext ...

    Spring中ApplicationContext加载机制

    org.springframework.web.context.ContextLoaderListener ``` 或者,使用 ContextLoaderServlet 可以增加以下配置信息: ```xml &lt;servlet-name&gt;context org.springframework.web.context....

    Spring-5.1.5源码

    在这个版本中,我们主要关注`spring-web`模块中的`org.springframework.web.context.ContextLoaderListener`类,它是Spring MVC应用的核心部分。 `ContextLoaderListener`是一个实现了`javax.servlet....

    精品专题(2021-2022年收藏)spring项目中监听器作用.doc

    &lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener &lt;context-param&gt; &lt;param-name&gt;contextConfigLocation &lt;param-value&gt;classpath:conf/spring/applicationContext.xml &lt;/context-param&gt; `...

    44 Spring控制器Controller如何设置AOP?慕课专栏1

    `ContextLoaderListener`创建的ApplicationContext存储在`ServletContext`的一个属性中,键为`"org.springframework.web.context.WebApplicationContext.ROOT"`,而`DispatcherServlet`创建的WebApplicationContext...

    Spring获取webapplicationcontext,applicationcontext几种方法详解

    `import org.springframework.web.context.support.WebApplicationContextUtils;` `ApplicationContext ac1 = WebApplicationContextUtils.getRequiredWebApplicationContext(ServletContext sc);` `...

    Spring整合Struts

    &lt;plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"/&gt; ``` 为了自定义配置文件的位置,可以使用"contextConfigLocation"属性: ```xml &lt;plug-in className="org.springframework.web....

    Spring与Web环境集成1

    &lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener ``` 这里,`contextConfigLocation`参数用于指定Spring配置文件的位置,通常是`classpath:`开头,表示在类路径下查找。 5. **通过...

    spring3.x的读书笔记3

    &lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener ``` 2. **ContextLoaderServlet启动WebApplicationContext** 对于不支持容器监听器的旧版Web容器,可以使用ContextLoaderServlet,...

    Spring 管理filter 和servlet

    &lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener ``` 4. **配置Filter代理或Servlet代理的mapping** 继续在`web.xml`中定义Filter代理或Servlet代理的mapping,指定其拦截的URL模式...

    Spring之WEB模块配置详解

    org.springframework.web.context.ContextLoaderListener ``` 在上面的代码中,我们使用了监听器来加载 Spring 的配置文件。 5. Spring WEB 模块的字符编码过滤器 在 Spring WEB 模块中,我们可以使用字符编码...

    spring配置.txtspring配置.txt

    &lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener &lt;servlet-name&gt;context &lt;servlet-class&gt;org.springframework.web.context.ContextLoaderServlet &lt;load-on-startup&gt;0 ``` - **...

Global site tag (gtag.js) - Google Analytics