web.xml配置文件解读

1.启动一个WEB项目的时候,容器(如:Tomcat)会去读它的配置文件web.xml.读两个节点: <listener></listener> 和 <context-param></context-param>2.紧接着,容器创建一个ServletContext(上下文),这个WEB项目所有部分都将共享这个上下文.3.容器将<context-param></context-param>转化为键值对,并交给ServletContext.4.容器创建<listener></listener>中的类实例,即创建监听.5.在监听中会有contextInitialized(ServletContextEvent args)初始化方法,在这个方法中获得ServletContext = ServletContextEvent.getServletContext();context-param的值 = ServletContext.getInitParameter("context-param的键");6.得到这个context-param的值之后,你就可以做一些操作了.注意,这个时候你的WEB项目还没有完全启动完成.这个动作会比所有的Servlet都要早.换句话说,这个时候,你对<context-param>中的键值做的操作,将在你的WEB项目完全启动之前被执行.7.举例.你可能想在项目启动之前就打开数据库.那么这里就可以在<context-param>中设置数据库的连接方式,在监听类中初始化数据库的连接.8.这个监听是自己写的一个类,除了初始化方法,它还有销毁方法.用于关闭应用前释放资源.比如说数据库连接的关闭.

也可以把<context-param>理解为全局变量,提高给整个项目共用。

org.springframework.web.context.ContextLoaderListener:

用法

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参数:

contextConfigLocation 
  /WEB-INF/classes/applicationContext-*.xml

在里指定相应的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中加入,用它来指明你的applicationContext.xml的位置以供web容器来加载。按照 Struts2 整合spring的官方给出的档案,写成:

contextConfigLocation 
/WEB-INF/applicationContext-*.xml,classpath*:applicationContext-*.xml

				
时间: 2024-10-11 11:04:43

web.xml配置文件解读的相关文章

web.xml详细解读(flex项目,框架:cairngorm--blazeDS--spring--ibatis)(正在编写中)

<listener> <listener-class>flex.messaging.HttpFlexSession</listener-class> </listener> HttpFlexSession 是 BlazeDS 提供的一个 Listener,负责监听 Flex 远程调用请求,并进行一些初始化设置 <listener> <listener-class> org.springframework.web.util.Log4jC

史上最全web.xml配置文件元素详解

一.web.xml配置文件常用元素及其意义预览 1 <web-app> 2 3 <!--定义了WEB应用的名字--> 4 <display-name></display-name> 5 6 <!--声明WEB应用的描述信息--> 7 <description></description> 8 9 <!--context-param元素声明应用范围内的初始化参数--> 10 <context-param&g

web.xml配置文件元素详解

一.web.xml配置文件常用元素及其意义 1 <web-app> 2 3 <!--定义了WEB应用的名字--> 4 <display-name></display-name> 5 6 <!--声明WEB应用的描述信息--> 7 <description></description> 8 9 <!--context-param元素声明应用范围内的初始化参数--> 10 <context-param>

web.xml配置文件元素详解(转载)

今天看到一篇关于web.xml配置文件元素的博文,觉得很全面,这里引用过来,方便学习和查询. http://www.cnblogs.com/hafiz/p/5715523.html 一.web.xml配置文件常用元素及其意义预览 1 <web-app> 2 3 <!--定义了WEB应用的名字--> 4 <display-name></display-name> 5 6 <!--声明WEB应用的描述信息--> 7 <description&g

web.xml配置文件详解

一.web.xml配置文件常用元素及其意义预览 1 <web-app> 2 3 <!--定义了WEB应用的名字--> 4 <display-name></display-name> 5 6 <!--声明WEB应用的描述信息--> 7 <description></description> 8 9 <!--context-param元素声明应用范围内的初始化参数--> 10 <context-param&g

怎样获得(读取)web.xml配置文件的参数

参考代码如下: com.atguigu.struts2.app.converters.DateConverter.java public DateFormat getDateFormat(){ if(dateFormat == null){ //获取当前 WEB 应用的初始化参数 pattern(该参数在WEB-INF下的web.xml文件中) //第一次用的时候获取,并加载相关的信息 //这种方法是使用/struts2-6/src/xwork-conversion.properties配置文件

如何获得(读取)web.xml配置文件的參数

參考代码例如以下: com.atguigu.struts2.app.converters.DateConverter.java public DateFormat getDateFormat(){ if(dateFormat == null){ //获取当前 WEB 应用的初始化參数 pattern(该參数在WEB-INF下的web.xml文件里) //第一次用的时候获取,并载入相关的信息 //这样的方法是使用/struts2-6/src/xwork-conversion.properties配

servlet3.0 的新特性之二注解代替了web.xml配置文件

servlet3.0 的新特性: 注解代替了 web.xml 文件 支持了对异步的处理 对上传文件的支持 1.注解代替了配置文件 1.删除了web.xml 文件 2. 在Servlet类上添加@WebServlet(urlPatterns={"/AServlet"}) 3. 在Filter类上添加@WebFilter(urlPatterns="/AFilter") 4. 在Listener类上添加@WebListener ? 总结: * 注解好处:配置信息少,使用很

idea中添加web.xml配置文件与tomcat启动中遇到的web.xml文件找不到的问题

1,如何在idea中向war项目中添加web.xml的配置文件 idea通过maven创建war项目时没有指定是webapp导致创建出来的项目没有webapp的文件夹.其实war项目中都是在"项目名/src/main"目录下 只要在这个项目下创建webapp/WEB-INF/web.xml就行了 2,如果你没有把web.xml放在"项目名/src/main/webapp/WEB-INF/web.xml",这时tomcat启动就会报错: maven打包时错误信息:Er