面试官:介绍下Spring MVC

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

猜你喜欢

转载自blog.csdn.net/Ahuuua/article/details/124668394