web.xml配置ActionServlet

    Struts1.x主要基于两个配置文件,Web.xml和struts-config.xml。其中 Web.xml是所有web应用都具有的而struts-config.xml确是Struts独有的。

1.Web应用发布文档类型定义

    DTD把文档化为如下组件:元素、属性、实体。(每一种xml文档都有独自的DTD文件) 对于Web.xml而言它的顶层元素为:<web-app>:

<!ELEMENT web-app(
icon?,display-name?,description?,distributable?,contex-param*,filter*,
filter-mapping*,listener*,servlet*,servlet-mapping*,session-config?,mine-mapping*,welcome-file-list?,error-page*,taglib*,resouorce-enc-ref*,security-constraint*,login-config?,security-role*,env-entry*,ejb-ref*,ejb-local-ref*
)
>

    DTD中特殊符号的作用:
        1、无符号:该子元素必须在父元素中出现而且只能出现一次。
          2、+:必须存在,一次或者多次。
          3、*:可以不存在,存在一次或者多次。
        4、?:可以不存在,存在只能存在一次。

子元素的顺序由他们出现在父元素中的顺序所决定的。

2、例:为Struts应用配置ActionServlet

    第一步:配置ActionServlet:用<servlet>元素声明ActionServlet

    <servlet>元素的DTD定义如下:

<!ELEMENT servlet (icon?, servlet-name, display-name?, description?,
(servlet-class|jsp-file), init-param*, load-on-startup?, run-as?, security-role-ref*)>

<servlet-name>定义servlet名称,<serclet-class>指定Servlet完整类名,例如:
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.action.ActionServlet</servlet-class>
</servlet>

    第二步:为ActionServlet配置<servlet-mapping>

    用来指定可以处理哪些URL:
    

<servlet-mapping>
	<servlet-name>action</servlet-name>
	<url-pattern>*.do</url-pattern>
</servlet-mapping>

    <servlet>中的<servlet-name>中的名字要和<servlet-mapping>中的<servlet-name>中的<servlet-name>匹配

“*.do”表示ActionServle处理所有以".do"结尾的URL。如果这么声明<url-pattern>/do/*</url-pattern>表示处理所有以/do开头的url。

**********不管应用中有多少个字应用都只要配置一个ActionServlet。

     第三步:ActionServlet的初始化参数的声明

    <servlet>的子元素<init-param>用于配置stervlet的初始化参数。如:

 <init-param>
      <param-name>config</param-name><!--参数名  -->
      <param-value>/WEB-INF/struts-config.xml</param-value><!--文件名  -->
    </init-param>

以上代码为ActionServlet配置了初始化参数,config是Struts的ActionServlet特有的,用来配置Struts的配置文件的相对路径。

    第四步:配置欢迎清单:
 <welcome-file-list>
    <welcome-file>hello.jsp</welcome-file>
 </welcome-file-list>

    可以包含多个<welcom-file>,应用加载时会检索欢迎清单,如果存在则返回第一个页面,不存在则插在下一个,都不存在的话就向客户返回“HTTP404 Not Found"的出错信息。

    第五步:配置出错处理
<error-page>
  <error-code>404</error-code>
  <location>/error/404.jsp</location>
</error-page>
  

    如果出现404错误就会向用户返回404.jsp文件,也还可以为Web容器捕获java异常配置<error-page>元素但是此时需要配置<exceprion-type>,用于指定java异常类。
    可能捕获到的异常如下:

  • RuntimeException or Error

  • ServletException or 子类

  • IOException or 子类

如:

<error-page>
 <exception-type>javax.servlet.ServletExceprion</exception-type>
 <location>/error/system_error.jsp</location>
</error-page>

    当容器捕获到相应的异常的时候就会向用户返回相应的页面。

第六步:配置Struts标签库。

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

    <taglib-url>指定标签库的相对位置或者绝得位置,<taglib-location>指定标签库在文件资源系统中的物理位置。注意:Struts1.3之后就不需要配置标签库都内置了,只需要引用就可以了。



你可能感兴趣的:(java,Struts1.x配置文件)