SpringMVC执行流程

1、什么是DispatchServlet?

在整个 Spring MVC 框架中,DispatcherServlet 处于核心位置,它负责协调和组织不同组件完成请求处理并返回响应工作。

所有的请求都需要让它给我们进行处理,通常它还有一种名称叫做 控制器

2、SpringMVC的执行流程?

1、客户端发送请求给DispatcherServlet

2、然后我们的DispatcherServlet对象会继续调用service方法

3、(1)、首先进行判断,post请求是否是 enctype=multipart 类型,如果是则要将请求转换为我们的MultipartHttpServletRequest(专门处理表单文件的请求)

(2)、获取到映射处理器,通过我们的url请求路径获取到处理链

(3)、通过我们的处理链找到匹配的适配器

(4)、顺序执行我们的处理链的preHandle方法,如果返回了false,则倒序执行处理链中之前拦截器的afterCompletion()方法并立即返回

(5)、接着我们的适配器通过handle方法,来执行我们的controller(控制层)中的方法。

这里面运用了反射的原理,获取方法和返回值,设置方法的访问权限,调用执行方法

(6)、适配器执行完毕之后,返回一个ModelAndView给我们的DispatcherServlet,如果出现异常,则会被 HandlerExceptionResolver给再次解析,得到一个新的ModelAndView

(7)、由于ModelAndView我们的页面是不认识的,于是我们控制器DispatcherServlet会将它交给ViewReslover(视图解析器)

(8)、处理一番之后,我们可以得到真正的视图View,之后我们的ModelAndView会对View进行渲染

(9)、在返回结果处理中,视图渲染完成返回后,如果没有异常,调用所有的拦截器的afterCompletion方法; 如果有异常就倒序执行这些拦截器的afterCompletion方法;

(10)、执行完后交给客户端,数据可能是一个HTML,也可以是XML或JSON或者图片视频等...

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值