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 阅读(394)
评论(0) 编辑 收藏 所属分类:
Java-22.Struts