配置Struts应用(1)

配置Struts应用(1)

         Struts应用采用两个基于XML的配置文件来配置应用,这两个配置文件是web.xmlstruts-config.xmlweb.xml适用于所有的Java Web应用。Struts-config.xml文件是struts应用专有的配置文件。

DTD文档类型定义(Document Type Definition)对XML文档的格式做了定义。<web-app>WEB应用发布文件的顶层元素。

<!ELEMENT web-app(icon?,display-name?,description?,distributable?,

context-param*,filter*,filter-mapping*,

listener*,servlet*,servlet-mapping*,session-config?,mime-mapping*,

welcome-file-list?,error-page*,taglib*,

resource-env-ref*,resource-ref*,security-constraint*,login-config?,

security-role*,env-entry*,ejb-ref*,ejb-local-ref*)

>

*注意:<servlet>子元素必须出现在<servlet-mapping>前面,而<servlet-mapping>必须出现在<taglib>元素的前面。

符号

含义

无符号

该子元素在父元素内必须存在且只能存在一次

+

该子元素在父元素内必须存在,可以存在一次或多次

*

该子元素在父元素内可以不存在,或者存在一次或多次

该子元素在父元素内可以不存在,或者只存在一次

1)      struts应用配置web.xml文件

a)       配置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的名称,<servlet-class>用来指定servlet的完整类名。以下是声明ActionServlet的代码:

<servlet>

       <servlet-name>action</servlet-name>

       <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>

</servlet>

              ·<servlet-mapping>用来指定ActionServlet可以处理哪些URL

<servlet>

       <servlet-name>action</servlet-name>

       <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>

</servlet>

 

                     <servlet-mapping>

                            <servlet-name>action</servlet-name>

                            <url-pattern>*.do</url-pattern>

                     </servlet-mapping>

                     以上代码的<url-pattern>属性为”*.do”,表明ActionServlet负责处理所有以”.do”扩展名结尾的URL。如果属性为”/do/*”,表明ActionServlet负责处理所有以”/do”为前缀的URL,其中第二个/为转义符。

b)      声明ActionServlet的初始化元素

<servlet><init-param>元素用于配置Servlet的初始化参数。

<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/struts-config.xml</param-value>

</init-param>

 

<servlet-mapping>

                                   <servlet-name>action</servlet-name>

                                   <url-pattern>*.do</url-pattern>

                            </servlet-mapping>

 

</servlet>

              config参数是配置strutsActionServlet专有的,它用来设置struts配置文件的相对路径。

c)      配置欢迎文件清单

当客户访问Web应用时,如果仅仅给出Web应用的Root URL,,没有指定具体的文件名,Web容器会自动调用Web应用的欢迎文件。<welcome-file-list>元素用来设置欢迎文件清单。<welcome-file-list>中可以有多个<welcome-file>元素。

<welcome-file-list>

       <welcome-file>welcome.jsp</welcome-file>

       <welcome-file>index.jsp</welcome-file>

</welcome-file-list>

以上定义了两个欢迎文件,Web容器调用Web应用欢迎文件时,首先寻找第一个文件,如果文件存在,则显示第一个文件给客户,如果不存在,则继续寻找下一个文件,如果<welcome-file-list>中的任何文件都不存在,则返回错误。

              <welcome-file-list>中不能配置Servlet映射,因此不能直接把StrutsAction作为欢迎文件。但是可以通过如下方法调用Struts Action。首先,在Struts配置文件中为被调用的Action创建一个全局的(global)转发项:

       <global-forward>

              <forward  name=”welcome” path=”HelloWorld.do”/>

       </global-forward>

       然后创建一个名叫welcome.jsp的文件,该页面被加载时。它把请求转发给上面<forward>元素指定的Action

       <%@taglib uri=”/WEB-INF/struts-logic.tld” prefix=”logic” %>

       <html>

              <body>  

                     <logic:forward name=”welcome”>

              </body>

       </html>

最后在web.xml文件中把welcome.jsp文件配置为欢迎文件,

       <welcome-file-list>

              <welcome-file>welcome.jsp</welcome-file>

       </welcome-file-list>

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