SpringMVC与Struts2 一样,都属于MVC框架
特点:
- 可自动绑定用户输入,并能正确的转换数据类型
- 内置了常见的校验器,可以校验用户输入,如果校验不能通过,那么就会重定向到输入表单.
- 支持多种视图技术,支持JSP,Velocity,FreeMarker
- 提供了一个前端控制器DispatcherServlet,无须额外开发控制器对象
SpringMVC工作流程
(1)用户通过客户端向服务器发送请求,请求会被SpringMVC的前端控制器DispatcherServlet拦截
(2)DispatcherServlet拦截到请求后,会调用HandlerMapping 处理器映射器
(3)HandlerMapping 会根据URL找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)返回给DispatcherServlet
(4)DispatcherServlet会根据返回的信息选择合适的HandlerAdapter处理器适配器
(5)HandlerAdapter调用并执行Handler处理器,这里的处理器指的就是程序中编写的Controller类,也被称为后端控制器
(6)Controller执行完后,会返回一个ModelAndView对象,该对象中包含视图名或包含模型和视图名
(7)HandlerAdapter将ModelAndView对象返回给DispatcherServlet
(8)DispatcherServlet会根据ModelAndView对象选择一个合适的ViewResolver视图解析器
(9)ViewResolver解析之后,会向DispatcherServlet中返回具体的View视图
(10)DispatcherServlet对View进行渲染(即将模型数据填充至视图中)
(11)视图渲染结果会返回给客户端浏览器显示