框架学习1-常见框架的结构和分析1

在上一篇的内容里,简单说了说框架的学习,主要讲解了什么是框架,框架的一些相关问题,还有就是如何学习框架。那么这篇博客介绍一些常见的框架的结构和分析。

我们所学习的技术框架有很多,例如struts1、struts2、JSF、Spring、SpringMVC、Hibernate、ibatis····在上篇博客我说了我们可能在开发的路途上会要学习这些框架,我也给出了我对框架学习的几点:

我们首先要看一下这个框架属于开发结构中的那一层。因为我们的开发都是要用分层的思想来做的,所以我们第一个就要看看我们开发分层中,各个层次之间有哪些框架。

我们从图上看到了那些框架属于哪一层的(这里还有很多框架没有涉及到)。之后我们来看一些常用的框架(这个常用相对于个人而言,我这里所说的常用针对我自己来说,如果这里我没有介绍全的话,大家可以到相关的框架官网去查阅一下资料自主学习)。

下面我就简单的介绍一些我经常使用的框架的结构和一些分析:

Struts2框架(分为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框架耦合性太高

这篇博客就写到这里,如果再写篇幅可能会过长,对读者的阅读造成负面影响,所以我会在下面的博客中陆续介绍我经常使用的框架,当然我也会在这些同层之间的框架的分析中加入各个框架的区别,当然在适当的地方会画一些图片来表示他们之间的知识关联性,希望读者能够我一些建议和意见。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值