框架学习:struts1框架的结构和分析
2012-08-17 14:21
176 查看
在上一篇的内容里,简单说了说框架的学习,主要讲解了什么是框架,框架的一些相关问题,还有就是如何学习框架。那么这篇博客介绍一些常见的框架的结构和分析。
我们所学习的技术框架有很多,例如struts1、struts2、JSF、Spring、SpringMVC、Hibernate、ibatis····在上篇博客我说了我们可能在开发的路途上会要学习这些框架,我也给出了我对框架学习的几点:
我们首先要看一下这个框架属于开发结构中的那一层。因为我们的开发都是要用分层的思想来做的,所以我们第一个就要看看我们开发分层中,各个层次之间有哪些框架。
我们从图上看到了那些框架属于哪一层的(这里还有很多框架没有涉及到)。之后我们来看一些常用的框架(这个常用相对于个人而言,我这里所说的常用针对我自己来说,如果这里我没有介绍全的话,大家可以到相关的框架官网去查阅一下资料自主学习)。
下面我就简单的介绍一些我经常使用的框架的结构和一些分析:
Struts框架(分为struts1和struts2):
一、Struts框架结构图:
优点:
1. Struts框架是一个基于mvc的框架,所以它继承了所有mvc的优点,例如:复用性好,团队开发分工明确,结构层次分明等
2. 给程序开发者在servlet层上节约了大量的开发时间,应用程序开发者不再去触及大量的servlet的编写,仅仅变换为配置文件。
二、Struts1框架
1.框架的结构图:
2. Struts1框架有五个常用对象:actionservlet、actionmapping、actionform、action、actionforward
a) Actionservlet是核心控制,URL 地址映射、ActionForm的匹配、 Action 的执行都需要这个类来进行导航
b) Actionmapping:它们可将请求URI映射到Action类,并且将Action类与ActionFormbean相关联
c) Actionform:收集表单数据
d) Action: 完成所需的业务逻辑,确定要跳转的页面
e) Actionforward:用来封装转发路径的
3. Struts1框架的执行流程:
1) 检索和用户匹配的ActionMapping实例,如果不存在,就返回请求路径无效的错误信息
2)如果ActionForm实例不存在,就创建一个ActionForm的对象,把客户提交的表单数据封装到ActionForm对象中。
3)根据配置信息决定是否要进行表单验证,如果需要,就调用ActionForm的validate()方法
4)如果validate()方法放回null,或者并不包含ActionMessage的ActionError对象,就表示验证成功
5) ActionServlet根据ActionMapping所包含的映射信息决定将请求转发给那个action,如果相应的action实例不存在,就先创建这个action对象,然后再调用这个action的excute()方法
6)action的execute()方法返回一个ActionForword对象,ActionServlet会把客户请求转发给ActionForword对象所指向的JSP组件
7)ActionForword对象指向JSP组件生成动态网页返回给客户
4.优点:和struts框架的优点相同
5.缺点:
1) 表现层技术单一:仅能用jsp
2) 与servletAPI耦合性高,难于测试(httpservletrequest、httpservletresponse)
3) 严重依赖于ServletAPI(继承action,继承actionform),与struts1框架耦合性太高
这篇博客就写到这里,如果再写篇幅可能会过长,对读者的阅读造成负面影响,所以我会在下面的博客中陆续介绍我经常使用的框架,当然我也会在这些同层之间的框架的分析中加入各个框架的区别,当然在适当的地方会画一些图片来表示他们之间的知识关联性,希望读者能够我一些建议和意见。
我们所学习的技术框架有很多,例如struts1、struts2、JSF、Spring、SpringMVC、Hibernate、ibatis····在上篇博客我说了我们可能在开发的路途上会要学习这些框架,我也给出了我对框架学习的几点:
我们首先要看一下这个框架属于开发结构中的那一层。因为我们的开发都是要用分层的思想来做的,所以我们第一个就要看看我们开发分层中,各个层次之间有哪些框架。
我们从图上看到了那些框架属于哪一层的(这里还有很多框架没有涉及到)。之后我们来看一些常用的框架(这个常用相对于个人而言,我这里所说的常用针对我自己来说,如果这里我没有介绍全的话,大家可以到相关的框架官网去查阅一下资料自主学习)。
下面我就简单的介绍一些我经常使用的框架的结构和一些分析:
Struts框架(分为struts1和struts2):
一、Struts框架结构图:
优点:
1. Struts框架是一个基于mvc的框架,所以它继承了所有mvc的优点,例如:复用性好,团队开发分工明确,结构层次分明等
2. 给程序开发者在servlet层上节约了大量的开发时间,应用程序开发者不再去触及大量的servlet的编写,仅仅变换为配置文件。
二、Struts1框架
1.框架的结构图:
2. Struts1框架有五个常用对象:actionservlet、actionmapping、actionform、action、actionforward
a) Actionservlet是核心控制,URL 地址映射、ActionForm的匹配、 Action 的执行都需要这个类来进行导航
b) Actionmapping:它们可将请求URI映射到Action类,并且将Action类与ActionFormbean相关联
c) Actionform:收集表单数据
d) Action: 完成所需的业务逻辑,确定要跳转的页面
e) Actionforward:用来封装转发路径的
3. Struts1框架的执行流程:
1) 检索和用户匹配的ActionMapping实例,如果不存在,就返回请求路径无效的错误信息
2)如果ActionForm实例不存在,就创建一个ActionForm的对象,把客户提交的表单数据封装到ActionForm对象中。
3)根据配置信息决定是否要进行表单验证,如果需要,就调用ActionForm的validate()方法
4)如果validate()方法放回null,或者并不包含ActionMessage的ActionError对象,就表示验证成功
5) ActionServlet根据ActionMapping所包含的映射信息决定将请求转发给那个action,如果相应的action实例不存在,就先创建这个action对象,然后再调用这个action的excute()方法
6)action的execute()方法返回一个ActionForword对象,ActionServlet会把客户请求转发给ActionForword对象所指向的JSP组件
7)ActionForword对象指向JSP组件生成动态网页返回给客户
4.优点:和struts框架的优点相同
5.缺点:
1) 表现层技术单一:仅能用jsp
2) 与servletAPI耦合性高,难于测试(httpservletrequest、httpservletresponse)
3) 严重依赖于ServletAPI(继承action,继承actionform),与struts1框架耦合性太高
这篇博客就写到这里,如果再写篇幅可能会过长,对读者的阅读造成负面影响,所以我会在下面的博客中陆续介绍我经常使用的框架,当然我也会在这些同层之间的框架的分析中加入各个框架的区别,当然在适当的地方会画一些图片来表示他们之间的知识关联性,希望读者能够我一些建议和意见。
相关文章推荐
- 框架学习:struts1框架的结构和分析
- 框架学习:ibatis框架的结构和分析
- Android学习指南之二:分析Android框架及Android程序的目录结构
- 框架学习:ibatis框架的结构和分析
- 框架学习:webWork框架和struts2框架的结构和分析
- 框架学习:webWork框架和struts2框架的结构和分析
- 框架学习:ibatis框架的结构和分析
- 框架学习:hibernate框架的结构和分析
- 框架学习2-常见框架的结构和分析2 .
- 框架学习:hibernate框架的结构和分析
- jQuery源码逐行分析学习01(jQuery的框架结构简化)
- 【数据结构与算法学习笔记】PART1:算法分析(计算,计算模型,大O记号,算法分析,迭代与递归,动态控制)
- JUnit3原理分析二(框架结构与源码分析)
- 框架学习之Struts2 第一节 开发环境的搭建和第一个应用开发
- JEE5标准与Struts/Spring/Hibernate等诸多开源框架的比较分析
- 学习笔记 --- LINUX I2C总线驱动框架分析
- DTcmsV4.0分析学习——(1)数据库结构分析
- Struts学习---------Validator框架验证
- Struts结构分析
- Mark一下,关于Struts开源框架学习