struts2的学习与使用(二)

struts2的学习与使用(二)

@author QinJingxuan

在上一篇文章中,简单的介绍的struts2的作用和使用方法,在不清楚其具体在执行流程的情况下,做了一个简单的程序,接下来我们来看一下struts2的执行流程。

struts2的执行过程

这里写图片描述



好,忽略掉这张丑陋的图,我们开始新的学习。

struts2的常见配置

struts框架的使用,最重要的就是写配置文件,接下来,我们将对其进行详细的讲解。

一、struts2配置文件的加载顺序

每次从客户端发送请求到服务器都要先经过struts2的核心过滤器StrutsPrepareAndExecuteFilter,这个过滤器有两个功能:预处理和执行。在预处理中主要就是来加载配置文件的。对应的是过滤器中的init方法,而执行时用来执行一组拦截器完成部分功能的,对应的是过滤器的doFilter方法,所以我们如果要去了解struts2的配置文件的加载顺序,那么我们需要先看写过滤器的init方法。

这里写图片描述
在initial方法中,调用了init的initDispatcher的方法来加载配置文件,进入到该代码中。
这里写图片描述
我们会发现这个方法又调用了dispatcher的init方法。
这里写图片描述

init_DefaultProperties();//加载org.apache.struts.default.properties 配置的是struts2的所有常量

init_TraditionalXmlConfigurations();//加载struts-default.xml、struts-plugin.xml、struts.xml

init_LegacyStrutsProperties();//加载用户自定义struts.properties

init_CustomConfigurationProviders();//加载用户配置的提供对象

init_FilterInitParameters();//加载web.xml

init_AliasStandaObjects();//加载标准对象

根据上面的代码我们可以得出配置文件的加载顺序如下

default.properties
struts-default.xml
struts-plugin.xml
struts.xml //配置Action以及常量
struts.properties //配置常量。不常用
web.xml //配置核心过滤器及常量
前三个配置文件是struts2框架内部的配置文件,我们无法修改,我们需要创建和修改的是后三个配置文件。
这几个配置文件的加载是有一定的顺序的,都可以修改struts2的常量的值,要记住的是,后加载配置文件中常量的值会将先加载的配置文件中的常量值覆盖。

接下来我们看Action的配置

二、Action的配置

struts2框架的核心组件是Action和拦截器,它使用包来管理Action和拦截器。每个包就是就是多个Action、多个拦截器、多个拦截器引用的集合。

[package配置]

package元素用于定义包配置,package元素的常用属性如下表所示。

属性说明
name必填属性,它指定该包的名字,此名字是该包被其它包引用的key。
namespace可选属性,该属性定义该包的命名空间 。
extends可选属性,它指定该包继承自其它包。可以继承其它包中的Action定义、拦截器定义等。
abstract可选属性,它指定该包是否是一个抽象包,抽象包中不能包含Action定义。

其中,在配置包时,必须指定name属性。
还可以指定一个可选的extends属性,属性值必须是另一包的name属性值,通常都设置为struts2-default
namespace配置时 ,有三种配置

  • 默认名称空间:namespace=”“
  • 带名称空间:namespace=”/”
  • 带名称的名称空间:namespace=”/demo1”

[action配置]
Action映射是框架中的基本“工作单元”。Action映射就是一个请求的URL映射到一个Action类,当一个请求匹配某个Action名称时,框架就使用这个映射来确定如何如理请求。
action元素中共有4个属性,这4个属性的说明如下表所示。

属性说明
name必填,标识Action,指定了Action所处理的请求的URL。
class可选,指定Action对应Action类。
method可选,指定请求Action时调用的方法。
converter可选,指定类型转换器的类。

其中name属性和之前提到的namespace属性共同决定了访问路径,class对应的是Action类的全路径。
method指定了执行Action的那个方法,默认是execute方法。

三、Struts2常量的配置

等待更新

四、分模块开发的配置

等待更新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值