博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springMVC---配置文件解析(web.xml)
阅读量:6761 次
发布时间:2019-06-26

本文共 2965 字,大约阅读时间需要 9 分钟。

前言


接着前面一片文章,继续解析各配置文件是用来干嘛的。只有弄懂每一个配置项的意义,才能更好的掌握springMVC.

问题


web.xml文件详解:

1、web.xml文件作用是什么?

  web.xml文件的作用是配置web工程启动,对于一个web工程来说,web.xml可以有也可以没有,如果存在web.xml文件;web工程在启动的时候,web容器(tomcat容器)会去加载web.xml文件,然后按照一定规则配置web.xml文件中的组件。
2、web容器加载web.xml文件的规则是怎样的?
  web容器加载顺序:ServletContext -> context-param -> listener -> filter ->servlet ;不会因在web.xml中的书写顺序改变:   
  a、web容器启动后,会去加载web.xml文件,读取listener和context-param两个节点
  b、创建一个ServletContext(Servlet上下文)这个上下文供所有部分共享
  c、容器将context-param转换成键值对,交给ServletContext
  d、接着按照上述顺序继续执行

SpringMVC的web.xml文件


1、配置代码及流程图示例:

Archetype Created Web Application
contextConfigLocation
classpath:/spring/*
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
encodingFilter
/*
org.springframework.web.context.ContextLoaderListener
SpringMVC
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:spring/springmvc.xml
1
SpringMVC
/
复制代码

2、加载顺序

a、首先加载Spring容器加载器:ContextLoaderListener

org.springframework.web.context.ContextLoaderListener
复制代码

  查看ContextLoaderListener源码可以发现其实现了ServletContextListener并继承了ContextLoader类,ServletContextListener主要用于监听web容器的启动和销毁,ContextLoader用于web容器启动后加载springApplicationContext上下文。

  ServletContextListener的两个方法为contextInitialized,contextDestroyed,主要用来监听Web应用的生命周期,当web应用初始化或者结束时会触发ServletContextEvent,并由监听器监听触发其他操作。
  ContextLoader主要用于加载上下文:当web服务器开启时候,触发ServletContextEvent并被ContextLoaderListener监听到,此时执行,ContextLoaderListener中的contextInitialized方法,此方法为ContextLoader中的方法,查看源码可以发现其创建了WebApplicationContext,并将springApplicationContext中的bean注册到容器中供项目使用。

b、加载过滤器Filter(此处以编码过滤器CharacterEncodingFilter为例)此过滤器的作用就是设置请求参数的编码为UTF-8.

encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
encodingFilter
/*
复制代码

c、加载Servlet:初始化DispatcherServlet,在SpringMVC架构中,DispatchServlet负责请求分发,起到控制器的作用

SpringMVC
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:spring/springmvc.xml
1
SpringMVC
/
复制代码

转载地址:http://tabeo.baihongyu.com/

你可能感兴趣的文章
手游开发如何选择后端服务
查看>>
开学季你最想要的这10本编程新书
查看>>
node中的http会了吗? 来手写一个属于自己的'cgp-server'静态服务
查看>>
守护客户数据价值:企业级NewSQL HTAP分布式云TBase架构详解
查看>>
Web3与智能合约交互实战
查看>>
双十一你想要的,我们提前给你备好了——七牛云产品0.1元起购
查看>>
视频直播:Windows中各类画面源的截取和合成方法总结
查看>>
SQL老司机,在SQL中计算 array & map & json数据
查看>>
绘制图片
查看>>
前端工程优化:javascript的优化小结
查看>>
Android 动画实战-仿微博雷达功能
查看>>
leetCode 13 Roman to Integer
查看>>
SpringBoot高级篇Redis之Hash数据结构使用姿势
查看>>
javaScript设计模式:Observer(观察者)模式实践(一)
查看>>
介绍两个好玩的和Github相关的Chrome扩展
查看>>
PC浏览器播放HLS协议的视频
查看>>
函数计算性能福利篇(二) —— 业务冷启动优化
查看>>
Python学习之路25-使用一等函数实现设计模式
查看>>
macOS 10 13 Cocoapods 命令错误
查看>>
Swift3中的 Method Swizzling
查看>>