SpringMVC中的HandlerMapping

这是一个定义请求与处理器对象之间映射关系的接口。

这个类能够被应用程序开发人员实现,但其实这个不是必要的,因为框架本身包含了BeanNameUrlHandlerMapping和SimpleUrlHandlerMapping,DefaultAnnotationHandlerMapping。前面那个是默认的,在application context中没有注册HandlerMapping bean的情况下。

HandlerMapping实现能够支持映射拦截器,但也不是必须的。一个handler总是会被包装在一个HandlerExcutionChain实例当中,并且和一些HandlerInterceptor实例同时存在。

DispatcherServlet会首先按照给定的顺序调用每个HandlerInterceptor的preHandle方法,最后才会调用handler本身,前提是所有的preHandle方法都返回true。

其核心的方法是

HandlerExecutionChain getHandler(HttpServletRequest request) throws Exception;

其返回值HandlerExecutionChain包含了一个handler对象以及一些拦截器。

如果没有发现到匹配的,就返回null,但不会是一个错误。因为DispatcherServlet会查询所有注册好的HandlerMapping 来进行匹配。如果这都没有发现一个匹配的hanler,则跑出一个错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值