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 閱讀(407)
評論(0) 編輯 收藏 所屬分類:
Java-22.Struts