## 一、原理
![](https://box.kancloud.cn/2016-02-22_56caddfa44d26.jpg)
客户端请求到ActionSeverlet,ActionSeverlet负责截URL进行分发分发到每一个Action上,Action负责和Model打交道然后把相关信息返回到ActionSeverlet ,ActionSeverlet在返回到jsp。
## 二、总结。
Struts体系结构实现了MVC设计模式的概念,它将Model、View和Controller分别映射到Web应用中的组件。Controller负责控制流程,由ActionServlet负责读取struts-config.xml,并使用ActionMapping来查找对应的Action;Model由ActionForm来构建;View是由JSP和Struts提供的自定义标签来实现。
Struts有五个核心类:
ActionSvervlet:
用来接收用户请求和状态改变,以及发出视图选择。当ActionServlet接收到HTTP Request的时候,
调用process()方法,将Request()转发给RequestProcessor来处理。
在一般情况下,我们不需要自己实现或者修改ActionServlet类,仅仅通过在web.xml中进行配置直接
使用就可以了。在某些情况下,我们可以自己扩展ActionServlet类,从ActionServlet继承,实现自己的
ActionServlet。
ActionMapping:
ActionMapping是ActionConfig的子类,实质上是对struts-config.xml的一个映射,从中可以取得所有配
置信息。
Action:
控制器的一部分,用于模型交互,执行状态改变或状态查询,高数ActionServlet下一个选择的视图。
Action类是实现整个体系的核心部分,它在客户请求、界面表示和业务逻辑之间起到一个桥梁的作用。
每一个Action是用来执行一个业务操作。
ActionForward:
ActionForward是对struts-config.cml配置的mapping元素的forward属性的包装。在Action的excute方法
中返回一个ActionForward类。ActionForward把配置文件中forward部分的信息包装起来,减少了应用程序
和物理资源信息之间的耦合性。
ActionForm:
用来保存用户表单信息,它的所有属性应该满足get和set对应。对于一些复杂的系统可以采用
DynaActionForm来构造动态的Form。
以上是Struts的核心类,通过我查阅资料下面让我们从用户操作的角度来理解当一个ActionServlet接收到一个客户请求时的流程,如下图:
![](https://box.kancloud.cn/2016-02-22_56caddfa57545.jpg)
## 三、感受。
通过Struts的学习对Struts有了一个基本的了解,对Struts的基本原理有了一定的掌握,还有对Struts框架中的标签库,scope属性,ActionForm、国际化的应用有了一个初步的了解。一开始学习的时候没啥感觉。等学完以后才发现学习这个框架与学习Javascript和JQuery有点相似,JQuery是javascript的一个封装好的框架,说框架说的其实有点太专业说白了就是javascript的函数库别人封装好的就像我们自己封装的SQLHelper一样。而Struts呢是Java封装的一个函数库。Struts为我们封装优化了MVC,使得MVC使用起来更高效,更快捷。就像JQuery一样。JQuery帮我们封装了Javascript让我们使用起来更加方便。
- 前言
- 菜鸟学习Struts——配置Struts环境
- 菜鸟学习Struts——简易计算器
- 菜鸟学习Struts——bean标签库
- 菜鸟学习Struts——Scope属性
- 菜鸟学习Struts——国际化
- 菜鸟学习Struts——总结
- 菜鸟学习Hibernate——配置Hibernate环境
- 菜鸟学习Hibernate——持久层框架
- 菜鸟学习Hibernate——简单的一个例子
- 菜鸟学习Hibernate——简单的增、删、改、查操作
- 菜鸟学习Hibernate——一对多关系映射
- 菜鸟学习Hibernate——多对多关系映射
- 菜鸟学习Hibernate——缓存
- 菜鸟学习Spring——初识Spring
- 菜鸟学习Spring——第一个例子
- 菜鸟学习Spring——60s让你学会动态代理原理
- 菜鸟学习Spring——60s使用annotation实现简单AOP
- 菜鸟学习Spring——60s配置XML方法实现简单AOP
- 菜鸟学习Spring——60s利用JoinPoint获取参数的值和方法名称
- 菜鸟学习Spring——60s学会Spring与Hibernate的集成
- 菜鸟学习SSH——目录
- 菜鸟学习Spring——SpringMVC注解版前台向后台传值的两种方式
- 菜鸟学习Spring——SpringMVC注解版在服务器端获取Json字符串并解析
- 菜鸟学习Spring——SpringMVC注解版将URL中的参数转成实体
- 菜鸟学习Spring——SpringMVC注解版解析不同格式的JSON串
- 菜鸟学习Spring——SpringIoC容器基于三种配置的对比