springMVC工作原理

springmvc是spring提供的一个实现了web mvc设计模式的轻量级web框架。

springMvc具有如下特点:

  • 是spring框架的一部分,可以方便的利用spring所提供的其他功能。
  • 灵活性强,易于与其他框架集成。
  • 提供了一个前端控制器dispatcherServlet,使开发人员无须额外开发控制器对象。
  • 可自动绑定用户输入,并能正确的转换数据类型。
  • 内置了常见的校验器,可以校验用户输入。如果校验不通过,那么就会重定向到输入表单。
  • 支持国际化。可以根据用区域显示多国语言。
  • 支持多种视图技术。它支持JSP、Velocity和FreeMarker等视图技术。
  • 使用基于XML的配置文件,在编辑后,不需要重新编译应用程序。

springmvc工作原理

1.用户通过客户端向服务器发送请求,请求会被springMVC的前端控制器DispatchServlet所拦截。

2.DispatchServlet拦截到请求后,会调用handlerMapping处理器映射器。

3.处理器映射器根据请求url找到具体的处理器,生成处理器对象以及处理器拦截器(如果有就生成)一并返回给DispatchServlet。

4.DispatchServlet会通过返回信息选择合适的handlerAdapter处理器适配器。

5.handlerAdapter会调用并执行handler处理器,这里处理器就是编写的Controller类。也叫后端控制器。

6.Controller执行完成后,会返回一个ModerAndView对象,该对象中包含视图名或者模型和视图名。

7.handlerAdapter将ModerAndView对象返回给DispatchServlet。

8.DispatchServlet会根据ModerAndView对象选择一个合适的ViewResoover视图解析器。

9.ViewResoover解析后,会向DispatchServlet返回具体的view视图。

10.DispatchServlet对View视图进行渲染,也就是将模型数据填充到视图中。

11.视图渲染视图结果会返回给客户端浏览器显示。

在上述执行过程中,DispatcherServlet、HandlerMapping、HandlerAdapter和ViewResolver对象的工作是在框架内部执行的,开发人员并不需要关心这些对象的内部执行过程,只需要配置前端控制器DispatcherServlet,完成controller中的业务处理,并在view视图中展示相应信息即可。

原文地址:https://www.cnblogs.com/jasonboren/p/10605280.html