Struts2的工作原理
来源:互联网 发布:淘宝开直通车的方法 编辑:程序博客网 时间:2024/06/08 18:41
在Struts2 2.0-2.1.2 时核心过滤器都是FilterDispatcher,2.1.3后的核心过滤器替换为StrutsPrepareAndExecuteFilter,允许开发者在经过Struts过滤之后,在执行Action之前添加自己的过滤器。StrutsPrepareAndExcuteFilter分为两种,一种是StrutsPrepareFilter,另一种是StrutsExecuteFilter,可以在准备和执行之间添加自己的过滤器。
1.web.xml
任何MVC框架都需要与Web应用整合,这就不得不借助于web.xml文件,只有配置在web.xml文件中Servlet才会被应用加载。
通常,所有的MVC框架都需耍Web应用加载一个核心控制器,对于Struts2框架而言.需要加载StrutsPrepareAndExecuteFilter,只要Web应用负责加载StrutsPrepareAndExecuteFilter,StrutsPrepareAndExecuteFilter将会加载Struts2框架。
2.struts.xml
struts2的核心配置文件,在开发过程中利用率最高。
该文件主要负责管理应用中的Action映射,以及该Action包含的Result定义等。
struts.xml中包含的内容:
(1)全局属性;
(2)用户请求和响应Action之间的对应关系;
(3)Action可能用到的参数和返回结果;
(4)各种拦截器的配置。
3.struts.properties
struts2框架的全局属性文件,自动加载。
该文件包含很多key-value对。
该文件完全可以配置在struts.xml文件中,使用constant元素。
4.struts.xml文件详解
(1)include : include节点是struts2中组件化的方式,可以将每个功能模块独立到一个xml配置文件中,然后用include节点引用
(2)package : package提供了将多个action组织为一个模块的方式。
① name属性:配置文件中可以有多个package标签,并且 packge标签的name属性也不必是唯一的。
② extends属性:package可以扩展,当一个package从另一个package扩展时,该package会在本身配置的基础上加入扩展的package的配置,父package必须在子package前配置。
③ abstract属性:设置package的属性为抽象的,抽象的package不能定义action,属性值:true 或 false。
④ namespace属性:定义package命名空间,该命名空间影响到url的地址。
(3)interceptors : 定义拦截器
① name属性:拦截器名称
② class属性:拦截器类路径
(4)default-interceptor-ref: 定义默认拦截器
① name属性:拦截器名称
(5)global-results : 定义全局结果集
① result 节点:name 属性:结果集名称;节点文本内容:返回结果页面
(6)action : 每个package中可以定义多个action,只要action配置中的name属性值不同。
①name属性:action名称
②class属性:对应的类路径
③method属性:调用action类中的方法名,默认调用action类中的excute()方法
④ 在action中也可以定义引用拦截器interceptor-ref
(7)result : 返回结果
①name属性:result名称,和action方法中返回的字符串相同
②type属性:result类型,不写则选用superpackage的type,struts-default.xml中默认为dispatcher
(8)param : 参数设置
(9)constant : 常量设置
相当于Map中的key-value对,这里是name-value对
① name属性:常量名
② value属性:常量值
- Struts2的工作原理
- Struts2的工作原理
- Struts2的工作原理
- Struts2的工作原理
- struts2的工作原理
- Struts2的工作原理
- Struts2的工作原理
- struts2的工作原理
- struts2的工作原理
- Struts2的工作原理
- struts2的工作原理
- Struts2的工作原理
- Struts2的工作原理
- Struts2的工作原理
- Struts2的工作原理
- Struts2的工作原理
- Struts2的工作原理
- Struts2 的工作原理
- [LeetCode] Single Number II, Solution
- [LeetCode] Copy List with Random Pointer, Solution
- [LeetCode] Word Break, Solution
- [LeetCode] WordBreak II, Solution
- [LeetCode] Linked List Cycle, Solution
- Struts2的工作原理
- 黑客们成功地在土豆上安装了 Linux!
- 25. Reverse Nodes in k-Group leetcode Python 2016 new season
- 缓冲I/O与非缓冲I/O(fopen与open系列函数区别)
- 内联汇编
- Java程序员容易犯的常见十大错误
- rop 文件上传
- [LeetCode] Linked List Cycle II, Solution
- [LeetCode] Reorder List, Solution