- 浏览: 3507417 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (1491)
- Hibernate (28)
- spring (37)
- struts2 (19)
- jsp (12)
- servlet (2)
- mysql (24)
- tomcat (3)
- weblogic (1)
- ajax (36)
- jquery (47)
- html (43)
- JS (32)
- ibatis (0)
- DWR (3)
- EXTJS (43)
- Linux (15)
- Maven (3)
- python (8)
- 其他 (8)
- JAVASE (6)
- java javase string (0)
- JAVA 语法 (3)
- juddiv3 (15)
- Mule (1)
- jquery easyui (2)
- mule esb (1)
- java (644)
- log4j (4)
- weka (12)
- android (257)
- web services (4)
- PHP (1)
- 算法 (18)
- 数据结构 算法 (7)
- 数据挖掘 (4)
- 期刊 (6)
- 面试 (5)
- C++ (1)
- 论文 (10)
- 工作 (1)
- 数据结构 (6)
- JAVA配置 (1)
- JAVA垃圾回收 (2)
- SVM (13)
- web st (1)
- jvm (7)
- weka libsvm (1)
- weka屈伟 (1)
- job (2)
- 排序 算法 面试 (3)
- spss (2)
- 搜索引擎 (6)
- java 爬虫 (6)
- 分布式 (1)
- data ming (1)
- eclipse (6)
- 正则表达式 (1)
- 分词器 (2)
- 张孝祥 (1)
- solr (3)
- nutch (1)
- 爬虫 (4)
- lucene (3)
- 狗日的腾讯 (1)
- 我的收藏网址 (13)
- 网络 (1)
- java 数据结构 (22)
- ACM (7)
- jboss (0)
- 大纸 (10)
- maven2 (0)
- elipse (0)
- SVN使用 (2)
- office (1)
- .net (14)
- extjs4 (2)
- zhaopin (0)
- C (2)
- spring mvc (5)
- JPA (9)
- iphone (3)
- css (3)
- 前端框架 (2)
- jui (1)
- dwz (1)
- joomla (1)
- im (1)
- web (2)
- 1 (0)
- 移动UI (1)
- java (1)
- jsoup (1)
- 管理模板 (2)
- javajava (1)
- kali (7)
- 单片机 (1)
- 嵌入式 (1)
- mybatis (2)
- layui (7)
- asp (12)
- asp.net (1)
- sql (1)
- c# (4)
- andorid (1)
- 地价 (1)
- yihuo (1)
- oracle (1)
最新评论
-
endual:
https://blog.csdn.net/chenxbxh2 ...
IE6 bug -
ice86rain:
你好,ES跑起来了吗?我的在tomcat启动时卡在这里Hibe ...
ES架构技术介绍 -
TopLongMan:
...
java public ,protect,friendly,private的方法权限(转) -
贝塔ZQ:
java实现操作word中的表格内容,用插件实现的话,可以试试 ...
java 读取 doc poi读取word中的表格(转) -
ysj570440569:
Maven多模块spring + springMVC + JP ...
Spring+SpringMVC+JPA
Struts2源码阅读(一)_Struts2框架流程概述
1. Struts2架构图
请求首先通过Filter
chain,Filter主要包括ActionContextCleanUp,它主要清理当前线程的ActionContext和
Dispatcher;FilterDispatcher通过AcionMapper把请求路径与配置文件的namespace匹配,封装成actionMapping。
ActionMapper取得了ActionMapping后,在Dispatcher的serviceAction方法里创建
ActionProxy,ActionProxy创建ActionInvocation,由ActionInvocation实际创建Interceptors和Action,然后ActionInvocation调用
Interceptors,执行Action本身,创建Result并返回,当然,如果要在返回之前做些什么,可以实现
PreResultListener。
2. Struts2部分类介绍
这部分从Struts2参考文档中翻译就可以了。
ActionMapper
ActionMapper其实是HttpServletRequest和Action调用请求的一个映射,它屏蔽了Action对于Request等
java
Servlet类的依赖。Struts2中它的默认实现类是DefaultActionMapper,ActionMapper很大的用处可以根据自己的
需要来设计url格式,它自己也有Restful的实现,具体可以参考文档的docs/actionmapper.html。
ActionProxy&ActionInvocation
Action的一个代理,由ActionProxyFactory创建,它本身不包括Action实例,默认实现DefaultActionProxy是
由ActionInvocation持有Action实例。ActionProxy作用是如何取得Action,无论是本地还是远程。而
ActionInvocation的作用是如何执行Action,拦截器的功能就是在ActionInvocation中实现的。
ConfigurationProvider&Configuration
ConfigurationProvider就是Struts2中配置文件的解析器,Struts2中的配置文件主要是尤其实现类
XmlConfigurationProvider及其子类StrutsXmlConfigurationProvider来解析。
3. Struts2请求流程
1、客户端发送请求
2、请求先通过ActionContextCleanUp-->FilterDispatcher
3、FilterDispatcher通过ActionMapper把请求路径与配置文件的namespace匹配,封装成actionMapping
4、如果ActionMapper返回的actionMapping不为空,则转到FilterDispatcher的Delegate--
Dispatcher,由它创建ActionProxy及ActionInvocation并初始化,ActionInvocation初始化过程中根据
ActionMapping和ConfigurationManager创建真正的Action类
5、Dispatcher调用ActionProxy的execute方法
6、ActionProxy调用ActionInvocation的invoke方法
7、ActionInvocation调用真正的Action,当然这涉及到相关拦截器的调用
8、Action执行完毕,ActionInvocation创建Result并返回,当然,如果要在返回之前做些什么,可以实现PreResultListener。添加PreResultListener可以在Interceptor中实现。
发表评论
-
struts2的执行机制
2012-10-21 18:37 1589struts2是web应用中一个常用的mvc框架,下面探 ... -
Struts 2请求处理流程 命令模式2
2012-10-16 16:20 1757将“请求”封装成命令对象。把行为请求者和行为实现者进行解耦。 ... -
Struts 2请求处理流程 命令模式
2012-10-16 16:15 2815Struts 2请求处理流程 2010-06 ... -
STRUTS2核心控制器:FilterDispatcher (写的真心清晰)
2012-10-16 16:07 37023STRUTS2核心控制 ... -
struts2 文件上传
2012-08-12 16:20 15782、新建Action 第一种方式 packag ... -
Struts2实现的6位数字的验证码程序
2012-08-05 16:39 1220http://ipc.iteye.com/bl ... -
Struts2 异步跳转页面被js extjs jquery ajax 拦截(转)
2012-08-04 16:51 4936Struts2中使用getJSON方式进行 ... -
struts2 拦截器权限控制
2012-08-04 10:37 1670工程布局: 直 ... -
struts2学习的博客
2012-02-26 10:59 1243http://downpour.iteye.com/blog/ ... -
拦截器 参数不过去
2012-02-26 10:28 4581还是同样的问题,拦截器在以前学的时候,学的 ... -
struts 国际化乱码
2012-02-25 09:15 1718差不多半年没复习框架了,都在搞论文和打基础,什么算法和数 ... -
struts2国际化
2012-02-25 08:38 1479struts2国际化 在struts2中需要做国际化的有 ... -
struts2拦截器的实现
2012-02-25 08:39 1589如何使用struts2拦截 ... -
struts2连mysql乱码解决方法
2011-08-27 20:34 1518(2009-11-12 20:12:47) 转 ... -
关于json与struts2进行数据交互 (2010-11-02 20:17:33) 转载 标签: 杂谈 分类: java技术 为了怕以后的开发中出现同样的问
2011-06-26 21:20 1990关于json与struts2进行数据交互 (2010-1 ... -
struts2 jquery
2011-05-08 09:30 1649使用这个组合,感觉还是很方便灵活的。 1、将struts2的 ... -
struts2 <s:if> list map set 判断为空的问题
2011-04-25 13:18 8470<s:if test="#request.li ... -
struts2 标签 获取 request
2011-04-25 10:44 2363在Action中获取request方法一: 在Action ...
相关推荐
struts2源代码 正宗的 源码struts2源代码 正宗的 源码struts2源代码 正宗的 源码struts2源代码 正宗的 源码
Struts2源码阅读
struts2源代码分析struts2源代码分析struts2源代码分析struts2源代码分析struts2源代码分析struts2源代码分析struts2源代码分析struts2源代码分析
struts2.3.4源代码,不包含xwork源代码,官网下载的
struts1源代码
struts2源码 struts2案例 struts2使用包
struts2 源码分析struts2 源码分析struts2 源码分析struts2 源码分析struts2 源码分析struts2 源码分析
struts2 源码绝对完整,struts2 源码绝对完整。
struts2源码详细解析51CTO下载-struts2源代码分析(个人觉得非常经典)
北大青鸟 struts2 项目源代码 值得一看
张孝祥Struts视频源代码
适合新手学习struts2,使用myeclipse9开发,源码包含拦截器、验证等演示代码。
struts2源码struts2源码struts2源码
struts2 源代码 struts2 源代码 struts2 源代码 struts2 源代码
自己写的 Struts 2源代码 例子(包括Struts2 标签)
struts2 将要进行自定义类型转换的点数据从1个增加到3个 struts3 进行全局的类型转换 struts4 使用Struts2中内部类中的方法进行自定义类型转换,用到的类StrutsTypeConverter struts5 增加集合类型,使用范型 ...
struts2.1.8 源代码 边学边看。认清本质
Struts2源码,让你一眼看穿struts2的原理和运行机制