1、介绍下SpringMVC

SpringMVC是一种基于MVC设计模式的Web框架。
SpringMVC通过注解,让简单的Java类成为处理请求的控制器,而无需实现任何接口。同时它还支持RESTful编程风格请求。

在B/S架构中系统的标准三层架构为表现层、业务层、持久层。
表现层就是常说的Web层,负责接收客户端请求,向客户端相应结果,表现层设计一般都使用MVC模型。

MVC指模型、视图、控制器。
模型,指数据模型,用于封装数据;
视图,用于展示数据,通常是依据模型数据创建的;
控制器,处理用户交互;

2、介绍下SpringMVC工作原理

SpringMVC运行流程

  1. 用户发起请求到前端控制器
  2. 前端控制器请求处理器映射器查找处理器
  3. 处理器映射器向前端控制器返回处理器,如果有处理器拦截器会一并返回。
  4. 前端控制器调用处理器适配器执行处理器
  5. 处理器适配器执行处理器
  6. 处理器执行完成后返回给处理器适配器ModelAndView
  7. 处理器适配器将ModelAndView返回给前端控制器
  8. 前端控制器请求视图解析器进行视图解析
  9. 视图解析器解析完成后向前端控制器返回视图
  10. 前端控制器渲染视图
  11. 前端控制器将最终视图呈现给用户

图篇及流程来自: SpringMVC框架介绍_Hu go的博客-CSDN博客_springmvc框架简介

涉及6个组件:

1.前端控制器 DispatcherServlet (无需开发)

接收请求,相应结果

2.处理器映射器 HandlerMapping (无需开发)

根据URL查找Handler

3.处理器适配器 HandlerAdapter (无需开发)

找到匹配的适配器调用自己的handle方法

DispatcherServlte会根据handlerMapping传过来的controller与已经注册好了的HandlerAdapter一一匹配,看哪一种HandlerAdapter是支持该controller类型的,如果找到了其中一种HandlerAdapter是支持传过来的controller类型,那么该HandlerAdapter会调用自己的handle方法

SpringMVC之简单理解 HandlerAdapter的作用_晴天小哥哥的博客-CSDN博客_handleradapter

4.处理器 Handler (需程序员开发)

对具体的用户请求进行处理

Handler是对Controller的Bean本身和请求Method的包装。

5.视图解析器 View Resolver (无需开发)

进行视图解析得到视图对象。

SpringMVC解析视图的步骤:

①无论方法返回什么类型,SpringMVC都会在内部将其装配为ModelAndView。

②SpringMVC借助视图解析器(ViewResolver)得到视图对象(View)。

③视图对象(View)真正的渲染页面。

6.视图 View (需程序员开发)

渲染模型数据,将数据以某种形式展现给用户。

View是个接口,实现类支持不同的View类型(jsp、excel、pdf)

有哪些实现类见下面链接:

SpringMVC的各种VIew视图 |SprinMVC_Hudie.的博客-CSDN博客_springmvc的view

面试官:介绍下Spring MVC相关推荐

  1. 面试官:为什么 Spring Boot 的 jar 可以直接运行

    转载自  面试官:为什么 Spring Boot 的 jar 可以直接运行 来源:Gormat's Notes fangjian0423.github.io/2017/05/31/springboot ...

  2. 面试官:连Spring三级缓存都答不好,自己走还是我送你?

    面试官:简历上写了精通Spring,那你回答一下Spring为什么用"三级缓存"去解决循环依赖? 我:.......应该有三个缓存的map结构 面试官:具体回答一下 我:平时没认真 ...

  3. 面试官:聊一聊 Spring Boot 服务监控机制

    欢迎关注方志朋的博客,回复"666"获面试宝典 任何一个服务如果没有监控,那就是两眼一抹黑,无法知道当前服务的运行情况,也就无法对可能出现的异常状况进行很好的处理,所以对任意一个服 ...

  4. 如何清晰、高质量的给面试官介绍自己的电商项目

    面试有两点:1.技术过硬.2.能说会道 如果自己的技术还过的去,但是表述的不尽人意,其实是吃了很大亏的,下面我来介绍一个大神的面试过程: 面试官:请介绍一下你的电商项目. 大神:该商城是一个综合性的B ...

  5. 面试官:连Spring AOP都说不明白,自己走还是我送你?

    前言 因为假期原因,有一段时间没给大家更新了!和大家说个事吧,放假的时候一位粉丝和我说了下自己的被虐经历,在假期前他去某互联网公司面试,结果直接被人家面试官Spring AOP三连问给问的一脸懵逼!其 ...

  6. 面试官爱问Spring初始化?别急,看完这篇文章,咱去吊打他

    更多文章请点击我 文章目录 1.前言 2. 需要了解 2.1. Servlet规范 2.2. Listener监听器机制 ServletContextEvent ServletContextListe ...

  7. 【200期】面试官问:Spring Security 和 Shiro 该如何选择?

    点击上方"Java精选",选择"设为星标" 别问别人为什么,多问自己凭什么! 下方有惊喜,留言必回,有问必答! 每天 08:15 更新文章,每天进步一点点... ...

  8. jar打包 剔除第三方依赖以及它的依赖_面试官:为什么Spring Boot的jar可以直接运行?...

    来源:Gormat's Notes fangjian0423.github.io/2017/05/31/springboot-executable-jar/ Spring Boot Loader抽象的 ...

  9. 面试官 | 如何在 Spring Boot 中进行参数校验?

    作者 | 狂乱的贵公子 来源 | cnblogs.com/cjsblog/p/8946768.html 开发过程中,后台的参数校验是必不可少的,所以经常会看到类似下面这样的代码 这样写并没有什么错,还 ...

最新文章

  1. [iOS] 在UIToolBar中增加UILabel等控件(xib/storyboard图形界面方式)
  2. entity framework .core常用技巧
  3. auto.exe,kavo.exe 批處理文件
  4. html grid插件,miniGrid:轻量级流布局JS插件
  5. php是实现点击改变状态,PHP利用header函数实现各种状态的跳转
  6. 学会放松,也是一项了不起的技能!
  7. 闲鱼前端基于serverless的一种多端开发解决方案
  8. flowable节点的自定义属性扩展_03
  9. c++工作笔记002---C++ 类成员访问运算符 - 的重载
  10. Qt实战-简单的点名程序和抽奖程序
  11. C语言入门:函数递归与写法
  12. 微信开发_网页授权获取用户的基本信息
  13. git reset, git status, git clean, .gitignore, git diff, git restore 的关系梳理
  14. 超出文本部分用省略号表示
  15. DKN: Deep Knowledge-Aware Network for News Recommendation
  16. 石墨烯的加入,新量子装置使人类离第二次量子革命真正又近一步
  17. php_game1姓名大战
  18. (Java)IntelliJ IDEA 2021.1使用技巧、常用快捷键大全(win+mac)
  19. 向大家推荐小专栏《Android 面试指南》,还可以内推
  20. 安装框架断路器要注意什么?该如何选择断路器?

热门文章

  1. 他们说 我是个冷淡的人。
  2. SAP搜索帮助内部错误:表格格式
  3. 苹果ppt_爆料!苹果9月16日发布会,iPhone 12新机提前感受!
  4. [福尔摩斯探案大全集].(英)阿瑟.柯南道尔.扫描版
  5. gdb 调试基础操作和在qtcreator中使用gdb调试
  6. 道法自然《三》:框架设计要提供机制
  7. sugarcrm mysql_SugarCRM安装踩雷(一)
  8. 论文写作笔记3:JAMIA-相关论文
  9. mysql学习经验学习资料下载
  10. javascript静态变量