1.什么是SpringMvc?
SpringMvc就是一个Spring内置的MVC框架
MVC框架,解决web开发常见问题(参数接收,文件上传,表单验证,国际化...)
2.SpringMvc的作用
MVC模式(Model-View-Controller):解决页面代码 和 后端代码的分离。
3.SpringMvc流程图
(1)用户发送请求,请求被DispatcherServlet(前端控制器)拦截进行处理
(2)DispatcherServlet(前端控制器)收到请求调用HandleMapping(处理器映射器)
(3)HandleMapping(处理器映射器)找到具体的处理器(查找xml配置或注解配置)生成处理器对象及处理器拦截器(如果有),在一起返回给DispatcherServlet(前端控制器)
(4)DispatcherServlet(前端控制器)调用HandlerAdapter(处理器适配器)
(5)HandlerAdapter(处理器适配器)经过适配调用具体的处理器(Handler/Controller)
(6)Controller调用具体的Service(服务层)执行结果完成返回ModelAndView
(7)HandlerAdapter(处理器适配器)将Controller执行结果ModelAndView返回给DispatcherServlet
(8)DispatcherServlet(前端控制器)将ModelAndView传给ViewReslover(视图解释器)
(9)ViewReslover(视图解释器)解析ModelAndView后返回具体View(视图)给DispatcherServlet(前端控制器)
(10)DispatcherServlet(前端控制器)根据View进行渲染视图(将模型添加到视图中)
(11)DispatcherServlet(前端控制器)响应View给用户
4.组件说明
(1)前端控制器DispatcherServlet(不需要程序员开发),由框架提供,在web.xml中配置。
作用:接收请求 响应结果 相当于转发器 中央处理器
(2)处理器映射器HandlerMapping(不需要程序员开发)由框架提供
作用:根据请求的URL查找Handler(处理器/Controller),可以通过XML和注解方式映射
(3)处理器适配器HandlerAdapter(不需要程序员开发)由框架提供
作用:按照特定规则(HandlerAdapter需求的规则)去执行Handler中的方法
(4)处理器handler(也称之为Controller,需要程序员开发)
注意:编写Handler时按照HandlerAdapter的要求去做,这样适配器才可以正确执行Handler。
作用:接收用户请求信息 调用业务方法处理请求 也称之为后端处理器
(5)视图解析器ViewResolver(不需要程序员开发)由框架提供
作用:进行视图解析,把逻辑视图解析成真正的物理视图
SpringMvc支持多种View视图技术,包括:jstlView freemarkerView ThymeleafView...
(6)视图view(需要工程师开发)
作用: 把数据展现给用户的页面
View是一个接口,实现类支持不同的view技术(jsp,freemarker,pdf)