web.xml和Tomcat下的server.xml学习
Web.xml文件使用总结
作用:存储项目相关的配置信息,保护 Servlet。解耦一些数据对程序的依赖。
使用位置:每个 Web 项目中
Tomcat 服务器中(在服务器目录 conf 目录中)
- 区别:
- Web 项目下的 web.xml 文件为局部配置,针对本项目的位置。
- Tomcat 下的 web.xml 文件为全局配置,配置公共信息。
- 如果单个servlet的web.xml没有配置相关信息,则按Tomcat下的web.xml使用
- 内容(核心组件):
- 全局上下文配置(全局配置参数)
- Servlet 配置
- 过滤器配置
- 监听器配置
加载顺序:Web 容器会按 ServletContext -> context-param -> listener ->filter-> servlet 这个顺序加载组件,这些元素可配置在 web.xml文件中的任意位置。
加载时机:服务器启动时
server.xml 文件
问题:浏览器发起请求后,服务器根据请求在 webapps 目下调用对应的 Servlet 进行请求处理。那么为什么是 webapps 目录难道不能是其他的目录吗?
解决:了解 server.xml 文件的配置信息
Server.xml 文件核心组件:
1 | <Server> |
1 | <Service name="Catalina"> |
由该xml文件可以看出一个Server容器中包含三个主要部分,其中最核心的为Service部分,当浏览器发送一个请求给服务器时首先会被地址栏后的域名或Ip找到对应的Engine拦截其中关键的几点:
- Engin会被配置的defaultHost=”localhost”根据地址栏找到,可以是Ip映射也可以是虚拟域名映射。同时根据Host后面指定的appBase寻找相对路径来作为要访问资源的根目录,其该路径是相对于tomcat的根目录即(bin的父目录为该目录)需要注意的是:当不是默认的webapps时里面的资源需要放在一文件夹下
- Engin会找跟自己名字相同的Service,对应的Service寻找其下配置的Connector根据端口号、以及协议版本来找到对应的Connector
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Kylin!
评论