web.xml 是 Java Web项目中常用的配置文件,用于配置 欢迎页、Servlet 以及 Filter 等。web.xml 的模式(Schema) 中定义的标签元素才能够使用。
web.xml的模式文件是由Sun公司定义的,每个web.xml文件的根元素<web-app>中,都必须标明这个web.xml使用的是哪个模式文件。如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
id="WebApp_ID" version="4.0">
</web-app>
1. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
声明 XML Schema 实例,声明后就可以使用schemaLocation属性
2. xmlns="http://xmlns.jcp.org/xml/ns/javaee"
声明xml文件默认的命名空间,表示未使用其他命名空间的所有标签的默认命名空间。
3. xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
指定Schema的位置这个属性必须结合命名空间使用。这个属性有两个值,第一个值表示需要使用的命名空间。第二个值表示供命名空间使用的XML schema文件。
具体使用什么版本,可以从 http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/index.html#8 中查到,Java 1.6 及以下版本 命名空间是 http://java.sun.com/xml/ns/javaee,1.7及以上命名空间为:http://xmlns.jcp.org/xml/ns/javaee
4. version="4.0" version 与 xsi:schemaLocation 中 Schema 版本保持一致,即:web-app_4_0.xsd。