第11章Spring MVC入门
11.1Spring MVC概述
Spring MVC:是Spring提供的一个实现了Web MVC设计模式的轻量级Web框架。它与Struts2框架一样,都属于MVC框架,但其使用和性能等方面比Struts2更加优异
Spring MVC具有如下特点:
(1)是Spring框架的一部分,可以方便地利用Spring所提供的其他功能
(2)提供一个前端控制器DispatcherServlet,使开发人员无须额外开发控制器对象
(3)可自动绑定用户输入,并能正确的转换数据类型
(4)内置了常见的校验器,可以校验用户输入。如果校验不能通过,那么就会重定向到输入表单
(5)支持多种视图技术,它支持JSP,Velocity和FreeMarker等视图技术
(6)使用基于HTML的配置文件,在编辑后,不需要重新编译应用程序
11.2Spring MVC的工作流程
按照图11-4中所标注的序号,Spring MVC程序的完整执行流程如下:
(1)用户通过客户端向服务器发送请求,请求会被Spring MVC的前端控制器DispatcherServlet所拦截
(2)DispatcherServlet拦截到请求后,会调用HandlerMapping处理器映射器
(3)处理映射器根据请求URL找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet
(4)DispatcherServlet会通过返回信息选择合适的HandlerAdapter(处理器适配器)
(5)HandlerAdapter会调用并执行Handler(处理器),这里的处理器指的就是程序中编写的Controller类,也被称之后端控制器
(6)Controller执行完成后,会返回一个ModelAndview对象,该对象中会包含视图名或包含模型和视图名
(7)HandlerAdapter将ModelAndview对象返回给DispatcherServlet
(8)DispatcherServlet会根据ModelAndview对象选择一个合适的ViewResolver(视图解析器)
(9)DispatcherServlet对View进行渲染(即将模型数据填充至视图中)
(10)视图渲染结果会返回给客户端浏览器显示
处理器映射器:根据客户端请求的url,找到处理本次请求的handler(处理器),将url和controller关联起来
处理器映射器:对映射器查找到的controller中的方法进行调用
第一种:Controller适配
第二种:HttpRequestHandler适配
第三种:注解适配
不同的处理器,对应不同的适配器,但是所有适配器最终都返回ModelAndView对象,springmvc通过对ModelAndView对象进行解析,获得需要响应到客户端的数据和视图
视图解析器:解析结果视图,并将结果呈现给用户