SpringMVC简述

MVC开发模式(此处说的是B/S下的MVC):
Model(模型):pojo,action,service,dao
View(视图):jsp
Controller(控制器):dispatcherServlet(Strus2中是Filter)

B/S下的应用流程:
1.用户对浏览页面有request请求,此时请求便传入,交给控制器。
2.Controller通过请求的内容,对Model进行操作控制,之后Model返回对应的结果,将内容填充到request中。
3.Controller通过返回的结果渲染View,再将View返回给浏览器,即Response。

在SpringMVC(SpringMVC本属于Spring,因此在SSM整合中,我们之前在整合Spring与Mybatis之后就无需再做别的整合了)中
流程则更加复杂:
1.用户对浏览页面有request请求,此时请求便传入,dispatcherServlet便是前端控制器。
2.前端控制器便通过HandlerMapping映射器查找Handler。
3.前端控制器得到返回的Handler之后,调用HandlerAdapter在收到之后去真正执行Handler。
4.Handler执行返回ModelAndView返回给HandlerAdapter,并由HandlerAdapter交付给前端控制器。
5.前端控制器这个时候就会去找View的解析器,ViewResolver,根据逻辑视图获得真正的视图。
6.ViewResolver返回对应的View(这个是
7.前端控制器通过对View的数据填充,渲染,得到视图结果,再将其作为Response返回给浏览器。
PS:ModelAndView是SpringMVC底层的一个对象,包括ModelAndView。
这么只看字面上的东西确实可能难以理解,大家可以看一下大佬们做的图示。

而且初学者可能看到这么多的组件,一时难以接受,我从自己学习时候的角度分析一下整体流程。

  1. 我作为一个用户的时候,访问一个界面,想要提交表单,便会点击提交按钮。(玩游戏时候,这或许就触发了机关吧)
  2. 点击提交之后,相当于是用户的一个请求传入了页面,通过网络连接(TCP)交给服务器。
  3. 服务器第一眼看到这个,便拿前端控制器分析这个请求,我该做什么?
  4. 前端控制器本身并不知道要做什么,于是他要去问Handler,但是Handler这个组件一直不愿意直接和别人打交道,于是只能通过HandlerMapping来找到Handler相关的联系组件,也就是Handler的适配器。
  5. 当找到这个适配器之后,前端控制器立即找到HandlerAdapter,希望能获取帮助,HandlerAdapter听了之后便画了个大概的布局规范,单独去找Handler执行。
  6. Handler看着这个画好的饼就开始执行,之后返回ModelAndView。
  7. HandlerAdapter收到以后立即返回给前端控制器。
  8. 前端控制器获得这些之后不认识这是什么,便去找视图解析器大哥去解析这些获得真正的View。
  9. 得到View以后,前端控制器再将自己得到的数据填充到视图中,并渲染视图,完成后作为响应返回给浏览器页面。
    10.我作为用户也就得到了应有的新界面。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值