码迷,mamicode.com
首页 > 其他好文 > 详细

Struts2--- 一步步的产生史

时间:2015-03-30 23:09:44      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:

struts2一步步的产生史

1 JSP:

       在早期的web应用中使用的都是html的静态页面,jsp通过在HTML文件中嵌入java脚本,实现了页面动态。HTML标签负责布局和显示外观。java代码负责提取动态数据,实现业务逻辑。对于简单的应用,这种方式能够简化开发难度,加快开发速度,但是同时也带来了问题,对于较大的项目,大量的html与java代码混杂在一起,导致页面显示逻辑和业务逻辑混乱,是代码的可读性差,维护比较困难。

       为了分离显示和业务逻辑,sun公司制定了两种jsp开发模式model1和model2。

2 model1 :

        使用jsp和javabean技术将页面显示和业务逻辑分开。jsp负责页面显示,想javabeans提交请求,javabeans用来实现业务逻辑和处理数据。

技术分享

        从图中不难看出,jsp负责处理请求,并将处理结果返回。所有的数据通过javabeans处理,jsp负责显示。但是它也存在着弊端,对于大型的应用系统,在页面中大量的java语句将页面逻辑和业务逻辑混杂,不易理解和维护。

3 model2 

       在model1中,jsp页面嵌入了流程控制代码和部分的逻辑处理代码,将这部分代码提取出来,放到一个单独的角色中,这个角色就是控制器角色,而这样的web架构就是model2。model2符合mvc架构模式

技术分享

Servlet充当控制器的角色,它接受请求,并且根据请求信息将他们分发给形影的jsp页面来产生响应。Servlet控制器还根据jsp视图的需求生成javabeans的实例并输出给jsp。采用model2的高价购,可以将页面的显示、业务逻辑的处理和流程的控制和清晰的区分开,jsp负责数据的显示,javabeans负责承载数据以及业务逻辑的处理,servlet负责流程的控制。前端页面设计人员和后端java开发人员同步开发,互不干扰。

4 web框架--struts

基于mvc架构模式开发的web应用程序,容易出现多个控制器,在编写控制器时,页面导航的处理也比较复杂。通过对基于mvc框架web应用程序进行分析。
相同:
        (1)所有的请求直接访问controller,由控制器对请求进行分发。
        (2) 控制器实例化javabean对象,有javabean对象处理业务逻辑,和处理数据。
        (3)控制器根据请求处理的结果,向用户呈现相应的视图。
不同:
(1)用户请求URL的不同应用了不同处理单元
(2)不同表单提交的数据需要不同的javabean对象来保存数据
(3)请求处理结果的不同导致控制器向用户呈现视图的不同。
根据这些相同不同之处, 可以开发一款web软件,它按照mvc架构实现整个调用流程,对于需要变化的地方采用外部配置文件的方式来解决。有了这种灵活配置的方式,就可以把web软件开发成一个平台,提供给其他开发者使用,web框架诞生。使用web框架减轻了我们开发web应用的负担,提高开发效率,降低维护成本。
web框架有很多,比如Struts、WebWork、Spring MVC、Tapestry、JSF、WebPage3.0。后面的内容中讲继续介绍struts框架。

4.1 struts1 

4.1.1 struts1的结构图:

技术分享

(1)控制器

struts1的控制器有两部分组成,一部分是actionservlet,这个类继承自httpservlet,有struts1提供,作为中央控制器,它根据用户请求选择相应的action类对请求进行处理。另一部分是action类,负责创建业务组件,调用业务组件方法完成业务逻辑,有开发人员编写,struts1框架提供了action基类,我们编写action类的时候需要继承Action基类。

(2)模型

模型分为2部分,一部分是struts1框架规定的form bean对象,负责保存提交的表单数据。另一部分由开发人员为本系统的业务逻辑而编写的业务组件类。

(3)视图

struts1 框架支持JSTL、JSF、XSLT等

4.1.2 缺点

1 actionform麻烦
2 单元测试困难

4.2 struts2 

总结:

       根据struts2的产生来看,一种框架的产生和技术的产生和发展都是在需求的推动下,以及现有技术存在的问题而产生的。



Struts2--- 一步步的产生史

标签:

原文地址:http://blog.csdn.net/zhangyingjie09/article/details/44756513

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!