• SSH-Struts(一)——基本原理


    简单介绍

        Struts框架是MVC的一个实现,它非常好的结合了JSP、Servlet、JavaBean、Taglib等技术。它为MVC的各层提供了良好的支持,就像房地产商盖房子时先盖的大楼框架。

    仅仅要引入到项目就相当于你已经有了主要的雏形。
        ok,在概念的层面去理解偏技术的知识,我不觉得这是一个好的出发点。对于这类知识的学习最好的方法应该是,动手。所以,我们不寻求准确的概念定义。而是从使用中来认知。


    回想

        MVC

        作为MVC的一个实现。学习之前我们先简单的回想一下MVC的内容。MVC架构模式。将一个应用程序的出入、处理、输出流程分为:模型层、视图层、控制层。MVC模式下的各层关系和功能例如以下图(注:图片来源于《征服JSP企业站点开发》443页):

        有关MVC的东西都在这张图里了,这里要提个题外话:MVC和三层的关系。听到也看到不少关于这两个的讨论,结论基本都是这两种模式没有关系。个人觉得这是从两种不同的角度去优化程序结构的。

    MVC是从处理流程的角度去划分:显示、控制、处理;而三层则是从功能的角度出发:显示、逻辑处理、数据訪问。这两种模式是不冲突的!他们的关系也就是这么个关系了,不能简单的说是有或者没有关系。有点太粗暴了。

        Model1

        Model1也是MVC的一种,通过JSP+JavaBean来实现。由于JSP页面能够非常方便的写入JavaBean的代码涉及业务逻辑,也能够结合Html用用于显示。又能够通过Javascript来控制流转。也就是说JSP在应用程序中担当了多种角色:负责与client的通信、处理请求、处理回复。

    这种结构的长处是简单、方便,能够高速的完毕应用开发。同一时候。也由于这种结构也导致了其开发的分配以及后期的维护的困难。如图为Model1的结构(注:图片来源《STRUTS有用开发指南 基于MVC+MYECLIPSE的JAVA WEB应用开发》3页)

        Model2

        为了改善Model中JSP页面的指责过多而带来的问题,Model2引入了Servlet充当控制器,同一时候不在JSP中写入Java代码来直接訪问数据库。这样就是程序的各个部分职责单一明白了。即JSP页面仅仅负责显示。Servlet负责流转。

    这样维护起来就相对easy。同一时候开发时的分工的界限也能够非常确定。这样做的导致的缺点则是处理流程变的复杂,本来一个JSP就能够搞定的事情如今则须要分多个步骤才干够完毕。Model2的结构例如以下图(注:图片来源同上一张,5页):

    Struts 

        Mode1和Model2仅仅是概念,Sturts则是实现。Struts是MVC的一种实现。说的准确一点应该是Model2的实现。

    直接看图吧:

        Struts对Model2的各个部分都做了实现,可是其最重点的是页面流转的部分。

    即图中的ActionServlet+struts-config.xml的部分,使得页面流转的路径非常清晰。同一时候灵活性也非常好。
       小结:本篇博客主要是从MVC的概念到Struts的架构的实现一步一步的了解。从而可以知道Struts各个部分相应的MVC的什么概念。以及在应用程序中的角色。至于具体的Struts内的组件将在兴许的博客中介绍。

    这样吧!

  • 相关阅读:
    BZOJ 2244 [SDOI2011]拦截导弹 (三维偏序CDQ+线段树)
    BZOJ 2141 排队 (三维偏序CDQ+树状数组)
    BZOJ 3295 [CQOI2011]动态逆序对 (三维偏序CDQ+树状数组)
    BZOJ 3262 陌上花开 (三维偏序CDQ+树状数组)
    BZOJ 4012 [HNOI2015]开店 (树分治+二分)
    CF1090H Linearization
    BZOJ 4141 [Thu Summer Camp 2013]魔塔
    luogu P4654 [CEOI2017]Mousetrap
    luogu P4548 [CTSC2006]歌唱王国
    [总结] min-25筛
  • 原文地址:https://www.cnblogs.com/yxwkf/p/5165107.html
Copyright © 2020-2023  润新知