web.xml文件初始化过程

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

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

初始化过程:

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

<context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath*:/applicationContext.xml</param-value>
    </context-param>

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

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

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

实际上,就是读取了<context-param>作为键值交给了ServletContext。


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


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


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

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

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

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值