SpringMVC八股文。

前言

  SpringMVC也是面试必问的问题之一,包括但不限于SpringMVC执行流程等。

1.SpringMVC是什么?

  Spring MVC属于SpringFrameWork的后续产品,是一个基于Java的实现了MVC设计模式的轻量级Web框架,降低开发难度和代码耦合度。其他Web框架还有Struts1和Struts 2等等。

2.SpringMVC的特点

  1)可以支持各种视图技术,例如:JSP;
  2)可以与Spring框架集成;
  3)降低耦合度,各角色清晰分明,包括前端控制器(dispatcherServlet) 、处理器映射(handlerMapping)、处理器适配器(HandlerAdapter)、视图解析器(ViewResolver);

3.SpringMVC的执行流程

  1)用户发送请求到前端控制器DispatcherServlet;
  2)DispatcherServlet收到请求后,调用HandlerMapping处理器映射器,请求获取Handler;
  3)处理器映射器HandlerMapping根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet;
  4)DispatcherServlet 调用 HandlerAdapter处理器适配器;
  5)HandlerAdapter 经过适配调用 具体处理器;
  6)Handler执行完成返回ModelAndView;
  7)HandlerAdapter将Handler执行结果ModelAndView返回给DispatcherServlet;
  8)DispatcherServlet将ModelAndView传给ViewResolver视图解析器进行解析;
  9)ViewResolver解析后返回具体View;
  10)DispatcherServlet对View进行渲染视图;
  11)DispatcherServlet将结果响应给用户。
在这里插入图片描述

4.常见的面试题

  1)SpringMVC执行流程?
    参考本文第三点

  2)@ResponseBody注解的作用
    当返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用@ResponseBody注解;该注解通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。

  3)@PathVariable和@RequestParam的区别
    localhost:8080/test/testPathVariable/java 类似这种情况,请求路径上有个name的变量值,可以通过@PathVariable来获取, @RequestMapping(value = “/page/{name}”, method = RequestMethod.GET)
    localhost:8080/test/testRequestParam?name=java 类似这种的参数,用@PathVariable就不好使了,需要@RequestParam才行,@RequestParam(“name”) String name

5.SpringMVC 源码分析(未完待续)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值