Struts2框架配置文件加载的顺序(了解加载配置文件的顺序,重点掌握struts.xml配置文件)

1.Struts2框架的核心是StrutsPrepareAndExecuteFilter过滤器,该过滤器有两个功能

* Prepare       -- 预处理,加载核心的配置文件

* Execute       -- 执行,让部分拦截器执行

2.目的:要了解Struts2的框架默认加载了哪些配置文件的信息,有一些重点的配置文件的信息要记住。还要了解配置文件加载的顺序。以后需要知道在哪个配置文件中来编写配置文件

2.StrutsPrepareAndExecuteFilter过滤器会加载哪些配置文件呢?

* 通过源代码可以看到具体加载的配置文件和加载配置文件的顺序

* init_DefaultProperties(); // [1]                  -- 加载org/apache/struts2/default.properties

* init_TraditionalXmlConfigurations(); // [2]       -- 加载struts-default.xml,struts-plugin.xml,struts.xml

* init_LegacyStrutsProperties(); // [3]             -- 加载自定义的struts.properties.

* init_CustomConfigurationProviders(); // [5]       -- 加载用户自定义配置提供者.

* init_FilterInitParameters() ; // [6]              -- 加载web.xml

* init_AliasStandardObjects() ; // [7]              -- 加载Bean的配置.

3.重点了解的配置文件

* default.properties        -- 在org/apache/struts2/目录下,代表的是配置的是Struts2的常量的值

* struts-default.xml        -- 在Struts2的核心包下,代表的是Struts2核心功能的配置(Bean、拦截器、结果类型等)

* struts.xml                -- 重点中的重点配置,代表WEB应用的默认配置,在工作中,基本就配置它就可以了!!(可以配置常量)

* web.xml                   -- 配置前端控制器(可以配置常量)

* 注意:

* 前3个配置文件是struts2框架的默认配置文件,基本不用修改。

* 后3个配置文件可以允许自己修改struts2的常量。但是有一个特点:后加载的配置文件修改的常量的值,会覆盖掉前面修改的常量的值。

4.总结(重点掌握的配置文件)

* 先加载default.properties文件,在org/apache/struts2/default.properties文件,都是常量。

* 又加载struts-default.xml配置文件,在核心的jar包最下方,struts2框架的核心功能都是在该配置文件中配置的。

* 再加载struts.xml的配置文件,在src的目录下,代表用户自己配置的配置文件

* 最后加载web.xml的配置文件

* 后加载的配置文件会覆盖掉之前加载的配置文件(在这些配置文件中可以配置常量)

struts.xml配置文件的常见配置(重点掌握开发中常用的配置方式)

1.struts.xml的配置文件是咱们以后开发中最常见的配置,所以它的配置文件需要大家重点掌握!!

* <package>标签,如果要配置<Action>的标签,那么必须要先配置<package>标签,代表的包的概念。

* 包含的属性

* name              -- 包的名称,要求是唯一的,管理action配置。

* extends           -- 继承,可以继承其他的包,只要继承了,那么该包就包含了其他包的功能,一般都是继承struts-default

* namespace         -- 名称空间,一般与<action>标签中的name属性共同决定访问路径(通俗话:怎么来访问action),常见的配置如下

* namespace=""      -- 默认的名称空间(访问的方式和namespace="/"是一样的)

* namespace="/"     -- 根名称空间

* namespace="/aaa"  -- 带有名称的名称空间

* abstract          -- 抽象的。这个属性基本很少使用,值如果是true,那么编写的包是被继承的。

* <action>标签

* 代表配置action类,包含的属性

* name          -- 和<package>标签的namespace属性一起来决定访问路径的。

* class         -- 配置Action类的全路径(默认值是ActionSupport类)

* method        -- Action类中执行的方法,如果不指定,默认值是execute.

* <result>标签

* action类中方法执行,返回的结果跳转的页面

* name      -- 结果页面逻辑视图名称

