web.xml/servlet监听器之引入spring

spring在ServletContext加载的时候就生效了,通过Listener来引入的

<listener>

 <listener-class>

  org.springframework.web.context.ContextLoaderListener

 </listener-class>

</listener>

ContextLoaderListener监听器的作用就是启动Web容器时,自动装配ApplicationContext的配置信息。因为它实现了ServletContextListener这个接口,在web.xml配置这个监听器,启动容器时,就会默认执行它实现的方法。至于ApplicationContext.xml这个配置文件部署在哪,如何配置多个xml文件,书上都没怎么详细说明。现在的方法就是查看它的API文档。在ContextLoaderListener中关联了ContextLoader这个类,所以整个加载配置过程由ContextLoader来完成。看看它的API说明。

第一段说明ContextLoader可以由 ContextLoaderListener和ContextLoaderServlet生成。如果查看ContextLoaderServlet的API,可以看到它也关联了ContextLoader这个类而且它实现了HttpServlet这个接口。

第二段,ContextLoader创建的是 XmlWebApplicationContext这样一个类,它实现的接口是WebApplicationContext->ConfigurableWebApplicationContext->ApplicationContext->BeanFactory这样一来spring中的所有bean都由这个类来创建

第三段,讲如何部署applicationContext的xml文件。

如果在web.xml中不写任何参数配置信息,默认的路径是/WEB-INF/applicationContext.xml,在WEB-INF目录下创建的xml文件的名称必须是applicationContext.xml;

如果是要自定义文件名可以在web.xml里加入contextConfigLocation这个context参数:
<context-param>  
       <param-name>contextConfigLocation</param-name>  
       <param-value>  
           /WEB-INF/classes/applicationContext-*.xml  
       </param-value>  
   </context-param>  
在<param-value> </param-value>里指定相应的xml文件名,如果有多个xml文件,可以写在一起并一“,”号分隔。上面的applicationContext-*.xml采用通配符,比如这那个目录下有applicationContext-ibatis-base.xml,applicationContext-action.xml,applicationContext-ibatis-dao.xml等文件,都会一同被载入。

由此可见applicationContext.xml的文件位置就可以有两种默认实现:

第一种:直接将之放到/WEB-INF下,之在web.xml中声明一个listener;

第二种:将之放到classpath下,但是此时要在web.xml中加入<context-param>,用它来指明你的applicationContext.xml的位置以供web容器来加载。按照Struts2 整合spring的官方给出的档案,写成:
<context-param>  
   <param-name>contextConfigLocation</param-name>  
   <param-value>/WEB-INF/applicationContext-*.xml,classpath*:applicationContext-*.xml</param-value>
< /context-param>

参考:ContextLoaderListener作用详解

时间: 2024-08-02 23:23:50

web.xml/servlet监听器之引入spring的相关文章

web.xml/servlet过滤器之引入CharacterEncodingFilter

配置CharacterEncodingFilter过滤器,你可以强制将请求或者相应设置成utf-8,规避乱码的风险. <filter>  <filter-name>SetCharacterEncoding</filter-name>  <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  <init-param>   &

Spring学习(一)tomcat加载web.xml、以及项目集成Spring支持

tomcat容器加载web.xml 一. 1 .启动一个 WEB 项目的时候, WEB 容器会去读取它的配置文件 web.xml ,读取 <listener> 和 <context-param> 两个结点. 2 .紧急着,容创建一个 ServletContext ( servlet 上下文),这个 web 项目的所有部分都将共享这个上下文. 3 .容器将 <context-param> 转换为键值对,并交给 servletContext . 4 .容器创建 <li

web.xml中的contextConfigLocation在spring中的作用

在web.xml中通过contextConfigLocation配置spring, contextConfigLocation参数定义了要装入的 Spring 配置文件. 如果想装入多个配置文件,可以在 <param-value>标记中用逗号作分隔符或通配符. 在web.xml里配置Listener web.xml 代码如下: <listener> <listener-class>org.springframework.web.context.ContextLoader

Java Web开发——Servlet监听器

一.Servlet监听器的概念 Servlet监听器是Servlet规范中定义的一种特殊类,用于监听ServletContext.HttpSession和ServletRequest等域对象的创建与销毁事件,以及监听这些域对象中属性发生修改的事件. 监听对象: 1.ServletContext:application,整个应用只存在一个 2.HttpSession:session,针对每一个对话 3.ServletRequest:request,针对每一个客户请求 监听内容:创建.销毁.属性改变

web.xml中监听器如何顺序加载

最近用到在Tomcat服务器启动时自动加载数据到缓存,这就需要创建一个自定义的缓存监听器并实现ServletContextListener接口, 并且在此自定义监听器中需要用到Spring的依赖注入功能. 在web.xml文件中监听器配置如下: Xml代码 <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </lis

web.xml servlet、servlet-mapping配置

Servlet常称为服务器端小程序,即运行在服务器端的程序,用于处理及响应客户的请求. Servlet类是个特殊的java类,继承于HttpServlet. --------------------------------------------------------------- 方法 客户端通常只有GET和POST两种请求方式,Servlet为了响应则两种请求,必须重写doGet()和doPost()方法.大部分时候,Servlet对于所有的请求响应都是完全一样的,此时只需要重写servi

web.xml上监听器作用

<!--Spring ApplicationContext 载入 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- 使Spring支持request与session的scope,如:<bean id="loginAction" c

【转】web.xml中的contextConfigLocation在spring中的作用

一.spring中如何使用多个xml配置文件 1.在web.xml中定义contextConfigLocation参数,Spring会使用这个参数去加载所有逗号分隔的xml文件,如果没有这个参数,spring会默认加载WEB-INF/applicationContext.xml文件(若没有,要新建一个). 例如: <context-param> <param-name>contextConfigLocation</param-name> <param-value&

web.xml/servlet过滤器之压缩UrlRewriteFilter

UrlRewriteFilter主要是来对前端请求的链接重新解释一遍,给后端处理.比如所前端本来想请求一个action,但是这个action会在浏览器里暴露,为了不暴露这个连接,可以使用UrlRewriteFilter,前端请求一个静态的链接,这个链接经过UrlRewriteFilter转换成action的地址. UrlRewriteFilter是一个用于改写URL的Web过滤器,类似于Apache的mod_rewrite.适用于任何Web应用服务器(如 Resin,Orion,Tomcat等)