• 根据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. IDEA中maven的依赖jar包报红

    问题描述: 查看本地的repository中有相关的jar包,但是在IDEA中就是报红(下面红色波浪线) 解决方法: 将pom.xml中相关的dependcy配置注释掉,maven中jar包就会删除. ...

  2. git创建版本库 小白操作 (看图)

    1.什么都没记住,各种试 pwd   --查看当前路径 cd /e   --进入E盘 mkdir test  --在E盘下创建test空文件夹 git init   -- 初始化,编程git可以管理的 ...

  3. 2019-03-06-day012-生成器与推导式

    01 昨日回顾 迭代器: 迭代器有iter方法 next方法就是迭代器 递归: 自己调用自己 明确的结束条件 递归的最大深度 官方 1000 实际测试:998/997 import sys sys.s ...

  4. 计数SQL,查找单据总量和按季度查找单据总量

    --查找单据总量 select COUNT(1) as '表XXXXXX数据量' from XXXXXXwith(nolock) --按季度查找单据总量 select count(1) as '表XX ...

  5. python2和Python3的区别(长期更新)

    1.在Python2中无需将打印的内容放在括号内,但是Python3中必须将打印的内容放在括号内,从技术上看Python3中的print是函数. 2.对于用户交互终点额输入input,在python2 ...

  6. Java小故事(一)

    import java.util.Date; //导入包 public class Test11 { public static void main(String [] args){ CatFathe ...

  7. 数据库开启对sys用户的审计

    需求:客户想对数据库开启sys用户的审计功能,关闭其它用户的审计功能. 1)再一次巡检报告中,我们发现数据库版本11.2.0.4,开启审计功能,提供的建议如下,关闭审计alter system set ...

  8. jQuery对标签、类样式、值、文档、DOM对象的操作

    jquery的标签属性操作 使用attr()方法对html标签属性进行操作,attr如果参数是一个参数,表示获取html标签的属性值,如果是两个参数则是设置标签属性名以及对象的属性值 .prop()适 ...

  9. ace编辑器 光标错位

    字体的关系

  10. ortp 发送RTP实例

    参考源代码目录src/tests/rtpsend.c     ortp_init();     ortp_scheduler_init();     ortp_set_log_level_mask(O ...