您的位置:首页 > 编程语言 > Java开发

框架学习: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框架耦合性太高

这篇博客就写到这里,如果再写篇幅可能会过长,对读者的阅读造成负面影响,所以我会在下面的博客中陆续介绍我经常使用的框架,当然我也会在这些同层之间的框架的分析中加入各个框架的区别,当然在适当的地方会画一些图片来表示他们之间的知识关联性,希望读者能够我一些建议和意见。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: