HandlerMapping、Handler和HandlerAdapter的介绍

HandlerMapping、Handler和HandlerAdapter的介绍

HandlerMapping、Handler和HandlerAdapter这三个概念的理解对学习springmvc十分重要,如果对这三个概念理解的不够透彻,将会严重影响springmvc的理解。

一、Handler

Handler,也就是处理器,它直接对应着MVC中的C层,即Controller层,它可以表现为多种形式,可以是类,也可以是方法或者是其他的形式,它的类型是Object。我们用的最多的就是用@RequestMapping注解标注的方法,它就对应着一个Handler。

二、HandlerMapping

HandlerMapping,是用来查找Handler的,在spingmvc中会处理很多请求,每一个请求都需要一个Handler进行处理,具体接受到一个请求后使用哪个Handler来处理,就是HandlerMapping需要做的事情

三、HandlerAdapter

HandlerAdapter,即Handler的适配器,也是这3个概念中理解起来比较模糊的一个概念。上面说Handler的时候,我们说Handler是有多种的表现形式,只要能处理请求就可以,而dispatchServlet处理请求的方式却是固定的——doService(request,response),那么怎么让固定的doService调用灵活的Handler来进行处理呢,这就是HandlerAdapter需要做的事情。

——————————————————————————————分割线——————————————————————————

springmvc处理请求的通俗解释就是:Handler是用来干活的工具,HandlerMapping是根据要干的活找到相应的工具的东西,HandlerAdapter是用工具干活的人。比如,Handler是挖掘机、压路机等,那么HandlerMapping就是根据需要干的活选择是用挖掘机还是压路机干活的东西,HandlerAdapter就是司机,不同的车需要不同的司机去使用,拆房子就需要挖掘机的司机去使用挖掘机拆,压路就需要压路机的司机用压路机去压,如果让压路机的司机去使用挖掘机拆房,就会出现问题。所以不同的Handler需要不同的HandlerAdapter去使用。在现实中,人的灵活性跟复杂性是最高的,同时也是问题跟困难最多的,同样的,HandlerAdapter也是springmvc九大组件中最复杂的。

其实,springmvc中的view和viewResolver跟handler和HandlerAdapter的关系是一样的,view是用来展示数据的,viewResolver是用来查找view的,就像干完活需要写报告,写报告又需要模板(不同的报告需要不同的模板,比如请假报告或者调查报告),这里的模板就对应着view,内容就是Handler处理的数据,viewResolver就是用来选择使用哪个模板的东西。

我这里只是对这3个概念做一下通俗的介绍,如果需要详细了解其中的原理,还得通过查看源代码来学习。

  • 8
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值