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视图中展示相应信息即可。
学习springmvc参见博文:http://springmvc.javaboy.org/