处理器映射器 HandlerMapping

  HandlerMapping 接口负责根据request请求找到对应的Handler处理器及Interceptor拦截器,

  并将它们封装在HandlerExecutionChain 对象中,返回给中央调度器

  其常用的实现类有两种:

  1.BeanNameUrlHandlerMapping(默认)

  2.SimpleUrlHandlerMapping

BeanNameUrlHandlerMapping

  1.根据请求的url与 与id 属性相匹配时,访问 class 属性对应的处理器

  <bean id="/hello.do" class="com.springmvc.handlers.MyController"/>

  2.id属性的 值 必须 以  “/” 开头(可依查看源码确定)

  3.但是一个处理器Bean只能绑定一个请求url,如果出现多个url请求同一个处理器的情况,

  就需要在Spring容器中配置多个该处理器类的<bean/>,

SimpleUrlHandlerMapping

  将 url 与处理器的定义分离,还可以对url进行统一映射管理

 <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<!-- 可以使用这两种方式(设置 mappings 属性 和 urlMap 属性) 将 一个处理器和 多个 url 绑定 -->
<!-- <property name="mappings">
<props>
<prop key="/hello.do">myController</prop>
<prop key="/helloworld.do">myController</prop>
<prop key="/world.do">myController</prop>
</props>
</property>--> <property name="urlMap">
<map>
<entry key="/hello.do" value-ref="myController"/>
<entry key="/helloworld.do" value-ref="myController"/>
<entry key="/world.do" value-ref="myController"/>
</map>
</property> </bean>
 <bean id="myController" class="com.springmvc.handlers.MyController"/>
<!-- 如果 一个处理器 要绑定 多个url ,则需要创建多个 MyController ,这是一种浪费 ,所以可以使用SimpleUrlHandlerMapping-->

这样,当我们访问多个不同的url,时,这些url可能指向同一个 处理器

 

  

4.SpringMVC 配置式开发-处理器映射器的更多相关文章

  1. 6.SpringMVC 配置式开发-处理器

    处理器除了实现Controller 接口外,还可以继承自一些其他的类,来完成一些特殊的功能 1.继承自AbstractController类 若处理器继承自AbstractController类,那么 ...

  2. 5.SpringMVC 配置式开发-处理器适配器

    处理器适配器HandlerAdapter 1.SimpleControllerHandlerAdapter(默认) 所有实现了 Controller 接口的处理器 Bean,均是通过SimpleCon ...

  3. 3.2.2 SpringMVC配置式开发

    SpringMVC配置式开发 1. SpringMVC运行原理(执行过程) 2. 需求 用户提交一个请求, 服务端处理器接收到请求后, 给出一条信息,在相应页面中显示该条信息 3. 开发步骤 (1) ...

  4. 《SpringMVC从入门到放肆》十一、SpringMVC注解式开发处理器方法返回值

    上两篇我们对处理器方法的参数进行了分别讲解,今天来学习处理器方法的返回值. 一.返回ModelAndView 若处理器方法处理完后,需要跳转到其它资源,且又要在跳转资源之间传递数据,此时处理器方法返回 ...

  5. 《SpringMVC从入门到放肆》四、SpringMVC配置式开发(处理器映射器)

    上一篇我们讲解了DispatcherServlet的url-pattern配置详解,今天我们来真正对SpringMVC进行配置式开发.所谓配置式开发是指“处理器类是程序员自己定义的.实现了特定接口的类 ...

  6. 《SpringMVC从入门到放肆》五、SpringMVC配置式开发(处理器适配器)

    上一篇我们大致讲解了处理器映射器的处理流程以及跟了一下源码的执行流程.今天我们来了解一下处理器适配器. 一.适配器模式 在阎宏博士的<JAVA与模式>一书中开头是这样描述适配器(Adapt ...

  7. SpringMVC配置式开发

    所谓配置式开发是指“处理器类是程序员手工定义,实现了特定接口的类,然后再在SpringMVC 配置文件中对该类进行显示的.明确的注册”的开发方式. 一.处理器映射器HandlerMapping Han ...

  8. SpringMVC 配置式开发-BeanNameUrlHandlerMapping(七)

     第一种处理器映射器BeanNameUrlHandlerMapping.class(注册器映射器 bean节点的class属性中用到的,这种方式dean id属性必须要以“/”开头) 第二种处理器映射 ...

  9. 7.SpringMVC 配置式开发-ModelAndView和视图解析器

    ModelAndView 1.Model(模型) 1.model的本质就是HashMap,向模型中添加数据,就是往HashMap中去添加数据 2.HashMap 是一个单向查找数组,单向链表数组 3. ...

随机推荐

  1. linux挂载iscsi出现的问题

    挂载的时候我们可以使用永久挂载但是这里我们就需要注意了正常的永久挂载可能会导致系统起不来因为这里我们使用的是服务端的硬盘为网络设备而开机的读取中 会先读取/etc/fstab下的内容 之后再读取网络的 ...

  2. iOS自适应行高方法及问题

    最近一周被项目的动态高度虐的很惨,感觉浪费了很多时间,但是值得高兴的是对动态高度的使用掌握了好多方法,并且知道了方法之间的区别和优缺点. 1.最常用的: UITableView+FDTemplateL ...

  3. layoutSubviews在以下情况下会被调用

    1.init初始化不会触发layoutSubviews2.addSubview会触发layoutSubviews3.设置view的Frame会触发layoutSubviews,当然前提是frame的值 ...

  4. CockroachDB学习笔记——[译]Scaling Raft

    原文链接:https://www.cockroachlabs.com/blog/scaling-raft/ 原作者:Ben Darnell 原文日期:Jun 11, 2015 译:zifeiy 在Co ...

  5. Allegro静态铜皮避让问题

    使用Allegro的人都知道,Allegro的铜分为静态和动态,我的设计习惯是需要满足载流地方一般使用静态铜皮,避免设计过程中因为打孔把铜皮割裂,这是静态铜皮的一个特性,不会自动避让,强制打孔或者走线 ...

  6. ORA-00054:Orcacle表锁定

    查询被锁的session_id select session_id from v$locked_object; 查询结果----------------------SESSION_ID8 查询被锁se ...

  7. 【编程开发】opencv实现对Mat中某一列或某一行的元素进行normalization

    [编程开发]opencv实现对Mat中某一列或某一行的元素进行normalization 标签: [编程开发] [机器学习] 声明:引用请注明出处http://blog.csdn.net/lg1259 ...

  8. 最新 易车java校招面经 (含整理过的面试题大全)

    从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.易车等10家互联网公司的校招Offer,因为某些自身原因最终选择了易车.6.7月主要是做系统复习.项目复盘.LeetCode ...

  9. VMware Windows Server 2008 R2 X64 虚拟机安装教程

    首先进入VMware Workstation中,点击创建新的虚拟机 然后按如下步骤操作 然后进去选择拷贝的Windows 2008的映像文件 下面这个网址里面提供了各种映像文件的下载http://is ...

  10. css设置滚动条并显示或隐藏

    看效果,没有滚动条,超出div,开发中肯定不行. 有滚动条 最后就是想隐藏滚动条 代码 有滚动条并显示 <!DOCTYPE html> <html lang="en&quo ...