处理部署描述符的规则
本节列出了一些通用的规则,Web 容器和开发人员必须注意有关 Web 应用程序部署描述文件的处理。
- 对于部署描述文件的文本节点元素内容,Web 容器必须删除所有前导和后置空格,空格在XML 1.0“(http://www.w3.org/TR/2000/WD-xml-2e-20000814)中被定义为“S(white space)”。
- 部署描述文件对模式来说必须是有效的。Web 容器和操作 Web 应用程序的工具对检查 WAR 文件的有效性有多种选择。包括检查 WAR 文件中部署描述文件的有效性。
*
此外,推荐 Web 容器和操作 Web 应用程序的工具提供一个级别的语义检查。例如,应该检查安全约束中引用的角色和部署描述文件中定义的某个安全角色具有相同的名称。
在 Web 应用程序不符合规范的情况下,工具和容器应该用描述性的错误消息告知开发人员。鼓励高端应用服务器提供商都提供这种有效性检查,以工具的形式和容器分开。
- 这个版本的规范中,web-app 的子元素的顺序可以是任意的。由于 XML模式的限制,可分发元素多样性,session-config、welcome-file-list、jsp-config、login-config以及locale-encoding-mapping-list,从“可选的”变成“0个或多个”。当部署描述文件包含多个session-config、 jsp-config 和 login-config 时,容器必须用描述性的错误消息告知开发人员。当有多个事件时,容器必须连接 welcome-file-list和 locale-encoding-mapping-list 中的项目。多个可分发的事件必须与单个可分发的事件以同样的方式正确对待。
- 假定部署描述符中指定的 URI 路径通过URL解码形式(意思是已经对URL进行了转义)。当 URL 包含 CR(#xD)(回车)或LF(#xA)(换行)时,容器必须用描述性的错误消息告知开发人员。容器必须保存所有其他字符,包括 URL 中的空格。
- 容器必须尝试规范化部署描文件中的路径。例如,/a/../b形式的路径必须解释为/b。部署描述文件中以../开始的路径或解析成以../开始的路径都不是有效的路径。
- URI路径指的是相对于WAR文件的根目录,或相对于WAR文件的根目录的一个路径映射,除非另有规定,应以/开头。
- 元素的值是一个枚举类型,其值是区分大小写的。