web应用发布描述文件(即web.xml文件)是在Servlet规范中定义的。他是web应用的配置文件。web.xml和tomcat容器完全独立。
<web-app>
</web-app>为顶层元素,其他所有子元素都必须定义在它的里面,而且要按元素定义的先后顺序不能颠倒。
下面介绍下它的子元素:
1.<display-name> 该web站点的名称
2.<description> 该web站点的说明
3.<context-param> 用来设定该web站点的环境参数(context「配置应用上下文参数」),并初始化它
①<param-name> 参数名称
②<param-value> 参数值
4.<filter> 设定该web站点的过滤器
①<filter-name> 过滤器的名称
②<filter-class> 指定过滤器的实现类,负责具体的过滤事务
5.<filter-mapping> 设定该web站点的过滤器的映射
②<url-pattern> 指定过滤器负责过滤的URL
6.<servlet> 设定该web站点的Servlet的名称和映射
①<servlet-name> Servlet的名称
②<servlet-class> 指定Servlet的实现类
③<init-param> 定义servlet的初始化参数(包括参数名和参数值)
Detail参数:设置Digester的debug级别,Digester是Struts框架所使用的用来解析xml配置文件的一个框架,通过此设置,可以查看不同详细等级的解析日志。默认为0,记录相对最少的日志信息。
}
7.<servlet-mapping> 设定该web站点的Servlet的映射
①<servlet-name> Servlet的名称
②<url-pattern> 指定访问这个Servlet的URL。这里只需给出对于整个web应用的相对URL路径
8.<session-config> 设定该web站点的httpSession的生命周期(单位:分钟)
①<session-timeout> 指定该httpSession得有效时间。
9.<welcome-file-list> 设定该web站点的欢迎文件列表
①<welcome-file> 指定欢迎文件名称。
10.<taglib> 设定该web站点所使用的taglib
①<taglib-uri> 设定taglib的唯一标识符,在web应用中将根据这一标识符来引用tablib。
②<taglib-location> 指定和taglib对应的tld文件的位置。
11.<resource-ref> 设定该web站点所应用的资源
①<description> 对所引用资源的说明
②<res-ref-name>
③<res-type> 指定所引用资源的类名字
④<res-auth> 指定管理所引用资源的Manager,它有两个可选值:Container和Application。Container表示由容器来创建和管理Resource,Application表示由web应用来创建和管理Resource。
12.<security-role> 设定该web站点对应Tomcat的tomcat-users.xml中设置的角色名
①<security-role> 对应Tomcat的tomcat-users.xml中设置的角色名
13.<login-config> 设定该web站点四种认证类型
①BASIC:HTTP规范,Base64
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
②DIGEST:HTTP规范,数据完整性强一些,但不是SSL
<login-config>
<auth-method>DIGEST</auth-method>
</login-config>
③CLIENT-CERT:J2EE规范,数据完整性很强,公共钥匙(PKC)
<login-config>
<auth-method>CLIENT-CERT</auth-method>
</login-config>
④FORM:J2EE规范,数据完整性非常弱,没有加密,允许有定制的登陆界面。
<login-config>
14.<error-page> 设定该web站点的错误页面
<!-- 根据HTTP状态码定制错误页面 -->
<error-page>
<error-code>404</error-code>
<location>NotFoundRuntimeException.html</location>
</error-page>
<!-- 根据异常类型定制错误页面 -->
<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>InternalServerErrorRuntimeException.html</location>
</error-page>
15.配置监听器:
<web-app>
........
<listener>
<listener-class>com.jj.MyServletContextListener</listener-class>
</listener>
........
</web-app>
16.EJB相关和MIME映射:
<web-app>
......
<!-- 本地Bean的引用 -->
<ejb-local-ref>
<ejb-ref-name>ejb/customer</ejb-ref-name>
<ejb-ref-type>Entity</ejb-ref-type>
<local-home>com.jj.CustomerHome</local-home>
<local>com.jj.Customer</local>
</ejb-local-ref>
<!-- 远程Bean的引用 -->
<ejb-ref>
<ejb-ref-name>ejb/LocalCustomer</ejb-ref-name>
<ejb-ref-type>Entity</ejb-ref-type>
<home>com.jj.CustomerHome</home>
<remote>com.jj.Customer</remote>
</ejb-ref>
<!-- 声明应用的JNDI环境项 -->
<env-entry>
<env-entry-name>rates/discountRate</env-entry-name>
<env-entry-type>java.lang.Integer</env-entry-type>
<env-entry-value>10</env-entry-value>
</env-entry>
<!-- 配置扩展名和MIME类型之间的映射 -->
<mime-mapping>
<extension>mpg</extension>
<mime-type>video/mpeg</mime-type>
</mime-mapping>
......
</web-app>