配置Struts应用(1)

王朝other·作者佚名  2006-01-31
窄屏简体版  字體: |||超大  

配置Struts应用(1)

Struts应用采用两个基于XML的配置文件来配置应用,这两个配置文件是web.xml和struts-config.xml。web.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参数是配置struts的ActionServlet专有的,它用来设置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映射,因此不能直接把Struts的Action作为欢迎文件。但是可以通过如下方法调用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>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航