Struts2配置文件详解:修改默认请求路径与加载机制

需积分: 0 0 下载量 160 浏览量 更新于2024-09-14 收藏 596KB PDF 举报
"Struts2配置文件详解" Struts2是一个流行的Java Web开发框架,它的核心功能之一就是通过配置文件来管理应用程序的行为。Struts2的配置文件提供了灵活的方式来定制框架的行为,包括请求处理、动作映射、结果类型、拦截器等。在深入探讨配置文件之前,我们先来看一下标题和描述中提出的问题。 问题1:Struts2默认的请求路径是`.action`,而Struts1是`.do`。如何在Struts2中将请求路径改为`.do`? 解答:Struts2的请求路径配置通常在`struts.xml`文件中进行。要更改默认的请求路径,你需要在`struts.xml`中定义一个或多个`<package>`元素,并设置`namespace`和`action`属性来指定匹配的URL模式。例如,如果你想让所有的请求都以`.do`结尾,你可以这样配置: ```xml <package name="default" namespace="/" action-config-ref="doActions"> <default-action-ref name="defaultAction"></default-action-ref> </package> <constant name="struts.action.extension" value="do"/> ``` 问题2:`struts.xml`放在`src`目录下,是如何被Struts2框架加载的? 解答:`struts.xml`在编译后会被放置到`/WEB-INF/classes`目录下,Struts2框架会在应用启动时自动扫描这个目录,寻找`struts.xml`和其他相关的配置文件进行加载。这是通过Struts2的核心类`StrutsPrepareAndExecuteFilter`实现的,它会在过滤器链中被调用,解析并加载配置文件。 问题3:`package`节点中的`extends`属性是什么意思,`struts-default`的作用是什么? 解答:`extends`属性用于继承其他包的配置。`struts-default`是Struts2提供的一个默认包,包含了基础的配置,比如默认的拦截器栈、结果类型等。当你在自定义的`<package>`中使用`extends="struts-default"`,你的包将继承并覆盖`struts-default`包中的配置,这大大减少了重复配置的工作。 现在我们来看看Struts2涉及的主要配置文件: 1. **`web.xml`** - 这是Web应用的部署描述符,其中配置了Struts2的`Filter`,即`org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter`。通过配置这个过滤器,Struts2框架得以介入到HTTP请求的生命周期中。 2. **`struts.properties`** - 全局配置文件,用于设置框架级别的属性,比如日志级别、文件上传大小限制等。这些属性可以在应用的任何地方使用。 3. **`struts-default.xml`** - 包含了Struts2框架的默认配置,定义了默认拦截器栈、结果类型和其他基础设置。 4. **`struts-plugin.xml`** - 插件配置文件,用于配置Struts2的插件,这些插件可以扩展框架的功能。 5. **`struts.xml`** - 应用程序的主要配置文件,定义了具体的动作、拦截器、结果类型等,可以根据项目需求自定义。 了解这些配置文件后,开发者可以更好地理解和定制Struts2框架的行为,以适应各种复杂的业务场景。通过合理配置,可以优化性能,提高代码的可维护性和可扩展性。同时,通过日志查看配置文件的加载过程,有助于理解框架的运行机制。