Struts2的结构

简介:

Struts2:
(1)客户端提交一个HttpServletRequest请求(.action或JSP页面)
(2)请求被提交到一系列Filter过滤器,如ActionCleanUp和FilterDispatcher等
(3)FilterDispatcher是Struts2控制器的核心,它通常是过滤器链中的最后一个过滤器
(4)请求发到FilterDispatcher后,FilterDispatcher询问ActionMapper是否需要调用某个Action来处理这个Request(一般根据URL后缀是否为.action来判断)
(5)如果ActionMapper决定需要调用某个Action,FilterDispatcher则把请求交到ActioProxy,由其进行处理.
(6)ActionProxy通过Configuration Manager(它会访问struts.xml)询问框架的配置文件,找到需要调用的Action类.
(7)ActionProxy创建一个ActionInvocation实例,而ActionInvocation通过代理模式调用Action,(在调用之前会根据配置文件加载相关的所有Interceptor拦截器)
(8)Action执行完毕后,返回一个result字符串,此时再按相反的顺序通过Interceptor拦截器.
(9) 最后ActionInvocation负责根据struts.xml中配置的result元素,找到与返回值对应的result,决定进行下一步输出.

参见:http://www.blogjava.net/huamengxing/archive/2009/10/21/299153.html
http://blog.csdn.net/xiaojianpitt/article/details/6319429

目录
相关文章
|
21天前
|
XML 前端开发 Java
struts基本概念(1)
struts基本概念(1)
13 1
|
21天前
|
Java 应用服务中间件
struts基本概念(2)
struts基本概念(2)
16 0
|
Java
Struts2中StrutsRequestWrapper类
该类可获取一些请求地址,在自定义struts2标签时用到 1 //获取值栈 2 Map cont= this.getStack().getContext(); 3 StrutsRequestWrapper req=(StrutsRequestWrapper)cont.
849 0
|
Java Apache Maven
struts 结果类型
FreeMarker 一个模板引擎 即 FreeMarkergithub https://github.com/apache/freemarker网址 https://freemarker.apache.
1005 0
|
Java JavaScript 前端开发
[Struts]在jsp里处理比较复杂的内容?
今天遇到一个问题,到现在也没能比较圆满的解决,是不是Struts在标签库上还不够完善呢。比如有一个界面是显示课件列表的,在最后一栏里可以对数据进行操作,如下所示: Code Name Author OP 10000001 风洞模型课件 刘金东 View Edit Delete 1000000.
1095 0
|
Java 数据安全/隐私保护 前端开发
|
前端开发
struts2 中的 addActionError 、addFieldError、addActionMessage的方法
addActionError 、addFieldError、addActionMessage都是ActionSupport的方法   一、addActionError("错误内容"):Action级别的错误消息this.
1095 0
|
索引
struts2一些概念介绍和标签的使用
  依赖注入   模块包含 struts.xml的模块包含格式   OGNL   对象导航语言   有个超大的好处就是根据对象访问属性,避免混乱。  OGNL标签分为:data tags和 control  tags 一、数据标签 property标签 获取值栈中的普通对象 是访问哪些有get和set的属性的方法 name:name: 访问值栈中的普通对象的普通方法    1.
934 0
|
前端开发 数据格式 XML
Struts2的核心文件
web.xml 任何MVC框架都需要与Web应用整合,这就不得不借用于web.xml文件,只有配置web.xml文件中Servlet才会被应用加载 Model2:JSP+JavaBean+Servlet 通常,所有MVC框架都需要Web应用加载一个核心控制器,对于Struts2框架而言,需要加载StrutsPerpareAndExecuteFilter,只负责Web应用加载StrutsPerpareAndExecuteFilter,StrutsPerpareAndExecuteFilter将会加载Struts2框架。