web.xml文件初始化过程

在使用各种框架后,有时会发现不了了错误处在哪里,了解Servlet的初始化过程(也可以说是web.xml的初始化吧),也许对你对于框架的理解与报错的原因理解会有帮助

context-param >> listener >> filter >> servlet


初始化过程:

1.在启动WEB项目时,容器(Tomcat)会读取web.xml配置文件中的两个节点

param>
        <param-name>contextConfigLocationparam-name>
        <param-value>classpath*:/applicationContext.xmlparam-value>
    param>

2.接着容器会创建一个ServletContext,即最为神秘的应用上下文,意思就是应用范围是整个WEB项目都可以使用这个上下文去进去一些操作。

这就得说到中的value代表的文件,在这个例子中,此文件定义了一些面向整个WEB项目的相关配置。

<listener>
        <listener-class>org.springframework.web.context.ContextLoaderListenerlistener-class>
    listener>

实际上,就是读取了作为键值交给了ServletContext。


3.容器会开始创建监听器,即开始实例化,这里在Spring框架中,有时会出现报错java.lang.ClassNotFoundException,大部分时候,是由于你的jar包冲突了。


4.在监听器中,会存在一个contextInitialized(ServletContext event)方法,通过event.getServletContext().getInitParameter(context ConfigLocation),去获取的值。


5.之后,初始化标示的过滤器

<filter>
        <filter-name>Spring character encoding filterfilter-name>
        <filter-class>
            org.springframework.web.filter.CharacterEncodingFilter
        filter-class>
        param>
            <param-name>encodingparam-name>
            <param-value>utf-8param-value>
        param>
    filter>
    <filter-mapping>
        <filter-name>Spring character encoding filterfilter-name>
        /*
    

6.最后,才到初始化定义好的Servlet,以name作为桥梁,把连接起来。通过规定的路径,把发往这个路径的请求交给对应的Servlet去处理。

你可能感兴趣的:(Java)