序言
工作三年有余,有幸见过使用JSP完成的项目,前端后台都使用JSP来写,代码冗余杂糅,难以维护。庆幸的是技术不断更新迭代,现有的框架能让我们把大部分时间花费在我们的业务逻辑上,这就像一把双刃剑,把编程门槛变得越来越低,但是在某种层面上不利我们更加深入去理解和学习底层原理。
什么是SpringMVC?
SrpingMVC作为Spring框架的一部分,其中最核心的就是MVC(Model View Controller),这是一种框架模式。它通过模型(Model)、视图(View)、控制器(Controller)三者将后台逻辑、前端、数据进行了分离,这样的分层模式更加有利于我们开发。
SpringMVC的工作流程
SpringMVC负责前端与后台的交互,如上图所示
一:前端浏览器向后台接口发送请求,DispatcherServlet(分发控制器)接收到请求
二:DispatcherServlet请求HandlerMapping(映射处理器)据映射地址找到对应的Handler(Spring中的Controller就是Handler)
三:找到Handler后先调用拦截器执行一些Spring默认的拦截器操作
四:执行Handler中的业务逻辑,返回ModelAndView
五:使用视图解析器ViewResolver对ModelAndView进行解析,这里的ModelAndView指的是之前的JSP,因为JSP是前端代码和Java代码耦合在一起的,所以在返回给前端之前要进行解析,将java代码拆分出来生成class文件,而前端代码生成html、js、css返回给前端
六:前端浏览器接收到后台返回的数据,对其进行解析渲染,生成我们的页面