SpringMVC执行流程

SpringMVC执行流程

(本文章,来自自我学习及理解。如有错误、不足或疑惑之处,请见谅并欢迎指出,一起交流学习。)


目录

SpringMVC执行流程

什么是MVC

流程图

执行过程

补充


什么是MVC

MVC是一种Web开发的架构流程。MVC即Model-View-Controller。其本质是将业务数据处理同业务数据呈现相分离。


流程图

 

执行过程

  1. 客户端发送请求给Front Controller(也就是前端控制器),在SpringMVC中前端控制器由DispatcherServlet来处理客户端发送过来的请求,解析请求。
  2. 由DispatcherServlet解析的请求,交给HandlerMapping,找到具体的HandlerAdapter。将具体的HandlerAdapter返回给前端控制器。
  3. 由HandlerAdapter调用具体的执行链条,处理业务逻辑。并返回ModelAndView。
  4. 得到具体的Controller后,若设置了HandlerInterceptor拦截器,Spring则会生成一个执行链条。返回Handler/HandlerAdapter给DispatcherServlet调用,执行业务逻辑。执行顺序为(方法执行顺序):preHandle() 一> Controller method 一> postHandle() 一> afterCompltion()。依照此顺序依次执行,完成业务逻辑处理。其中Controller method为Controller中所定义的方法(在此方法中调用Service方法处理业务逻辑),其余方法为自定义的拦截器HandlerInterceptor所继承的方法。若没有设置HandlerInterceptor拦截器,则执行链条中只包含Controller method。
  5. 前端控制器DispatcherServlet执行执行链条后,生成模型ModelAndView(请求经过处理后,所得的数据),并将ModelAndView返回给DispatcherServlet。
  6. 前端控制器DispatcherServlet接收ModelAndView,调用视图解析器ViewResolver解析模型,返回对应的页面给前端控制器。
  7. 前端控制器接收页面,返回响应给客户端。

补充

  1. DispatcherServlet前端控制器,SpringMVC核心。可以有多个。
  2. HandlerMapping,控制器映射,通过配置将请求与控制器进行一对一映射。前端控制器通过其寻找到具体的控制器,来执行业务逻辑。
  3. HandlerInterceptor拦截器,在Spring中配置,定义器实现类,实现自定义拦截器。实现其preHandle(), postHandle(),afterCompltion()方法。
  4. HandlerAdapter作用:因为SpringMVC为业务处理器提供了多种接口实现(例如实现了Controller接口),而适配器就是用来根据处理器实现了什么接口,最终选择与已经注册好的不同类型的Handler Adapter进行匹配,并最终执行,例如,SimpleControllerHandlerAdapter是支持实现了controller接口的控制器,如果自己写的控制器实现了controller接口,那么SimpleControllerHandlerAdapter就会去执行自己写的控制器中的具体方法来完成请求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值