deloyment
1.概念:
部署描述符文件就像所有XML文件一样,必须以一个XML头开始。这个头声明可以使用的XML版本并给出文件的字符编码。
DOCYTPE声明必须立即出现在此头之后。这个声明告诉服务器适用的servlet规范的版本(如2.2或2.3)并指定管理此文件其余部分内容的语法的DTD(Document Type Definition,文档类型定义)。
所有部署描述符文件的顶层(根)元素为web-app。请注意,XML元素不像HTML,他们是大小写敏感的。因此,web-App和WEB-APP都是不合法的,web-app必须用小写
2.元素所有servlet容器的Web应用程序部署描述符需要支持以下类型的配置和部署信息:
ServletContext初始化参数
Session配置
Servlet声明
Servlet映射
应用程序生命周期监听器类
过滤器定义和过滤器映射
MIME类型映射
欢迎文件列表
错误页面
语言环境和编码映射
安全配置,包括login-config,security-constraint,security-constraint,security-role-ref和run-as
3.部署描述符处理规则
本节列出了一些通用的规则,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-aap的子元素的顺序可以是任意的。由于XML模式的限制,distributable、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中存在多个的项目。存在多个distributable必须与存在单个distributable以同样的方式正确对待。
假定部署描述符中指定的URI路径是URL解码的形式(意思是已经对URL进行了转义)。当URL包含CR(#xD)(回车)或LF(#xA)(换行)时,容器必须用描述性的错误消息告知开发人员。容器必须保存所有其他字符,包括URL中的空格。
容器必须尝试规范化部署描文件中的路径。例如,/a/../b形式的路径必须解释为/b。部署描述符中以../开始的路径或解析成以../开始的路径都不是有效的路径。
URI路径指的是相对于WAR文件的根目录,或相对于WAR文件的根目录的一个路径映射,除非另有规定,应以/开头。
元素的值是一个枚举类型,其值是区分大小写的