• 【SpringMVC架构】SpringMVC介绍(一)


    在写这篇博文之前,先简单说一下写这个系列博文的原因,说白了矫情一下,原因有二。

    1. 博主曾经写过一篇[SpringMVC+Spring4+Mybatis3集成,开发简单Web项目+源码下载](http://blog.csdn.net/jiuqiyuliang/article/details/45132493)的文章,简单易懂,但是对于没有接触过SpringMVC框架的博友来说,还是有一定难度的。
    2. 并且在上篇博文中,有博友留言,希望:有时间把教程完善一下。有图为证:
      这里写图片描述
      当然,也非常感谢这位博友的关注和支持,下面我们开始今天的内容。

    这篇博文,我们主要介绍什么是SpringMVC,以及重新解释一下什么是MVC,以及MVC的详细执行步骤。

    什么是SpringMVC?

    在介绍SpringMVC之前,我们先看一张非常熟悉的图:
    这里写图片描述
    相信看这篇文章的博友都听说或者使用过Spring,并且我之前的文章也详细的讲解了Spring的整体框架,以及IOCAOPHibernateMybatis等框架,JMS等等,同样Spring自己也支持对DAO层的开发,甚至对于最后一个Web模块,我们也使用过Struts,以及JSP等等。

    到底什么是SpringMVC:
    1. 从上面的图中,Web模块第一个就是Spring Web MVC,其实SpringMVC是Spring框架的一个模块,我们可以从Spring的整体结构中看出来。
    2. Springmvc和Struts1.x,2.x都属于表现层的框架,是基于mvc的web框架。

    基于MVC的web框架,看上去挺高大上的,不用害怕,下面我们介绍一下什么是MVC。

    什么是MVC?

    在介绍Struts的时候,我们已经简单的介绍过MVC,当时理解的比较浅,这次我们深入的介绍一下MVC。

    说白了,mvc就是一个设计模式,最简单的web界面开发,我们直接写一个jsp页面就完事了,但是现在将web端分成了三层,全名是Model View Controller,是模型(model)—视图(view)—控制器(controller)的缩写,目的是为了系统的框架,分层更加清晰,可扩展性更强,降低系统的耦合度。

    既然MVC是一个设计模式,当然既可以在C/S(客户端服务器)模式下使用,也可以在B/S(浏览器服务器)模式下使用。下面我们介绍在B/S模式下的应用,如下所示:
    这里写图片描述

    下面我们再根据这张图详细的讲解一下MVC的执行步骤,以及各部分的作用:

    MVC执行步骤
    1. 用户发起Request请求至控制器(Controller),控制器接收用户的请求,并将请求委托给模型进行处理。
    2. 控制器请求模型(Model),模型处理业务数据并得到处理结果,模型通常是指业务逻辑,包括Pojo、Service、Dao等三层
    3. 模型将处理结果返回给控制器
    4. 控制器将模型数据在视图(View)中展示
      说明:web中模型无法将数据直接在视图上显示,需要通过控制器完成。如果在C/S应用中模型是可以将数据在视图中展示的。
    5. 控制器将视图响应结果,Response响应给用户,通过视图展示给用户数据或者处理结果。
    MVC各部分的作用

    我们知道了MVC的执行步骤,我们简单的总结一下MVC各部分的作用:
    1. Controller的作用
    封装web请求为一个数据对象、调用业务逻辑层来处理数据对象、返回处理数据结果及相应的视图给用户。
    2. Model的作用
    处理业务数据,并返回处理结果
    3. View的作用
    渲染视图,并将数据或处理结果展示给用户

    总结

    这篇博文我们知道了,什么是SpringMVC,以及更加深入的介绍了MVC,相信大家对MVC有了深入的理解。

    下篇博文,我们做一个SpringMVC的简单实例,敬请期待。

  • 相关阅读:
    我也发布一个MVC程序(一)
    Windows Phone中使用Local DataBase与ISolateStorage—在MVVM模式下(二)
    WPF程序只允许一个启动在MVVMLight框架下找不到资源的问题
    我也发布一个MVC程序(二)
    Windows Phone 不能Debug的解决方案
    Windows Phone中使用Local DataBase与ISolateStorage—在MVVM模式下(三)
    加密算法的基础学习
    我理解的前端发展方向
    我理解的前端工程化
    数据库三大范式
  • 原文地址:https://www.cnblogs.com/ainima/p/6330952.html
Copyright © 2020-2023  润新知