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

时间: 2024-11-05 04:50:58

Struts2的结构的相关文章

详解Java的Struts2框架的结构及其数据转移方式_java

Struts2的结构 1.为什么要使用框架? (1)框架自动完成了很多琐屑的任务 对于Struts2来说,它帮助我们方便地完成了数据类型转换.数据验证.国际化等等 Web开发中常见的任务.还有Spring中大量使用的Template模式,都是在让我们的开发 过程更加自动化.智能化.使用框架就是避免重新发明轮子,重新复制这些模板代码. 框架让我们将精力更多地放在更高级别的问题上,而不是常见工作流和基础任务上. (2)使用框架就是优雅地继承了框架背后的架构 框架背后的架构通常定义了一系列的工作流程,

结构-struts2 基本原理 个文件的传递问题

问题描述 struts2 基本原理 个文件的传递问题 1.web项目结构如图 2.struts.xml 文件 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/d

dwz 主从表结构 struts2 后台应该怎么做才能读取从表数据

问题描述 dwz主从表结构struts2后台应该怎么做才能读取从表数据<divclass="tabs"><divclass="tabsHeader"><divclass="tabsHeaderContent"><ul><liclass="selected"><ahref="javascript:void(0)"><span>

前台struts2标签或者jstl标签遍历树形结构的list

问题描述 现在是从后台已经拿到一个list<里面的数据时树形结构的>,返回到前台使用jstl标签递归的时候,不能重新赋值list,谁有其他更好的办法,把这个list遍历显示到前台.不用js 解决方案 解决方案二:为什么不用jquery的tree插件啊

Struts2配置web.xml

  任何MVC框架都需要与Web应用整合,这就不得不借助于web.xml文件,只有配置在web.xml文件中Servlet才会被应用加载. 所有的MVC框架都需要Web应用加载一个核心控制器,对于Struts2框架而言,需要加载FilterDispatcher   只要Web应用负责加载FilterDispatcher,FilterDispatcher将会加载应用的Struts2框架.   因为Struts 2将核心控制器设计成Filter,而不是一个普通Servlet.故为了让Web应用加载F

Struts2+JFreeChart

前言      关于Struts2入门以及提高等在这里就不介绍了,但是关于Struts2的学习有以下推荐: struts2-showcase-2.0.6.war:这个是官方自带的Demo(struts-2.0.6-all.zip\struts-2.0.6\apps目录下),非常全面,直接部署就可以了(很多朋友Struts2能学很好我估计还是直接从这里学来的). wiki-WebWork:入了门的朋友应该都知道,strust2由webwork2和struts1.x合并起来的,但主要还是以webwo

使用Felix和Struts2开发Web应用

简介: 本文首先对 OSGi 和 Felix 进行了简要的介绍,然后通过一个示例详 细描述了如何使用 Felix 和 Struts 开发 Web 应用,同时演示了 OSGi 的模块 化及动态部署特性.随后,讲解了 OSGi bundles 管理常用的命令操作,以及在 开发过程中的几个常见的问题的解决方法. 引言 Open Service Gateway Initiative(OSGi) 是一个针对 Java 动态模块开发的 规范.基于中间件的 OSGi 技术提供了一个面向服务,基于组件的开发环境

Struts2教程3:struts.xml常用配置解析

在本文中将详细讲述struts.xml文件的常用配置及注意事项. 1.使用<include>标签重用配置文件 在Struts2中提供了一个默认的struts.xml文件,但如果package.action.interceptors等配置比较多时,都放到一个struts.xml文件不太容易维护.因此,就需要将struts.xml文件分成多个配置文件,然后在struts.xml文件中使用<include>标签引用这些配置文件.这样做的优点如下: 结构更清晰,更容易维护配置信息. 配置文

Struts2教程--第一章 搭建Struts2开发环境

在Struts的官方网站上,写着下面两段话: Apache Struts 2 is an elegant, extensible framework for creating enterprise-ready Java web applications. The framework is designed to streamline the full development cycle, from building, to deploying, to maintaining applicatio