文章目录
- 回顾spring知识
- 前言
- 什么是SpringMVC
- SpringMVC的优点
- SpringMVC的常用注解
- @Controller注解的作用
- @ResponseBody注解的作用
- SpringMVC重定向和转发
- SpringMVC主要组件
- SpringMVC的执行流程
回顾spring知识
上篇整理了“spring知识巩固”常见面试题,有需要的伙伴请点击链接查看:https://blog.csdn.net/weixin_45737330/article/details/127754284
前言
不扯犊子了,
咱就是说:以下知识点都是面试官经常所问到的,整理下来以备之后所需!
什么是SpringMVC
Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把模型 - 视图 - 控制器分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。
SpringMVC的优点
(1)可以支持各种视图技术,而不仅仅局限于JSP;
(2)与Spring框架集成(如IoC容器、AOP等);
(3)清晰的角色分配:前端控制器(dispatcherServlet) , 请求到处理器映射(handlerMapping), 处理器适配器(HandlerAdapter), 视图解析器(ViewResolver)。
(4) 支持各种请求资源的映射策略。
SpringMVC的常用注解
@RequestMapping:用于处理请求 url 映射的注解,可用于类或方法上。用于类上,则表示类中的所有响应请求的方法都是以该地址作为父路径。
@RequestBody:注解实现接收http请求的json数据,将json转换为java对象。
@ResponseBody:注解实现将conreoller方法返回对象转化为json对象响应给客户。
@Controller注解的作用
相当于在Spring MVC 的配置文件中定义Controller层的bean 对象。
在Spring MVC 的配置文件中告诉Spring 该到哪里去找标记为@Controller 的Controller 控制器。
@ResponseBody注解的作用
作用: 该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。
使用时机:返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用;
SpringMVC重定向和转发
(1)转发:在返回值前面加"forward:"
(2)重定向:在返回值前面加"redirect:"
SpringMVC主要组件
DispatcherServlet:前端控制器, 是整体流程控制的中心,由其调用其它组件处理用户的请求, 有效的降低了组件间的耦合性
HandlerMapping:处理器映射器, 负责根据用户请求找到对应具体的Handler处理器
Handler:处理器,业务处理的核心类,通常由开发者编写,描述具体的业务
HandlAdapter:处理器适配器,通过它对处理器进行执行
View Resolver:视图解析器, 将处理结果生成View视图
View:视图,最终产出结果, 常用视图如jsp、 html
SpringMVC的执行流程
1、用户点击某个请求路径,发起一个请求会被提交到 DispatcherServlet(前端控制器);
2、DispatcherServlet(前端控制器)调用HandlerMapping(处理器映射器),HandlerMapping 根据请求url查找相应的Handler(控制器),返回一个 HandlerExecutionChain(处理器执行链)给 DispatcherServlet(前端控制器);
3、DispatcherServlet(前端控制器)调用 HandlerAdapter(处理器适配器)执行Handler(也可以说执行controller 层的代码内容),返回一个ModelAndView (逻辑视图);
4、DispatcherServlet(前端控制器)调用ViewResolver(视图解析器)来解析ModelAndView ,并返回处理好的View(视图);
5、DispatcherServlet (前端控制器)接收到具体的 View 视图后,进行视图渲染,并显示到浏览器(客户端)。