本篇博客来详细的介绍一下Tomact中的web.xml配置文件,其实这个文件很常见,做任何JavaWeb项目的话,都会存在web.xml。因为Web应用发布描述文件是在Servlet规范中定义的,它是Web应用的配置文件。下面是整个Web.xml的实例。
<span style="font-family:Comic Sans MS;font-size:18px;"><span style="font-family:Comic Sans MS;font-size:18px;"><?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC
'-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN'
'http://java.sun.com/j2ee/dtds/web-app_2_3.dtd'>
<web-app>
<!--WEB应用名称 -->
<display-name>Sample Application</display-name>
<!--WEB应用描述 -->
<description>
This is a sample application
</description>
<!--定义过滤器 -->
<filter>
<filter-name>SampleFilter</filter-name>
<filter-class>mypack.sampleFilter</filter-class>
</filter>
<!--为过滤器指定URL映射 -->
<filter-mapping>
<filter-name>SampleFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<!-- 定义错误页面操作-->
<error-page>
<error-code>404</error-code>
<location>/NotFound.jsp</location>
</error-page>
<error-page>
<exception-type>packagename.className</exception-type>
<location>/SomeURL</location>
</error-page>
<mime-mapping>
<extension>htm</extension>
<mime-type>text/html</mime-type>
</mime-mapping>
<!--Servlet定义 -->
<servlet>
<servlet-name>SampleServlet</servlet-name>
<servlet-class>mypack.sampleServlet</servlet-class>
<init-param>
<param-name>initParam1</param-name>
<param-value>2</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!--定义SampleServlet映射 -->
<servlet-mapping>
<servlet-name>SampleServlet</servlet-name>
<url-pattern>/SampleServlet</url-pattern>
</servlet-mapping>
<!--配置HTTP会话 -->
<session-config>
<session-timeout>30</session-timeout>
</session-config>
<!--设置WEB应用的Welcome文件清单 -->
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!--设置应用的标签库 -->
<taglib>
<taglib-uri>/mytaglib</taglib-uri>
<taglib-location>/WEB-INF/mytaglib.tld</taglib-location>
</taglib>
<!--设置应用的JDNI资源 -->
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/sampleDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<resource-env-ref>
<resource-env-ref-name>jms/StockQueue</resource-env-ref-name>
</resource-env-ref>
<!--配置安全约束 -->
<security-constraint>
<web-resource-collection>
<web-resource-name>sample application</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>guest</role-name>
</auth-constraint>
</security-constraint>
<!--配置安全验证登录界面 -->
<login-config>
<auth-method>FORM</auth-method>
<realm-name>Form-Based Authentication Area</realm-name>
<form-login-config>
<form-error-page>/error.jsp</form-error-page>
<form-login-page>/login.jsp</form-login-page>
</form-login-config>
</login-config>
<!--配置安全角色 -->
<security-role>
<description>
The role that is required to log into the sample application
</description>
<role-name>guest</role-name>
</security-role>
<!-- WEB环境参数,env-entry元素声明Web应用的环境项-->
<env-entry>
<env-entry-name>minExemptions</env-entry-name>
<env-entry-type>java.lang.Integer</env-entry-type>
<env-entry-value>1</env-entry-value>
</env-entry>
<!--EJB声明:ejb-ref元素声明一个EJB的主目录引用 -->
<ejb-ref>
<description>Example EJB Reference</description>
<ejb-ref-name>ejb/Account</ejb-ref-name>
<ejb-ref-type>Entity</ejb-ref-type>
<home>com.mycompany.mypackage.AccountHome</home>
<remote>com.mycompany.mypackage.Account</remote>
</ejb-ref>
<!--本地的EJB声明,声明一个EJB的本地主目录的引用 -->
<ejb-local-ref>
<description>Example Local EJB Reference</description>
<ejb-ref-name>ejb/ProcessOrder</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<local-home>com.mycompany.mypackage.ProcessOrderHome</local-home>
<local>com.mycompany.mypackage.processOrder</local>
</ejb-local-ref>
<!-- 配置监听-->
<listener>
<listener-class>listeners.session</listener-class>
</listener>
</web-app>
</span></span>