* type      -- 结果类型(默认值是转发,也可以设置其他的值)

2.Action的默认处理类(了解)

* 如果在<action>标签中,没有指定具体的Action类,那么Struts2的框架中是有默认值的。

* 例如

<action name="delete">

<result>/pages/success.jsp</result>

</action>

* 上面这段配置,没有指定具体的Action类,那么在地址栏上敲链接访问,程序也不会报错,而是会跳转到success.jsp的页面。说明默认的Action类执行了。

* 打开struts-default.xml,在配置文件的最下面,有一段配置

* <default-class-ref class="com.opensymphony.xwork2.ActionSupport" />   该类就是默认的Action处理类。

3.默认的Action和Action默认的处理类(了解)

* 听名称容易混淆,需要大家区分这一类的问题

* 默认的Action

* 在地址栏上输入一个不存在的action请求,程序会报404的异常。

* 但是在<package>标签中通过<default-action-ref name="指定action的标签的name属性的值"></default-action-ref>来该请求。

* Action默认处理类

* 在地址栏上输入一个正确的action请求,但是<action>标签中的class属性没有写具体的Action类

* 在<package>标签中通过<default-class-ref class="指定action类的全路径"></default-class-ref>

4.package标签中配置文件出现是有顺序的

Struts2配置常量(重点掌握怎么编写常量,了解一些常见的常量)

1.可以在Struts2框架中的哪些配置文件中配置常量?

* struts.xml(必须要掌握,开发中基本上就在该配置文件中编写常量)

* <constant name="key" value="value"></constant>

* web.xml

* 在StrutsPrepareAndExecuteFilter配置文件中配置初始化参数

* 注意:后加载的配置的文件的常量会覆盖之前加载的常量!!!!

2.需要大家了解的常量

* struts.i18n.encoding=UTF-8            -- 指定默认编码集,作用于HttpServletRequest的setCharacterEncoding方法

* struts.action.extension=action,,      -- 该属性指定需要Struts 2处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts2处理。如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开

* struts.serve.static.browserCache=true     -- 设置浏览器是否缓存静态内容,默认值为true(生产环境下使用),开发阶段最好关闭

* struts.configuration.xml.reload=false     -- 当struts的配置文件修改后,系统是否自动重新加载该文件,默认值为false(生产环境下使用),开发阶段最好打开

* struts.devMode = false                    -- 开发模式下使用,这样可以打印出更详细的错误信息

指定多个struts的配置文件(了解)

1.在大部分应用里,随着应用规模的增加,系统中Action的数量也会大量增加,导致struts.xml配置文件变得非常臃肿。为了避免struts.xml文件过于庞大、臃肿,提高struts.xml文件的可读性,我们可以将一个struts.xml配置文件分解成多个配置文件,然后在struts.xml文件中包含其他配置文件。

2.可以在<package>标签中,使用<include>标签来引入其他的struts_xx.xml的配置文件。例如:

<struts>

<include file="struts-part1.xml"/>

<include file="struts-part2.xml"/>

</struts>

3.注意注意注意(重要的事情说三遍):<include file="cn/itcast/demo2/struts-part1.xml"/>

