springMVC源码--HandlerMapping(一)

HandlerMapping的工作就是为每个请求找到合适的处理器handler。

HandlerMapping 接口:接口中主要定义了一个getHandler方法,返回一个HandlerExecutionChain对象。

总结:简单来说HandlerMapping的实现机制就是根据request来获得HandlerExecutionChain,其实就是获取真正要执行的Controller或者某个具体的方法。HandlerMapping接口提供的唯一的方法就是HandlerExecutionChain getHandler(HttpServletRequest request)。


相关流程:

DispatcherServlet把接收到的用户请求根据URL来调用HandlerMapping,然后HandlerMapping获得该Handler配置的所有相关的对象,

包括Handler对象以及Handler对象对应的拦截器,这些对象都会被封装到一个HandlerExecutionChain对象当中返回,之后DispatcherServlet

根据获得的Handler,选择一个合适的HandlerAdapter进行处理。


下面是SpringMVC中HandlerMapping处理器映射器的三种配置方式


1、根据beanname来配置:

[html]  view plain  copy
  1. <bean class="org.springframework.web.servlet.mvc.support.ControllerBeanNameHandlerMapping"></bean>    
  2. <bean name="/user.do" class="com.smile.controller.UserController"></bean>  

2、根据简单URL 来查找Controller :

[html]  view plain  copy
  1. <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">  
  2.     <property name="mappings">  
  3.         <props>  
  4.             <prop key="/userInfo.do">userController</prop>  
  5.         </props>  
  6.     </property>  
  7. </bean>  
  8.       
  9. <bean id="userController" class="com.smile.controller.UserController"></bean>  

3、根据控制类的类名访问controller:

[html]  view plain  copy
  1. <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"></bean>  
  2. <bean  class="com.smile.controller.UserController"></bean>  
三种配置方式没有多大区别,根据自己喜好而来。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值