4.1 Web应用的发布描述文件
包含以下信息:
    - 初始化参数
    
 - Session配置
    
 - Servlet声明
    
 - Servlet映射
    
 - 应用生命周期的监听类
    
 - 过滤器定义和映射
    
 - MIME类型映射
    
 - 欢迎文件列表
    
 - 出错处理页面
    
 - 标签库映射
    
 - JNDI引用 
 
4.1.1 Web应用发布描述文件的文档类型定义(DTD)
包含元素,属性,实体
<web-app>元素是web.xml的根元素,其他元素必须嵌入在<web-app>元素以内。
<servlet>必须在<servlet-mapping>之前;
<servlet-mapping>必须在<taglib>之前;
4.2 为Struts 应用配置 web.xml 文件
4.2.1 配置 Struts 的 ActionServlet
<!-- Standard Action Servlet Configuration (with debugging) -->
<servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>
        org.apache.struts.action.ActionServlet
    </servlet-class>
    <init-param>
        <param-name>config</param-name>
        <param-value>
            /WEB-INF/conf/struts-config.xml
        </param-value>
    </init-param>
    <init-param>
        <param-name>config/bank</param-name>
        <param-value>
            /WEB-INF/conf/struts-config-bank.xml
        </param-value>
    </init-param>
    <init-param>
        <param-name>config/card</param-name>
        <param-value>
            /WEB-INF/conf/struts-config-card.xml
        </param-value>
    </init-param>
    <init-param>
        <param-name>config/publicarea</param-name>
        <param-value>
            /WEB-INF/conf/struts-config-publicarea.xml
        </param-value>
    </init-param>
    <init-param>
        <param-name>config/maintenance</param-name>
        <param-value>
            /WEB-INF/conf/struts-config-maintenance.xml
        </param-value>
    </init-param>
    <init-param>
        <param-name>config/report</param-name>
        <param-value>
            /WEB-INF/conf/struts-config-report.xml
        </param-value>
    </init-param>
    <init-param>
        <param-name>debug</param-name>
        <param-value>2</param-value>
    </init-param>
    <init-param>
        <param-name>detail</param-name>
        <param-value>2</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<!-- Standard Action Servlet Mapping -->
<servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
</servlet-mapping>
说明:
1、一个项目可以配置多个<servlet>,且其中一个名为action;
2、在action的<servlet>中,可配置多个config,第一个为config,其他以“config/”开头,如:config/bank;
3、在全局<forward>元素中的例子:
<global-forwards>
    <forward name="toBank" path="/bank/login.do" />
</global-forwards>
4、使用<action>元素中的局部<forward>元素,例如:
<action-mappings>
  
  <action>
    <forward> name="success" path="/bank/index.do" />
  </action>
</action-mappings> 
5、<url-pattern>属性为“*.do”,表明ActionServlet负责处理所有以“.do”扩展名结尾的URL。
4.2.2、 声明 ActionServlet 的初始化参数
<init-param>子元素用于声明 Servlet 初始化参数。见4.2.1的代码清单。
4.2.3、配置欢迎文件清单
<!-- The Usual Welcome File List -->
<welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
</welcome-file-list>
从第一个文件依次往后面找,如果没有找到,抛出404错误。
在欢迎文件中不能配置Servlet映射,可通过变通的方式处理。
1、在 Struts 配置文件中为被调用的 Action 创建一个全局的( global) 转发项,例如:
<global-forwards>
  <forward name="welcome" path="HelloWordl.do" />
</global-forwards>
2、创建一个welcome.jsp文件:
<%@ tablib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<html>
  <body>
    <logic:forward name="welcome" />
  </body>
</html>
3、最后配置欢迎页面为welcome.jsp即可。
4.2.4 配置错误处理
1、避免用户看到原始的错误信息
<error-page>
  <error-code>404</error-code>
  <location>/common/404.jsp</location>
</error-page>
<error-page>
  <error-code>500</error-code>
  <location>/common/500.jsp</location>
</error-page>
2、也可为Web 容器捕获 Java 异常配置 <error-page>元素,这是需要设置<exception-type>子元素,它用于指定Java异常类。可捕获如下异常:
A、RuntimeException 或 Error
B、ServletException 或它的子类
C、IOException 或它的子类
例如:
<!-- The default error page -->
<error-page>
        <exception-type>java.lang.IOException</exception-type>
        <location>/common/IOError.jsp</location>
</error-page> 
4.2.5 配置 Struts 标签库
<!-- Struts Tag Library Descriptors -->
<taglib>
        <taglib-uri>/tags/struts-bean</taglib-uri>
        <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>

<taglib>
        <taglib-uri>/tags/struts-html</taglib-uri>
        <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>

<taglib>
        <taglib-uri>/tags/struts-logic</taglib-uri>
        <taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
</taglib>

<taglib>
        <taglib-uri>/tags/struts-nested</taglib-uri>
        <taglib-location>/WEB-INF/struts-nested.tld</taglib-location>
</taglib>

<taglib>
        <taglib-uri>/tags/struts-tiles</taglib-uri>
        <taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
</taglib> 
用户自定义的客户化标签库和标准的类似。
 
	posted on 2008-03-21 11:51 
CoderDream 阅读(435) 
评论(0)  编辑  收藏  所属分类: 
Java-22.Struts