大家好,又见面了,我是你们的朋友全栈君。
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>
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/149543.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...