16.部署描述符文件

1.部署描述符文件的作用:

    部署描述符文件:  

web.xml叫做部署描述符文件
是在Servlet规范中定义的,是web应用的配置文件。
作用:
描述了容器运行程序所需要的信息,提供站点的配置设定

web.xml文件是XML文档
必须以XML声明开头,指出XML版本及字符编码
顶层(根)元素为<web-app>,元素名大小写敏感
web-App和WEB-APP都是不合法的,web-app必须用小写

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
</web-app>

web.xml文件是XML文档
必须以XML声明开头,指出XML版本及字符编码
顶层(根)元素为<web-app>,元素名大小写敏感
各元素对出现在其他元素中的次序敏感
可省略某些可选元素,但不能将其放在不正确的位置

xsd文档的作用是定义XML文档的合法构建模块,类似 dtd
学习XML Schema(.xsd)教程
http://www.w3school.com.cn/schema/index.asp
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd

元素

含义

icon

指出IDE和GUI工具可用来代表Web应用的一个和两个图像文件的位置。

display-name

display-name 元素提供GUI工具可能会用来标记这个特定应用的一个名称。

description

提供关于 Web 应用程序的描述性文本。

context-param

用来设定web应用的环境参数。

filter

过滤器元素将一个名字与一个实现javax.servlet.Filter接口的类相关联。

filter-mapping

一但命名了一个过滤器,就利用filter-mapping元素把它与一个或多个servlet或JSP页面相关联。

listener

指出事件监听程序类

servlet

servlet元素用于声明一个servlet

servlet-mapping

servlet-mapping定义了servlet和URL模式之间的映射

元素

含义

icon

指出IDE和GUI工具可用来代表Web应用的一个和两个图像文件的位置。

display-name

display-name 元素提供GUI工具可能会用来标记这个特定应用的一个名称。

description

提供关于 Web 应用程序的描述性文本。

context-param

用来设定web应用的环境参数。

filter

过滤器元素将一个名字与一个实现javax.servlet.Filter接口的类相关联。

filter-mapping

一但命名了一个过滤器,就利用filter-mapping元素把它与一个或多个servlet或JSP页面相关联。

listener

指出事件监听程序类

servlet

servlet元素用于声明一个servlet

servlet-mapping

servlet-mapping定义了servlet和URL模式之间的映射

元素

含义

resource-ref

包含了部署组件对外部资源的引用声明

resource-env-ref

包含了部署组件和对部署组件环境中的资源有关的管理对象的引用

distributable

支持集群的服务器可安全的在多个服务器上分布Web应用

env-entry

声明了一个应用程序的环境入口

ejb-ref

声明了一个对企业bean的home引用

ejb-local-ref

声明了对企业bean的本地home引用

2.常用元素的声明与配置

   icon 

<icon>
   <small-icon>/images/small.gif</small-icon>
   <large-icon>/images/large.gif</large-icon>
</icon>

包含small-icon和large-icon元素,为大型和小型GIF或JPEG图标图片指定文件名
用于在GUI工具中表示父元素。

display-name:

<display-name>myFirstApp</display-name>

定义应用的名称。

description

<description>测试应用V1.0</description>

对应用做出描述。

context-param

<context-param>
    <param-name>param_name</param-name>
    <param-value> param_value</param-value>
</context-param>

context-param 应用范围内初始化参数
<param-name>参数名称</param-name>
<param-value>值</param-value>

filter

声明了Web应用程序中的过滤器
filter-name元素是过滤器的逻辑名称。
filter-class是过滤器的完全限定类名。
init-param元素包含的名-值对作为此过滤器的初始化参数。
当指定可选的async-supported元素时,表示该过滤器支持异步请求处理。

<filter>
    <filter-name>authorizefilter</filter-name>
    <filter-class>onest.web.filter.AuthorizeFilter</filter-class>
</filter>

filter-mapping

listener

servlet

servlet元素用于声明一个servlet
jsp-file元素命名JSP页面,包含到以“/”开头的Web应用程序中一个JSP文件的完全路径。
所指的JSP文件可存放于WEB-INF目录
servlet-name元素包含了servlet的规范名称。
servlet-class包含了servlet的完全限定类名。
load-on-startup元素表示该servlet应该在Web应用程序启动时加载。

 servlet-mapping

session-config

控制会话超时
如果某个会话在一定的时间内未被访问,服务器可以把它扔掉以节约内存。
session-config和session-timeout元素给出一个适用于所有服务器的明确的超时期
session-timeout元素的值的单位为分钟

 mime-mapping

关联文件与MIME类型
服务器一般都具有一种让Web站点管理员将文件扩展名与媒体相关联的方法。如:
自动给予名为mom.jpg的文件一个image/jpeg的MIME类型
如果希望将特殊的文件发送到客户机时分配为某种MIME类型,使用mime-mepping元素

<mime-mapping>
    <extension>foo</extension>
    <mime-type>application/x-fubar</mime-type>
</mime-mapping>

welcome-file-list

error-page

jsp-config

提供安全性:

利用web.xml中相关元素为服务器内建功能提供安全性:
指定验证的方法:<login-config>
限制对web资源的访问: <security-constraint>
分配角色名:<security-role>

配置认证方法
auth-method为Web应用程序配置认证机制
该元素的内容必须是BASIC、DIGEST、FORM、CLIENT-CERT、或提供商指定的认证模式
realm-name表示为Web应用程序选择用于认证模式的领域名。
form-login-config指定应该用于基于表单登录的登录和错误页面

3.JavaEE元素

<distributable/>:支持集群的服务器可安全的在多个服务器上分布Web应用

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<distributable/>
</web-app>


<resource-env-ref>:声明一个与某个资源有关的管理对象

<resource-env-ref>  
       <resource-env-ref-name>jdbc/mssql</resource-env-ref-name>  
      <resource-env-ref-type>javax.sql.DataSource</resource-env-ref-type>  
 </resource-env-ref> 


<resource-ref>:声明一个资源引用

<resource-ref>
   <description>JNDI JDBC DataSource</description>
   <res-ref-name>jdbc/data</res-ref-name>
   <res-type>javax.sql.DataSoruce</res-type>
   <res-auth>Container</res-auth>
</resource-ref>
原文地址:https://www.cnblogs.com/Firesun/p/9765296.html