struts源于何方

     当学习或工作时,有些同学会谈到熟悉struts、hibernate、spring等等框架,貌似熟悉这些框架是精通java的表现,但是我们应该首先弄明白为什么要学框架?是为了学习而学习?还是为了工作而学习?

     就拿struts框架举例子,为什么要学习struts框架?

     要了解struts框架,首先必须理解mvc是怎么回事?mvc又是如何冒出来的呢?

     开始写程序的主要的目的是为了实现功能,至于如何设计不管。也就是过程不重要,结果重要。所以当时的设计思路就是Model1,什么是Model1?jsp直接调用后台。

     结构图如下:

     

    这种情况:把页面和业务逻辑代码都写到一块,写在jsp文件中,也就是在文件表头有一大部分java代码。

    但是这种设计模式,随着业务发生的改变,jsp文件需要大批量的改动。缺点是耦合度太强。

    紧接着,为了减少jsp与后台业务逻辑的关联度,逐渐地把jsp文件中的大部分java代码提取出来,放到一个类中,这样就形成了Model2。其中提取java代码放到类就是Servlet。

    Model2的结构图如下:

   

    这种情况:jsp的职责减轻,只用来显示界面。而接受界面的参数转化的操作则放到Servlet中。

   其实Model2就是典型的MVC。

    Model2中优点是每层职责明确清晰,使界面和数据分离。

    缺点是:若是完全实现MVC,则增加了编写的复杂度。

    比如:开始我们遇到转向问题,Servlet转到jsp中,我们都已经写死了,比如程序中:

           request.getRequestDispatcher("/flowcard/flow_card_maint.jsp").forward(request, response);

    若是修改jsp文件名称时,还需要修改Servlet。

    并且表单上的获取的数据都是字符串,我们必须根据需要将字符串手动转化。

    而这些问题,使用struts框架一扫而光,至于表单数据类型的转化,错误的处理,表单的转向,struts做了很好的封装。

    struts框架很好地实现了MVC模式,封装了很多东西,不需要我们程序员手动封装操作。因此,struts为了帮助减少我们用mvc设计开发的时间。

    那无论我们用model1或这model2,或者struts,我们在设计时需要什么呢?

    第一:页面;用来展示给客户的载体。

    第二:数据:页面展示需要的内容来源。

    第三:处理数据的场合:如何处理页面所需的数据呢?

   其实这三点就是我们所说的MVC。

   页面--V;数据--M;处理数据的场合--C

   struts是web层的进一步划分。层内容的划分。那struts的中的m、v、c又代表什么呢?

  其中的v就是单纯的界面;

  而其中c就是struts中的核心控制类;

  而m表现了两个方面:

  •   系统的状态
  •   系统状态改变的操作。

  那struts中mvc对应的组件:

  • v:由jsp展现。其中可以使用struts中标签库。
  • c:struts中的核心控制类:ActionServlet
  • m:与表单上数据对应的ActionForm以及对ActionForm的操作Action。

  那struts中是如何实现MVC呢?

  

   ActionServlet是struts中的核心类,用户需要完成的Action以及ActionForm。并且在配置文件中进行配置以便struts识别。struts根据配置文件中的配置进行调用。

 上图是struts实现mvc的粗粒度图,下篇博客会继续详解struts实现mvc的细粒度图。

  只要明白MVC框架,以及struts框架的价值,那么学习具体的细节应该不是问题。因此框架不重要,概念才是王道。

  • 13
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 18
    评论
目录 第一章 背景知识 ................................................................................................................... 2 第十四节 . 银行业发展动态 ............................................................................................... 2 第二章 中间业务 ................................................................................................................... 5 第二十四节 . 融资租赁业务 ........................................................................................... 5 第三章 银行 IT 系统 ............................................................................................................ 7 第三节 . 软件开发过程 ................................................................................................... 7 第九节 . IT 架构 .............................................................................................................. 9 第四章 银行业务系统 ......................................................................................................... 10 第十节 . 电子银行系统 ................................................................................................. 10 手机银行 ......................................................................................................................... 10 第十一节 . 银行卡系统 ..................................................................................................... 12 第五章 管理信息系统 ......................................................................................................... 13 第八节 . 银行卡分析系统 ............................................................................................. 13 客户分析 ......................................................................................................................... 14 特约商户分析 ................................................................................................................. 15

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值