• 根据controller的name名称来映射寻找controller:BeanNameUrlHandlerMapping  (默认)

1.1开启该映射:默认是开启的
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
1.2定义bean的name属性:
<bean id="helloController" name="/hello1.do" class="com.controller.HelloController"></bean>
1.3界面访问URL:与bean的name属性值一致
http://localhost:5080/springmvc/hello1.do
  • 根据URL来映射寻找controller:推荐使用:SimpleUrlHandlerMapping

2.1开启该映射:
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/hello2.do">HelloController</prop>
</props>
</property>
</bean>
2.2定义bean:
<bean id="helloController" class="com.controller.HelloController"></bean>
2.3界面URL访问:与prop的key属性值一致
http://localhost:5080/springmvc/hello2.do
优点:将controller定义与映射分离开,耦合性低。
  • 根据controller的类名来映射寻找controller: ControllerClassNameHandlerMapping 

3.1开启类名映射处理器:
<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"></bean>
3.2定义bean
<bean id="hello3Controller" class="com.controller.Hello2Controller"></bean>
3.3界面URL访问:与bean的id属性值无关。
http://localhost:5080/springmvc/hello2.do 正确
http://localhost:5080/springmvc/hello2Controller.do 正确
http://localhost:5080/springmvc/hello21111.do 正确
http://localhost:5080/springmvc/hello3.do 错误
注意点:使用类名来访问一个Controller,
  • 使用注解来映射寻找controller: DefaultAnnotationHandlerMapping

DefaultAnnotationHandlerMapping和RequestMappingHandlerMapping都是处理requestMapping的注解,
前者以废弃,不建议使用,后者用来代替前者

1.开启注解扫描组件:
作用:当我加载配置文件时,到我们指定的包下扫描(读取)Java文件,
寻找标注注解的地方(接口,类,方法或者其他),进行完成初始化。
<beans>
<!--配置扫描使用注解的包路径 -->
<context:component-scan base-package="com"></context:component-scan>
<!--开启springMVC注解 -->
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"></bean>
</beans> 2.在类上标记:@Controller 声明该类是一个springMVC Controller
3.在方法上使用:@RequestMapping("/login") 声明该方法处理哪一个请求
eg:
@Controller
public class Login {
@RequestMapping("/login")
public ModelAndView login(){
ModelAndView mv = new ModelAndView();
mv.setViewName("login");
return mv;
}
}

springMVC--4种映射处理器handlerMapping的更多相关文章

  1. SpringMVC实战(三种映射处理器)

    1.前言 上一篇博客,简单的介绍了一下SpringMVC的基础知识,这篇博客来说一下SpringMVC中的几种映射处理器机制. 2.三种映射处理器 2.1 BeanNameUrlHandlerMapp ...

  2. 4.SpringMVC 配置式开发-处理器映射器

    处理器映射器 HandlerMapping HandlerMapping 接口负责根据request请求找到对应的Handler处理器及Interceptor拦截器, 并将它们封装在HandlerEx ...

  3. springmvc url处理映射的三种方式:

    一.SpringMVC简介 SpringMVC是一种基于Spring实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,使用了MVC架构模式的思想,将web层进行职责解耦,并管理应用所需对象 ...

  4. 关于SpringMVC中两种映射器不能共存的解决

    首先大家都知道SpringMVC有两种映射器: org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping 和 org.spri ...

  5. SpringMVC实现全局异常处理器 (转)

    出处:  SpringMVC实现全局异常处理器 我们知道,系统中异常包括:编译时异常和运行时异常RuntimeException,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发.测试通过手 ...

  6. Hibernate映射解析——七种映射关系

    首先我们了解一个名词ORM,全称是(Object Relational Mapping),即对象关系映射.ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现,这样开发人员就可以把对 ...

  7. SSH深度历险(一)深入浅出Hibernate架构(一)-------映射解析——七种映射关系

            ORM,全称是(Object Relational Mapping),即对象关系映射.ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现,这样开发人员就可以把对数据 ...

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

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

  9. Hibernate的七种映射关系之七种关联映射(二)

    继续上篇博客 七.Hibernate双向一对多关联映射:让多的一端来维护关系. 主要是解决一对多单向关联的缺陷,而不是需求驱动的. 1.在Student.java实体类里添加Classes引用.pri ...

随机推荐

  1. freemarker学习 (servlet + freemarker -> Struts2+freemarker -> springMVC+freemarker)

    什么是freemarker? freemarker类似于jsp,但不是jsp!怎么说呢?freemarker文件后缀是.ftl,它不像jsp本质是servlet,它将构建模板.解析模板.使用模板分离开 ...

  2. fortran学习网站

    https://www.sciencesoft.cn/Fortran/Index.htm http://m.fcode.cn/

  3. AngularJS2.0教程(一)快速上手之基础知识

    Why Angular2 Angular1.x显然非常成功,那么,为什么要剧烈地转向Angular2? 性能的限制 AngularJS当初是提供给设计人员用来快速构建HTML表单的一个内部工具.随着时 ...

  4. 装饰器-wrapper

    我跟别人说我精通python,别人问我wrapper是啥,我说不知道,尼玛,原来wrapper就是装饰器,熟的不得了啊,英语真是我的克星啊. 闭包 closure 在认识装饰器之前先认识下闭包 闭包, ...

  5. L273 NCAA

    On Friday, the system that prevents college athletes from being compensated for their labor (beyond ...

  6. python实现图的遍历(递归和非递归)

    class graph: def __init__(self,value): self.value=value self.neighbors=None # 图的广度优先遍历 # 1.利用队列实现 # ...

  7. 删除掉str上下两行的空白字符(strip())

  8. 2017ICPC北京赛区网络赛 Minimum(数学+线段树)

    描述 You are given a list of integers a0, a1, …, a2^k-1. You need to support two types of queries: 1. ...

  9. SQL server类型转换

    1. CAST函数 语法: CAST ( expression AS data_type [ ( length ) ] ) | | | |关键字 表达式或值 要转换成的数据类型 最大长度 示例: SE ...

  10. JAVA多线程Thread与Runnable

    一.Runnable Runnable为一个之包含一个run方法的接口 public class MyRunnable implements Runnable{ @Override //表示:预示重写 ...