Web.xml配置说明以及加载过程

1. web.xml配置详解

   

    MyWeb

   

    MyWeb demo

   

   

        contextConfigLocation

        /WEB-INF/applicationContext.xml

        web的ApplicationContext上下问文件配置

   

   

   

   

        utf8-encoding

        org.springframework.web.filter.CharacterEncodingFilter

       

            encoding

            utf-8

       

       

            forceEncoding

            true

       

   

   

        utf8-encoding

        /*

   

   

   

        org.springframework.web.context.ContextLoaderListener

   


   

   

        myservlet

        javax.servlet.http.HttpServlet

       

            paramField

            paramValue

       

   

   

        myservlet

        /myservlet/*

   

   

   

        10

   

   

   

        htm

        text/html

   

   

        pdf

        application/pdf

   

   

        doc

        application/msword

   

   

        xls

        application/msexcel

   


   

   

        index.jsp

        index.html

   

   

   

        404

        /404error.jsp

   

   

   

        java.lang.NullException

        /nullerror.jsp

   

   

   

        http://jakarta.apache.org/tomcat/debug-taglib

        /WEB-INF/tld/taglib.tld

   

   

   

        jms/StockQueue

   

   

   

        java JDBC DataSource factory

        jdbc/java_db

        javax.sql.DataSource

        dataManager

   

   

   

   

   


2. web.xml加载过程:

1. Web项目启动的时候,容器(如:tomcat)读取webapp/WEB-INF/web.xml文件,读取

2. 创建ServletContex,Web项目所有部分都可以使用该上下文ServletContex;

3. 容器将解析为key-value对,并交给ServletContext;

4. 容器根据中的类创建监听实例,即启动监听;

5. listener监听类中会contextInitialized(ServletContextEvent servletContextEvent)初始化方法,可通过ServletContextEvent.getServletContext().getInitParameter("field")获得value的值;

6. 解析,并启动拦截器 拦截器开始起作用,当有请求进入时,执行Filter的doFilter方法;

7. 最后加载和初始化配置在load on startup的servlets;

8. 加载Spring,如果filter需要用到bean,但加载顺序是: 先加载filter 后加载spring,则filter中初始化操作中的bean为null.

    如果过滤器中要使用到 bean,可以将spring 的加载 改成 Listener的方式 :

  

         org.springframework.web.context.ContextLoaderListener 

 

你可能感兴趣的