Deployment descriptor (部署描述符)

部署描述符在Java平台中用于指导应用部署,特别是Web应用程序。web.xml是Web应用的部署描述符,存放于WEB-INF目录下,而application.xml则是Java EE应用的部署描述符。内容包括组件配置、安全设置、容器选项等。处理规则涉及空格处理、有效性检查、错误处理和路径规范。部署描述符中的元素如web-app、servlet、filter、session-config等,都有其特定的用途和结构,用于定义应用的行为和配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Deployment descriptor(部署描述符):

部署描述符指的是配置文件对于一个假象部署到一些容器/发动机。

在Java平台,企业版部署描述符描述组件、模块或应用程序(例如web应用程序或者企业应用程序)应该被部署。它指导部署工具部署具有特定容器选项、安全设置的模块或应用程序,并描述特定的配置要求。XML用于这些部署描述符文件的语法。

对于网络应用程序,必须调用部署描述符web . XML并且必须驻留在网络信息web应用程序根目录下的目录。对于Java EE应用程序,必须命名部署描述符application . XML并且必须直接放在META - INF应用程序顶层的目录、耳朵文件。

处理部署描述符的规则:

  • Web容器必须为部署描述符的文本节点的元素内容移除所有前导和后缀空格,在XML1.0中这被定义为"S(white space)"。
  • 部署描述符必须对模式有效。操作Web应用的Web容器和工具有很多选择来检查一个WAR的有效性。这包括检查部署描述符文档的有效性。
    此外,推荐操作Web应用的Web容器和工具提供一层语义检查。在非一致性的Web应用case中,工具和容器应该通知开发者描述性的错误信息。高端应用服务器提供商被鼓励以工具和容器分离的方式提供这种有效性检查。
  • 在本规范中,web-app下的子元素可以按任意顺序声明。由于XML模式的限制,元素distributablesession-configwelcome-file-listjsp-configlogin-configlocale-encoding-mapping-list从可选改变到0或者更多。当部署描述符包含多余一个session-configjsp-configlogin-config时,容器必须通知开发者一个描述性错误信息。当有多个出现时,容器必须合并welcome-file-listlocale-encoding-mapping-list中的项目。distributale的多次出现必须像distributable单次出现一样对待。
  • 在部署描述符中指定的URI路径被认为是URL编码格式。当URL包含CR(#xD)或者LF(#xA)时,容器必须通知开发者一个描述性错误信息。容器必须保留URL中所有其它包含空格的字符。
  • 容器必须尝试规范部署描述符中的路径。比如,/a/../b格式的路径必须被解析为/b。对以'../'开头的路径的路径开始或者解析在部署描述符中不是有效路径。
  • 指向一个相对WAR根路径的资源,或者一个映射相对于WAR根路径的路径的URI路径,除非特殊说明,都应该以前导'/'开头。
  • 值是枚举类型元素,值对大小写敏感。

部署描述符图:

  1. web-app 元素
    web-app元素对一个Web应用而言,是部署描述符根。元素包含下列元素。这个元素有一个必须的元素version来指定部署描述符遵守哪个版本的规范。这个元素下的所有子元素能够以任意顺序出现。
    图4-1 web-app 元素结构
     
    web-app元素结构
  2. description元素
    description元素用来提供对父级元素的一个文本描述。这个元素不仅出现在web-app元素中,也会出现在其它多个元素中。它有个可选的属性xml:lang来表明在描述中使用哪种语言。属性的默认值是English("en")。
  3. display-name元素
    display-name包含一个简写名字,它用来被工具展示。这个显示名字不必唯一。这个元素有一个可选的属性xml:lang来指明语言。
  4. icon元素
    icon元素包含小图和大图元素,它们用来为代表GUI工具中父级元素的小的和大的GIF或者JPEG图标指明文件名。
  5. distributable元素
    distributable元素表明Web应用适当地编码来被部署到一个分布式servlet容器中。
  6. context-param元素
    context-param包含一个Web应用的servlet上下文初始化参数的声明。
  7. filter元素
    filter在Web应用中声明了一个filter。在filter-mapping元素中使用filter-name值引用,filter被映射到一个servlet或者一个URL模式上。Filters能够在运行时通过FilterConfig接口访问部署描述符中声明的初始化参数。filter-name元素的元素内容一定不能为空。filter-class是filter的完整类名。init-param元素包含name-value对来作为filter的初始化参数。可选的async-supported元素表明filter支持异步请求处理。
    图4-2 filter元素结构
     
    filter元素结构
  8. filter-mapping元素
    filter-mapping被容器用来决定哪些filters以什么顺序应用在一个请求上。filter-name的值必须要是在部署描述符中声明的filter。匹配请求能够用url-pattern或者servlet-name指明。
    图4-3 filter-mapping元素结构
     
    filter-mapping元素结构
  9. listener元素
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值