springmvc4:执行过程

1.常用组件

  • DispatcherServlet:前端控制器
    能够处理请求并响应
  • HandlerMapping:处理器映射器
    能够根据url定位到handler
  • HandlerAdapter:处理器适配器
    能够具体对handler执行
  • handler:处理器
    在前端控制器的控制下 处理器对具体的请求进行响应
  • ViewResolver:视图解析器
    对视图解析,得到相应的视图相对地址
  • View:视图
    具体的页面

2. DispatcherServlet的初始化过程

  • 创建 webApplicationContext(web的IOC容器)
  • 初始化IOC容器
    • 初始化处理器映射器
    • 初始化处理器适配器
    • 初始化视图解析器

3.DispatcherServlet的处理请求过程

  • service()中调用了processRequest(request,response)的方法
  • 最终调用了doDispatch(request,response)方法
    • HandlerMapping匹配浏览器发送的请求的handler
    • HandlerAdapter创建调用handler方法的处理器适配器
    • 调用拦截器的prehandle
    • 处理器适配器调用具体的控制器方法,封装结果为一个ModelAndView对象
    • 调用拦截器的posthandle
    • 调用processdispatchresult()
  • processdispatchresult(request,response,ModelAndView)
    • 利用ModelAndView来处理模型和渲染视图
    • 调用拦截器的afterCompletion方法

4.SpringMVC的执行流程

  • 用户发送请求,被前端控制器DispatcherServlet捕获
  • 对URL(浏览器地址)进行解析,得到URI(服务器具体地址),判断请求URI对应的映射
    • 不存在
      • 判断是否配置了默认servlet,配置了则访问静态资源
      • 没配置,则404
  • 存在
  • 根据URI调用HandlerMapping获得该Handler配置的相关对象
  • 根据Handler选择合适的HandlerAdapter
  • 成功获得HandlerAdapter则开始执行拦截器的prehandle(正向)
  • 提取Request中的模型数据,填充handler形参,执行Handler
    • 请求参数格式转换(表单转换为对象)
    • 请求消息数据转换(String转换为Integer)
  • Handler执行完成后向DispatcherServlet返回一个ModelAndView对象
  • 执行拦截器的postHandle方法(逆向)
  • 根据ModelAndView来选择合适的ViewResolver进行解析并渲染视图(会判断是否存在异常,有异常则有异常处理器处理)
  • 渲染视图完成后执行拦截器的afterCompletion方法(逆向)
  • 渲染结果返回客户端
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值