spring boot搭建网站后记之MVC

 MVC设计模式

  第一部分了解了Maven项目文件的基本分布,但是为什么要分成这几个文件?则需要了解Spring MVC的知识。

  Spring MVC是基于MVC的Web框架,那什么是MVC?MVC是一种设计模式。

  设计模式总结日常开发中的经验和编写代码的方法,抽取其中的模式,从而让我们编程更方便。 例如,原来使用一个文件开发程序。但是现在改成模型,视图和控制器三个层次进行开发,从而更好地维护和扩展项目。

 

B/S系统下的MVC

  图解:

 

  具体过程:

  1.用户进行request请求,送给控制器Controller。

    Controller的功能是什么?接受用户请求并响应。

  2.控制器不能对request的请求进行处理(因为分层了嘛,如果Controller能处理,那还能叫MVC吗?)。请求模型进行处理。

    模型是什么呢?见过模型飞机吗?别看它小,它能独立运作,而且完全能自己飞行。在MVC中,负责项目中的“数据+ 业务逻辑”部分就是Model(M)。

  3.模型将处理结果返回给Controller,Controller将模型视图给view层进行视图渲染。

    视图渲染是什么意思?将模型数据填充到request域。

  4.Controller给用户进行response响应。

  注意:B/S模型下模型无法将数据直接将数据填充到视图。

 

Spring MVC

  Spring MVC是spring框架中的一个模块。在spring框架中的位置如下:

 

 

spring mvc处理逻辑:

 

  具体过程:

  1.用户发送request请求(url地址)到前端控制器中。

    在spring mvc中,前端控制器相当于mvc中的Controller层次,其名称为DispatchcerServlet。作用是接受请求并响应,相当于转发器。

  2.DispatcherServlet将url地址发送到HandlerMapping处理器映射器。

    为什么出现了一个HandlerMapping?因为用户发送的是url,而不同类的链接应该由不同的模型处理。可以通过HandlerMapping找到具体的模型进行处理。    

     HandlerMapping。通过xml配置,注解查找Handler。

       Handler是什么?Handler是处理器,处理器相当于模型(M),Handler有多种。

  3.HandlerMapping返回一个执行链HandlerExecutionChain对象给DispatcherServlet。

    HandlerExecutionChain对象里面包含具体的Handler信息。  

  4.DispatcherServlet拿到HandlerExcutionChain对象,将其发送给HandlerAdapter处理适配器。

    处理器适配器:也是一种设计模式,它可以调用不同的Handler。例如:变压器。提供的电压一样,经过变压器之后,可以转成220v,300v电压。

  5.HandlerAdapter执行具体的Handler。

    按照HandlerAdapter的规则执行Handler。因此,编写Handler时,要参照HandlerAdapter规范。

    Handler是后端控制器,叫做Handle处理器,常称为Controller。在MVC中相当于model。

  6.Handler处理器处理后,返回ModelAndView对象(模型和视图的结合体)给HandlerAdapter。

    ModelAndView是spring mvc框架底层对象,包括model和view数据。

  7.HandlerAdapter返回ModelAndView到DispatcherServlet。

  8.DispatcherServlet将ModelAndView对象发送给视图解析器,请求进行视图解析。

    根据逻辑视图名解析成真正的视图。

  9.视图解析器返回view给DispatcherServlet。

    view是视图(包含jsp,fremaker,excel,pdf...)。它是一个接口,实现类支持不同的view类型。

  10.DispatcherServlet请求进行视图渲染。

    视图渲染将模型数据(在ModelAndView对象中)填充到request域。

  11.DispatcherServlet给用户reponse响应结果。

 

总结:

  1.前端控制器DispatchServlet几乎与每个组件都有信息传递,因此它非常重要,相当于中央处理器。有了它,减少了其他组件的耦合性。

  2.spring mvc里面有两处体现了可扩展性。  

    2.1.一种是HandlerAdapter管理不同的Handler,因此Handler的增加不会导致其他地方改动。

    2.2.另一种是视图解析器。它可以解析不同的视图,就算视图增加,其他地方也不需要改动。

  3.需要程序员开发的是jsp视图和handler处理器。

    

 注意:图不全可以缩小页面。

参考资料:传送门

转载于:https://www.cnblogs.com/yulianggo/p/10448945.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值