《精通Struts》笔记--第四章 配置Struts应用 1

《精通Struts》笔记--第四章 配置Struts应用 1

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 >

用户自定义的客户化标签库和标准的类似。

你可能感兴趣的:(《精通Struts》笔记--第四章 配置Struts应用 1)