1、介绍下SpringMVC
SpringMVC是一种基于MVC设计模式的Web框架。
SpringMVC通过注解,让简单的Java类成为处理请求的控制器,而无需实现任何接口。同时它还支持RESTful编程风格请求。
在B/S架构中系统的标准三层架构为表现层、业务层、持久层。
表现层就是常说的Web层,负责接收客户端请求,向客户端相应结果,表现层设计一般都使用MVC模型。
MVC指模型、视图、控制器。
模型,指数据模型,用于封装数据;
视图,用于展示数据,通常是依据模型数据创建的;
控制器,处理用户交互;
2、介绍下SpringMVC工作原理
SpringMVC运行流程
- 用户发起请求到前端控制器
- 前端控制器请求处理器映射器查找处理器
- 处理器映射器向前端控制器返回处理器,如果有处理器拦截器会一并返回。
- 前端控制器调用处理器适配器执行处理器
- 处理器适配器执行处理器
- 处理器执行完成后返回给处理器适配器ModelAndView
- 处理器适配器将ModelAndView返回给前端控制器
- 前端控制器请求视图解析器进行视图解析
- 视图解析器解析完成后向前端控制器返回视图
- 前端控制器渲染视图
- 前端控制器将最终视图呈现给用户
图篇及流程来自: SpringMVC框架介绍_Hu go的博客-优快云博客_springmvc框架简介
涉及6个组件:
1.前端控制器 DispatcherServlet (无需开发)
接收请求,相应结果
2.处理器映射器 HandlerMapping (无需开发)
根据URL查找Handler
3.处理器适配器 HandlerAdapter (无需开发)
找到匹配的适配器调用自己的handle方法
DispatcherServlte会根据handlerMapping传过来的controller与已经注册好了的HandlerAdapter一一匹配,看哪一种HandlerAdapter是支持该controller类型的,如果找到了其中一种HandlerAdapter是支持传过来的controller类型,那么该HandlerAdapter会调用自己的handle方法
SpringMVC之简单理解 HandlerAdapter的作用_晴天小哥哥的博客-优快云博客_handleradapter
4.处理器 Handler (需程序员开发)
对具体的用户请求进行处理
Handler是对Controller的Bean本身和请求Method的包装。
5.视图解析器 View Resolver (无需开发)
进行视图解析得到视图对象。
SpringMVC解析视图的步骤:
①无论方法返回什么类型,SpringMVC都会在内部将其装配为ModelAndView。
②SpringMVC借助视图解析器(ViewResolver)得到视图对象(View)。
③视图对象(View)真正的渲染页面。
6.视图 View (需程序员开发)
渲染模型数据,将数据以某种形式展现给用户。
View是个接口,实现类支持不同的View类型(jsp、excel、pdf)
有哪些实现类见下面链接: