从制造到创造
软件工程师成长之路
posts - 292,  comments - 96,  trackbacks - 0

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

只有注册用户登录后才能发表评论。


网站导航:
 

<2008年3月>
2425262728291
2345678
9101112131415
16171819202122
23242526272829
303112345

常用链接

留言簿(9)

我参与的团队

随笔分类(245)

随笔档案(239)

文章分类(3)

文章档案(3)

收藏夹(576)

友情链接

搜索

  •  

积分与排名

  • 积分 - 456483
  • 排名 - 114

最新评论

阅读排行榜

评论排行榜