什么是web.xml
在以下的文章中
都提到了一个文件是web.xml,它是什么呢?
web.xml是WebServlet的配置文件,在服务器配置目录下有一份,每一个War包中也可以有各自的
通过以上四个文章,我们知道,每一个War包都是一个WebServlet服务,如果它们在自己的 WEB-INF 下有自己的web.xml则使用自己的,如果没有则使用服务器默认的web.xml
谁TM规定的web.xml文件是什么
我问过很多人这个问题,一直没有人给我讲清楚。。。根据我的推测(上文),既然他属于WebServlet的配置文件,WebServlet又是JavaEE的东西,那么Java是Sun公司发明的,Sun又被Oracle收购了,终于,终于,在Oracle的文档库里被我翻到了两篇文章WebServlet2.5 和 WebServlet3.0 两个题目都叫
- A web.xml Deployment Descriptor Elements
- The following sections describe the standard Java EE deployment descriptor elements.
当时我还不太懂web.xml,所以在郁闷怎么有两个,其实2.5和3.0两个版本差别还是比较大的,比如以下两点,推荐尽量用最新版
- Servlet2.5的Cookie不能使用setHttpOnly
- 如果比2.5还要低的话,是web-app里是不支持jsp-config标签的
web.xml首先要了解的配置
web.xml是以
1 | <web-app> |
为根元素的一个XML文件,其中包含的元素参考Oracle的文档,作为Servlet的入口,如果想使用任何第三方框架,都需要通过这个文件建立联系,我们以SpringMVC和Spring为例进行举例
PS: 在进行详细的配置前需要先了解XML文件中的命名空间概念
Web使用Spring的上下文
根据[Oracle的文档][]WebContext作为Servlet的中对于协议 ServletContext 的一个实现,是实现Servlet功能必不可少的一个对象,我们需要把Spring加载到里面,使用以下配置
1 | <web-app .....> |
Web使用SpringMVC作为Servlet转发器
关于Servlet的原始用法参考文章,然后我们把根目录映射到一个具有初始化参数对SpringMVC的类上
1 | <web-app .....> |
最后给WebServlet服务起个名字
最后我们给服务起个名字,一个基本生效的SpringMVC+Spring的WebServlet应用就完成了
1 | <web-app .....> |
配置中的classpath是什么以及其他标签
关于Spring和SpringMVC的配置中有一个classpath字段是什么参考文章,以及除了基本标签外还可以使用
- filter :一些过滤器,比如Spring提供的编码解码过滤器等
- error-page : 错误页面的指向,比如常见的404错误页面用哪一个
- jsp-config : 一些JSP文件的简单配置