????每一个规范的web应用在WEB-INF目录下都应该有一个web.xml配置文件,用来对web应用的属性进行配置。web.xml配置文件包含的内容很多,但是基本的配置应该包括如下几部分:
-
环境参数初始化
-
Servlet配置
-
过滤器配置
-
监听器配置
-
JNDI配置
-
Session配置
-
JSP网页相关配置
-
MIME TYPE配置
-
welcome文件清单
-
错误处理
??? 根元素和头
????因为该配置文件是一个xml文档,因此必须遵循xml的书写规范,例如大小写敏感,需要声明版本号和字符编码等,一个没有任何配置的原始的xml文件为:
?
?<?xml version="1.0" encoding="ISO-8859-1"?> </web-app> |
?
环境参数初始化
根元素:<init-param>
子元素:<param-name>和<param-value>,分别对应参数的名称和参数取值,其中全局参数的设置必须在与文档有关的元素之后,而必须在filter、listener及servlet等元素之前;Servlet的初始参数在<servlet-class>之后;jsp中初始参数在<jsp-file>之后;filter初始参数在<filter-class>之后。应用范围内的初始化参数可以通过ServletContext的getInitParameter()方法获得。
?
? <!--全局范围内环境参数初始化--> ?<context-param>?? ??<param-name>username</param-name> ??<param-value>Lily</param-value>?? ?</context-param> |
?
Servlet配置
该配置在Servlet简介一文中有相关介绍,在这儿就省略了,要增加的一点说明就是如果一个Servlet有多个映射,则需要写多个<servlet-mapping>模块,而不能在一个<servlet-mapping>中写多个<url-pattern>。
?
?<servlet> ??<description>add affice</description> ??<display-name>Affice_add</display-name> ??<servlet-name>Affice_add</servlet-name> ??<servlet-class>servlets.Affice_add</servlet-class> ??<init-param> ???<param-name>...</param-name> ???<param-value>...</param-value> ??</init-param> ?</servlet> ?<!--servlet映射名称及映射路径--> ?<servlet-mapping> ??<servlet-name>Affice_add</servlet-name> ??<url-pattern>/affice/affice_add</url-pattern> ?</servlet-mapping> |
?
????? 过滤器配置
过滤器可以截取和修改一个Servlet或JSP页面的请求或从一个Servlet或JSP页面发出的响应,用<filter>元素和<filter-mapping>元素完成设置。
?
?<!--过滤器定义--> ?<!--过滤器映射路径,可以与一个或多个Servlet或jsp页面相关联--> |
?
????监听器配置
??? 注册一个监听程序用<listener>元素,在listener元素中,只有一个<listener-class>子元素,指明监听器对应的类。
?
?<!--监听器配置--> ?<listener> ??<listener-class>listener.OnlineListener</listener-class> ?</listener> |
?
??? 数据库连接池配置?
?
?<!--数据库连接池配置--> ?<resource-ref> ? ??<description>DataSource</description><!--描述--> ? ??<res-ref-name>jdbc/mysql/bookstore</res-ref-name><!--资源名称--> ????<res-type>javax.sql.DataSource</res-type><!--资源类型--> ????<res-auth>Container</res-auth><!--指出由Application或Container提供--> ?</resource-ref> |
?
??? Session配置
??? 如果某个会话在一定时间未被访问,则服务器可以扔掉以节约内存,该功能的实现可借助web.xml文件来实现,使用<session-config>及其子元素<session-timeout>,其中过期时间以分钟为单位
?
?<!--设置会话过期时间--> ?<session-config> ??<session-timeout>180</session-timeout> ?</session-config> |
?
???? JSP网页相关配置
????? <jsp-config>元素主要用来设置JSP的相关配置,该元素包括<taglib>和<jsp-property-group>两个子元素,分别完成标签库和JSP相关属性的设置。
?
?<jsp-config> ??<!--自定义标签配置--> ??<!--设置jsp-property-group--> ?? <page-encoding>gb2312</pageencoding> <!-设置编码--> |
?
???? Welcome文件清单
???? 指出默认的欢迎界面,按照顺序依次查找,直到找到对应的页面为止。
?
?<!--welcome欢迎清单--> ?<welcome-file-list> ??<welcome-file>index.html</welcome-file> ??<welcome-file>index.htm</welcome-file> ??<welcome-file>index.jsp</welcome-file> ??</welcome-file-list> |
?
????? 错误处理
????? 主要是当JSP页面或Servlet出现错误或者抛出异常时,显示指定的页面。
????? 根元素:<error-page>
????? 子元素:<error-code>设置HTTP错误代码;<exception-type>设置java异常类型,<error-location>元素用来设置发生错误或异常时要显示的页面。
?
?<!--错误处理--> ?<error-page> |