版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mChenys/article/details/84837766
Struts2框架的核心是StrutsPrepareAndExecuteFilter过滤器,该过滤器有两个功:
Prepare:预处理,加载核心的配置文件
Execute:执行,让部分拦截器执行。
那么StrutsPrepareAndExecuteFilter过滤器会加载哪些配置文件呢?
通过源代码可以看到具体加载的配置文件和加载配置文件的顺序:
- init_DefaultProperties() :加载org/apache/struts2/default.properties(常量配置)
- init_TraditionalXmlConfigurations() :依次加载struts-default.xml、struts-plugin.xml、struts.xml
- init_LegacyStrutsProperties():加载自定义的struts.properties.
- init_CustomConfigurationProviders(): 加载用户自定义配置提供者
- init_FilterInitParameters():加载 web.xml
几个比较总要的配置文件
- default.properties:在源码的org/apache/struts2/目录下,代表的是Struts2的常量的值
- struts-default.xml:在Struts2的核心包struts2-core-2.3.24.jar内,代表的是Struts2核心功能的配置(Bean、拦截器、结果类型等)
- struts.xml:重点中的重点配置,代表WEB应用的默认配置,在工作中,基本就配置它就可以了!!(可以配置并覆盖default.properties中的常量,通过constant标签配置)
- web.xml:配置前端控制器(可以配置并覆盖default.properties和struts中的常量,通过init-param标签配置)
注意:
default.properties、struts-default.xml和struts-plugin.xml配置文件是struts2框架的默认配置文件,基本不用修改。
struts.xml、struts.properties和web.xml配置文件可以允许自己修改struts2的常量。但是有一个特点:后加载的配置文件修改的常量的值,会覆盖掉前面修改的常量的值。
哪些配置文件中可以配置常量?
- default.properties:默认值,咱们是不能修改的!!
- struts.xml:可以配置,开发中基本上都在该配置文件中配置常量
- struts.properties:可以配置,基本不会在该配置文件中配置
- web.xml:可以配置,基本不会在该配置文件中配置
后加载的配置文件会覆盖掉之前加载的配置!!