Struts2常见配置(草稿)的更多相关文章

  1. struts2常见配置

    <struts> <!--开发模式设置:该属性设置Struts2应用是否使用开发模式.如果设置该属性为true,则可以在应用出错时显示更多.更友好的出错提示.该属性只接受true和f ...

  2. struts2常见配置解决错误There is no mapped for namespace[/] and action name

    我碰到这个错误的原因是我把配置文件名写成了Struts.xml,改成struts.xml就可以了. 在确定struts.xml本身并没有写错的情况下,那么发生错误有可能是路径,配置文件名. 如果实在找 ...

  3. struts2学习笔记(三)—— struts2的常见配置

    一.配置文件的加载顺序 每次从客户端发送请求到服务器都要先经过Struts2的核心过滤器StrutsPrepareAndExecuteFilter,这个过滤器有两个功能:预处理和执行.在预处理中主要就 ...

  4. Struts2 XML配置详解

    struts官网下载地址:http://struts.apache.org/   1.    深入Struts2的配置文件 本部分主要介绍struts.xml的常用配置. 1.1.    包配置: S ...

  5. 深入 Struts2 的配置 - 处理多个请求-处理请求结果-模型驱动-异常机制

    转:http://www.java3z.com/cwbwebhome/article/article2/2938.html?id=1631 本部分主要介绍struts.xml的常用配置. 1.1.   ...

  6. Struts2 基本配置

    Struts2是一个优秀的MVC框架,也是我比较喜欢用的框架.它个各种配置基本都可以集中在一个xml文档中完成.现在让我们看看如何简单几步实现常用功能. 一.搭建Struts2的开发环境 1)首先是利 ...

  7. struts2 action配置时 method 省略不写 默认执行方法是父类ActionSuppot中的execute()方法

    struts2 action配置时 method 省略不写 默认执行方法是父类ActionSuppot中的execute()方法

  8. struts2环境配置

    struts2环境配置 struts2框架,大多数框架都在使用.由于工作需要,开始做Java项目.先学个struts2. 一.下载struts2 有好多版本,我下载的是struts-2.2.1.1. ...

  9. 在Struts2中配置Action

    在Struts2中配置Action <package>: 1.定义Action使用<package>标签下的<action>标签完成,一个<package&g ...

随机推荐

  1. java判断一个字符串是否包含某个字符

    一.contains方法 1:描述 java.lang.String.contains() 方法返回true,当且仅当此字符串包含指定的char值序列 2:声明 public boolean cont ...

  2. 微信小程序表单校验WxValidate.js使用

    WxValidate插件是参考 jQuery Validate 封装的,为小程序表单提供了一套常用的验证规则,包括手机号码.电子邮件验证等等,同时提供了添加自定义校验方法,让表单验证变得更简单. 首先 ...

  3. UML图中聚合、组合、关联、依赖、泛化的强弱关系

    一.泛化 1.说明 泛化是一种继承关系,如果一个类A的所有属性和操作能被另一个类B所继承,则类B不仅可以包含自己独有的属性,而且可以包含类A的属性和操作.继承是类与类或者类与接口之间最常见的关系. 2 ...

  4. php7安装mongoDB扩展

    本文我们使用pecl命令来安装 首先来到php7的安装目录 $ /usr/local/php7/bin/pecl install mongodb 回车,执行成功后,会输出以下结果: …… Build ...

  5. 用于文本分类的RNN-Attention网络

    用于文本分类的RNN-Attention网络 https://blog.csdn.net/thriving_fcl/article/details/73381217 Attention机制在NLP上最 ...

  6. 斯坦福深度学习与nlp第四讲词窗口分类和神经网络

    http://www.52nlp.cn/%E6%96%AF%E5%9D%A6%E7%A6%8F%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E4%B8%8Enlp%E7%A ...

  7. MAC升级nodejs和npm到最新版

    第一步,先查看本机node.js版本: node -v 第二步,清除node.js的cache: sudo npm cache clean -f 第三步,安装 n 工具,这个工具是专门用来管理node ...

  8. HDU 4059 The Boss on Mars(容斥原理 + 四次方求和)

    传送门 The Boss on Mars Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...

  9. 怎样编写YARN应用程序

    (注意:本文的分析基于Hadoop trunk上的"Revision 1452188"版本号,详细可參考:http://svn.apache.org/repos/asf/hadoo ...

  10. 电子商务 B2C 结构图【转载+整理】

    本文内容 商品展示 内容展示 订单确认 支付系统 用户中心 商品&促销 CRM 订单处理 WMS 采购管理 财务管理 报表管理 系统设置 WA系统   商品展示 按照 Ebay 内部分类,任何 ...