Web.xml的加载过程

Web.xml的加载过程Web.xml的加载过程

大家好,又见面了,我是你们的朋友全栈君。

1. web.xml加载过程:

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

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

3. 容器将<context-param></context-param>解析为key-value对,并交给ServletContext;

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

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

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

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

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

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

<listener>  

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

    </listener>  

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/149543.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • IDEA中使用Git拉取代码时报 Git pull failed原因及处理方法

    IDEA中使用Git拉取代码时报 Git pull failed原因及处理方法

    2020年11月9日
    300
  • 《Android开发从零开始》视频全集「建议收藏」

    《Android开发从零开始》视频全集「建议收藏」这套教程是若水倾情为有一定Java基础的朋友制作的Android开发从零开始视频集合,目前共38集。《Android开发从零开始》文章列表:1.Android开发环境的搭建2.模拟器的使用3.第一个Android程序4.TextView控件学习5.EditText控件学习6.DDMS视图&Button7.Intent初级学习8

    2022年5月9日
    37
  • SpringBoot与SpringCloud的版本对应详细版[通俗易懂]

    SpringBoot与SpringCloud的版本对应详细版[通俗易懂]缘起初学springcloud的朋友可能不知道,其实SpringBoot与SpringCloud需要版本对应,否则可能会造成很多意料之外的错误,比如eureka注册了结果找不到服务类啊,比如某些jar导入不进来啊,等等这些错误。下面列出来springBoot和springcloud的版本对应关系,需要配套使用,才不会出现各种奇怪的错误。关于maven仓库的版本列表spring-cloud…

    2022年4月29日
    239
  • Kafka容错性测试

    Kafka容错性测试1.查看topic信息(“副本”是为该分区复制日志的节点列表,无论它们是引导者还是当前处于活动状态,“isr”是“同步”副本的集合。这是副本列表的子集,当前仍处于活动状态并追随领导者。)[hadoop@hadoop000tmp]$kafka-topics.sh–describe–zookeeperhadoop000:2181–topicmy-replicated-topi…

    2022年7月25日
    7
  • Java异常处理简单实例

    Java异常处理简单实例Java异常处理异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。比如说,你的代码少了一个分号,那么运行出来结果是提示是错误java.lang.Error;如果你用System.out.println(11/0),那么你是因为你用0做了除数,会抛出java.lang.ArithmeticException的异常。异常发生的原因有很多,通常包含以下几大…

    2022年5月12日
    42
  • VCS仿真VHDL VERILOG混合脚本「建议收藏」

    VCS仿真VHDL VERILOG混合脚本「建议收藏」#!/bin/csh#虚拟路径.PHONY:comsimcovcleandebug#DEFINEALL_DEFINE=+define+DUMP_VPD #预编译宏定义,本例程没有用到宏定义#OUTPUHTOUTPUT=simv #输出文件的文件名#Codecoveragecommand#覆盖率检查CM=-cmline+cond+fsm+branch+tgl#收集的代码覆盖率类型CM_NAME=-c..

    2022年9月21日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号