springmvc的执行流程是什么?为什么要使用springmvc?

阳光 2022-03-25 16:25:42 java常见问答 4990

Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,使用它你可以帮助我们简化开发,那springmvc的执行流程是什么?下面来我们就来给大家讲解一下。

1. 用户请求发送到前端控制器DispatcherServlet。

2. 前端控制器DispatcherServlet接收到请求后,DispatcherServlet会使用HandlerMapping来处理,HandlerMapping会查找到具体进行处理请求的Handler对象。

3. HandlerMapping找到对应的Handler之后,并不是返回一个Handler原始对象,而是一个Handler执行链,在这个执行链中包括了拦截器和处理请求的Handler。HandlerMapping返回一个执行链给DispatcherServlet。

4. DispatcherServlet接收到执行链之后,会调用Handler适配器去执行Handler。

5. Handler适配器执行完成Handler之后会得到一个ModelAndView,并返回给DispatcherServlet。

6. DispatcherServlet接收到Handler适配器返回的ModelAndView之后,会根据其中的视图名调用视图解析器。

7. 视图解析器根据逻辑视图名解析成一个真正的View视图,并返回给DispatcherServlet。

8. DispatcherServlet接收到视图之后,会根据上面的ModelAndView中的model来进行视图渲染完成之后,DispatcherServlet就可以将结果返回给用户了。

为什么要使用springmvc?

1、清晰的角色划分:前端控制器(DispatcherServlet)、请求到处理器映射(HandlerMapping)、处理器适配器(HandlerAdapter)、视图解析器(ViewResolver)、处理器或页面控制器(Controller)、验证器( Validator)、命令对象(Command 请求参数绑定到的对象就叫命令对象)、表单对象(Form Object 提供给表单展示和提交到的对象就叫表单对象)。

2、分工明确,而且扩展点相当灵活,可以很容易扩展,虽然几乎不需要;

3、由于命令对象就是一个POJO,无需继承框架特定API,可以使用命令对象直接作为业务对象;

4、和Spring 其他框架无缝集成,是其它Web框架所不具备的;

5、可适配,通过HandlerAdapter可以支持任意的类作为处理器;

6、可定制性,HandlerMapping、ViewResolver等能够非常简单的定制;

7、功能强大的数据验证、格式化、绑定机制;

8、利用Spring提供的Mock对象能够非常简单的进行Web层单元测试;

9、本地化、主题的解析的支持,使我们更容易进行国际化和主题的切换。

10、强大的JSP标签库,使JSP编写更容易。

总之,Spring MVC是当前最优秀的MVC框架,它能够进行简单的异常处理,并且可以进行更简洁的Web层的开发,是java开发中一个重要框架!最后大家如果想要了解更多java架构师知识,敬请关注奇Q工具网。

推荐阅读:

struts怎么用ajax实现上传?struts执行流程是什么?

fastjson如何下载更新?fastjson怎么使用?

redis面试题有哪些?redis面试题及答案