Struts 是一个经典的Java Web开发框架,用于构建MVC(模型-视图-控制器)架构的应用程序。在Struts 1.x版本中,配置文件主要包括`web.xml`和`struts-config.xml`,它们是实现Struts框架功能的核心配置。
**一、web.xml配置文件**
`web.xml`是每个Web应用程序的部署描述符,它告诉服务器如何启动和运行应用程序。在Struts中,`web.xml`负责初始化Struts的`ActionServlet`以及配置其他关键组件。
1. `<servlet>`与`servlet-mapping`:我们需要定义Struts的`ActionServlet`,它是整个框架的核心,处理所有的HTTP请求。`<servlet-class>`指定Servlet的全限定类名,通常为`org.apache.struts.action.ActionServlet`。接着,通过`servlet-mapping`映射URL到`ActionServlet`,以便服务器知道哪些请求应该由Struts处理。
2. `<init-param>`:在这里,我们设置`ActionServlet`的初始化参数,特别是`config`参数,它指定了`struts-config.xml`的路径,这是Struts配置文件的位置。
3. `<welcome-file-list>`:不能直接将Struts的Action作为欢迎文件。通常,我们会创建一个简单的欢迎页面,如`welcome.jsp`,然后在这个页面中使用`<logic:forward>`标签转发到对应的Action。
4. `<error-page>`:配置错误处理页面,例如404和505错误,将用户重定向到定制的错误提示页面。
5. `<taglib>`:定义TLD(Tag Library Descriptor)文件的位置,这些文件描述了Struts的JSP标签库,如`struts-html.tld`,以及可能自定义的标签库。
**二、struts-config.xml配置文件**
`struts-config.xml`是Struts应用程序的特定配置文件,它定义了各种组件,包括ActionMapping、ActionForm、MessageResources等。
1. `<struts-config>`:这是配置文件的根元素,它包含多个子元素,如`form-beans`、`action-mappings`、`global-forward`等。
2. `<form-beans>`:定义ActionForm对象,ActionForm是用来封装HTTP请求中的参数并进行业务逻辑验证的类。每个`<form-bean>`元素定义一个ActionForm,包括`name`(唯一标识符)和`type`(ActionForm的完整类名)属性。
3. `<action-mappings>`:配置Action Mapping,定义每个URL请求如何映射到特定的Action。每个`<action>`元素包含`path`(请求路径)、`parameter`(请求参数)、`forward`(转发的页面或Action)等属性。
4. `<global-exceptions>`:定义全局异常处理,可以将特定类型的异常映射到一个处理页面。
5. `<global-forwards>`:定义全局转发,可以在任何Action中使用,通过`<forward>`元素指定名称和路径。
6. `<controller>`:配置Controller,主要是设置Servlet的初始化参数。
7. `<message-resources>`:配置消息资源,用于国际化和本地化,加载应用程序的文本资源。
8. `<plug-in>`:允许插入插件,扩展Struts的功能。
`web.xml`和`struts-config.xml`共同构成了Struts框架的基础配置,使得开发者能够精细地控制请求处理流程、数据验证、异常处理和资源管理。正确配置这两个文件是确保Struts应用程序正常运行的关键。