处理器映射器 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. ifc解析与渲染

  2. Python xlwt 模块执行出错Exception: String longer than 32767 characters

    使用Python搜集数据时用到xlwt保存到excel文件,但是数据量有点大时出现 Exception: String longer than 32767 characters 搜索类似的问题都是建议 ...

  3. JAVA 基础编程练习题47 【程序 47 打印星号】

    47 [程序 47 打印星号] 题目:读取 7 个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*. package cskaoyan; public class cskaoyan47 { ...

  4. delphi7 treeview + 数据库 实现动态节点维护

    首先说下树节点对应的表的基本结构,必需要有的字段(节点编号,父节点编号,节点名称),其他字段根据你开发的需要添加从添加节点开始,一开始就取出表中最大节点编号,每次添加节点的时候,该节点编号增加1;添加 ...

  5. Pytorch Tensor, Variable, 自动求导

    2018.4.25,Facebook 推出了 PyTorch 0.4.0 版本,在该版本及之后的版本中,torch.autograd.Variable 和 torch.Tensor 同属一类.更确切地 ...

  6. Arduino基础入门—1.Hello World

    1.首先是下载.安装IDE. https://www.arduino.cc/en/Main/Software 2.连接开发板到电脑. 将UNO R3开发板通过数据线连接到电脑.打开设备管理器查看驱动是 ...

  7. Android之makefile

    在Android的源代码中,随处可见Makefile,那么Makefile到底是用来干嘛的呢?其实Makefile和Maven.ANT.Gradle一样,属于构建工具,当项目比较庞大的时候,就可以使用 ...

  8. 学习笔记:CentOS7学习之二十二: 结构化命令case和for、while循环

    目录 学习笔记:CentOS7学习之二十二: 结构化命令case和for.while循环 22.1 流程控制语句:case 22.2 循环语句 22.1.2 for-do-done 22.3 whil ...

  9. Collection集合常用的功能

    package demo06; import java.util.ArrayList;import java.util.Collection; /** java.util接口 Collection&l ...

  10. studio git创建与删除标签(Tag)

    代码托管平台 码云 git工具 Git git上的标签一般是用于标记版本, 当发布新版本后,便将该版本的代码打上Tag,用以区别及管理 使用标签前需要将代码提交到马云上 以上是提交git. 创建并提交 ...