处理器映射器 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. Delphi 中自定义异常及异常处理的一般方法

    delphi中异常定义如下: TCustomException   =   class(Exception)     private     public         constructor   ...

  2. pop动画库简单使用小记

    - (void)animateInView:(UIView *)view{ UIImageView *imageView = [[UIImageView alloc] initWithImage:[U ...

  3. 【error】 for i in range(len(shape)/2): TypeError: 'float' object cannot be interpreted as an integer

    Q: for i in range(len(shape)/2):TypeError: 'float' object cannot be interpreted as an integer A: for ...

  4. Linux 系统中用Systemd 管理系统服务

    Systemd  命令详解: https://www.digitalocean.com/community/tutorials/how-to-use-systemctl-to-manage-syste ...

  5. Django:(01) 关于什么是Django?

    一.从 WSGI 开始了解 Django 在了解 Django 之前有必要先了解一下 Python 被用于 Web 开发的基础协议——WSGI. 在开发 web 应用时,我们不希望接触到TCP连接.H ...

  6. docker教程(1) - 快速使用

    docker 笔记(1) --docker安装.获取镜像.启动容器.删除容器 一.安装 Docker 官方文档 根据官方文档整理简单流程 从Docker Hub下载mac包 运行磁盘镜像,将Docke ...

  7. 日期控件传到后台异常。日期数据格式是 Date 还是 String?

    问题:日期控件的时间,传到Controller层直接异常. 前台日期格式:YYYY/MM/DD,后台Java定义的时间类型:Date. 解决: 方法一:原因是Controller层的参数类型定义为 D ...

  8. Django各个文件中常见的模块导入

    app01 app01 urls.py from django.conf.urls import url from django.contrib import admin from admins im ...

  9. 小程序部分机型上一个诡异的偶现bug

    如上图所示:开始的时候进到下单页面,价格是0,当选中了商品产生价格的时候,生成的价格如 ¥150,这个时候会只露出¥1以及一小半的5,后面的都被遮挡住了. wxml里是这样的写的 <view w ...

  10. Java静态代理与动态代理实现

    一.什么是代理 代理是一种设计模式,它提供了一种通过代理访问目标对象的方式.在应用代理之前,我们调用对象的过程如下: 客户端直接调用对象并获取返回值.而应用了代理之后,我们调用对象的过程变成如下: 客 ...