【SpringMVC架构】SpringMVC介绍(一)

本文深入介绍了SpringMVC框架及其在Web开发中的作用,同时详细解析了MVC设计模式的工作原理和执行流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

  1. 博主曾经写过一篇[SpringMVC+Spring4+Mybatis3集成,开发简单Web项目+源码下载](http://blog.youkuaiyun.com/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的简单实例,敬请期待。

<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值