`
seong
  • 浏览: 23245 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

HandlerMapping

 
阅读更多
当客户端发出Request的时候DispatcherServlet会将Request提交给HandlerMapping, 然后HanlerMapping根据Web Application Context的配置来回传给DispatcherServlet相应的Controller.

HandlerMapping

1. org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping

默认的HanlerMapping 会根据Controller的Bean Name来进行匹配 例如:

<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>

<bean name="/welcome.html" class="me.iace.spring.controller.WelcomeController"/>

当客户端发出http://xxxx/ctx/welcome.html的时候 BeanNameUrlHandlerMapping指向该Controller回传给DispatcherServlet

2. org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping

ControllerClassNameHandlerMapping会根据Controller Bean的Class Name来做匹配 例如:

<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"/>

<bean name="/hello" class="me.iace.spring.controller.WelcomeController"/>

例如WelcomeController 会去掉后面的Controller 客户端发出 /welcome的request 会匹配到该Controller, 需要注意的是 如果welcome的第一个字母'w'为大写的话是错误的, 而且后welcome后面不管有什么都会匹配该WelcomeController 例如 ‘/welcome224sscc’也是可以匹配到该Controller的。

ControllerClassNameHandlerMapping的相关属性 如下

<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping">
<property name="caseSensitive" value="true" />
<property name="pathPrefix" value="/haha" />
<property name="basePackage" value="me.iace.spring.controller" />
</bean>
caseSensitive: 是否识别大小写
pathPrefix: url的前缀,在这里的前缀是 '/haha'
basePackage: 指定匹配哪个package的Controller


再就是可以同时使用 BeanNameUrlHandlerMapping 和 ControllerClassNameHandlerMapping 例如

<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>

<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"/>

<bean name="/hello" class="me.iace.spring.controller.WelcomeController"/>

当客户端发出 '/hello' 和 '/welcome'的时候都会匹配到该WelcomeController



3. org.springframework.web.servlet.handler.SimpleUrlHandlerMapping

SimpleUrlHandlerMapping会将在自身Properies里设置的Url映射到相关的Controller, 如下:



<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/welcome">welcomeController</prop>
<prop key="/hello">helloController</prop>
</props>
</property>
</bean>

<bean id="welcomeController" class="me.iace.spring.controller.WelcomeController" />

<bean id="helloController" class="me.iace.spring.controller.WelcomeController" />
分享到:
评论

相关推荐

    SpringMVC源码总结(一)HandlerMapping和HandlerAdapter入门

    在本篇博客“SpringMVC源码总结(一)HandlerMapping和HandlerAdapter入门”中,我们将探讨Spring MVC框架的核心组件——HandlerMapping和HandlerAdapter。这两个组件是Spring MVC处理请求的关键,它们负责映射HTTP...

    org.apache.cxf.spring.remoting.Jsr181HandlerMapping.jar

    org.apache.cxf.spring.remoting.Jsr181HandlerMapping.jar

    Spring MVC核心组件之HandlerMapping详解

    ### Spring MVC核心组件之HandlerMapping详解 #### 一、引言 在Java Web开发领域,Spring MVC框架因其灵活且强大的特性而备受青睐。它提供了一种简洁的方式来构建可维护、可扩展的应用程序。Spring MVC的核心组件之...

    HandlerMapping HandlerAdapter View ViewResolver类图 矢量图

    HandlerMapping HandlerAdapter View ViewResolver类图 矢量图文件 https://blog.csdn.net/qq_39609993/article/details/105435850

    SpringMVC源码解读之 HandlerMapping - AbstractDetectingUrlHandlerMapping系列初始化

    在Spring MVC框架中,HandlerMapping是一个至关重要的组件,它的职责是将HTTP请求映射到相应的处理器(Handler)。在源码解读中,我们关注的是AbstractDetectingUrlHandlerMapping,这是一个抽象类,它通过扫描应用...

    SpringMVC源码解读之HandlerMapping

    本文将深入探讨`HandlerMapping`的工作原理及其在Spring MVC中的作用。 首先,`HandlerMapping`是一个接口,它定义了一个关键方法`getHandler(HttpServletRequest request)`,该方法负责根据请求获取对应的`...

    第二课:通过MVC原理,自定义MVC框架实现1

    2. 实现HandlerMapping接口,将请求映射到对应的处理器。 3. 实现HandlerAdapter接口,处理控制器方法的调用。 4. 配置异常处理和拦截器机制。 5. 自定义视图解析逻辑。 总结,通过深入理解MVC模式和Spring MVC的...

    SpringMVC源码解读之HandlerMapping - AbstractUrlHandlerMapping系列request分发

    AbstractUrlHandlerMapping是HandlerMapping的一个抽象实现,它处理基于URL的请求分发。本文将深入探讨AbstractUrlHandlerMapping如何进行request分发,并介绍其核心功能。 首先,我们关注`getHandler`方法,这是...

    spring-ext-handler-mapping.rar_ext_spring ext_spring mvc

    Spring MVC默认提供了一些内置的HandlerMapping实现,如BeanNameUrlHandlerMapping、SimpleUrlHandlerMapping等。但是,在实际项目中,我们可能需要根据特定需求定制自己的映射规则。通过扩展HandlerMapping接口,...

    Spring+SpringMVC+Mybatis框架整合例子(SSM) 下载

    3. 配置SpringMVC:创建SpringMVC的配置文件,如servlet-context.xml,配置DispatcherServlet、ViewResolver、HandlerMapping等。 4. 配置Mybatis:创建mybatis的全局配置文件,mybatis-config.xml,配置数据源、...

    SpringMVC学习分享.pptx

    HandlerMapping可以通过配置文件或注解方式进行配置,例如使用"@RequestMapping"注解标注请求映射。 ViewResolver简介 ViewResolver是SpringMVC框架中的视图解析组件,负责将逻辑视图名解析为具体的视图实现。...

    2023年SpringMVC学习笔记.doc

    HandlerMapping是SpringMVC中的一个重要组件,它负责将用户的请求映射为HandlerExecutionChain对象,包含一个Handler解决器对象和多个HandlerInterceptor拦截器对象。HandlerMapping使用策略模式,使得添加新的映射...

    Spring源代码解析(四):Spring_MVC.doc

    如果配置为false(第13行之后的代码),则只会尝试获取名为`HANDLER_MAPPING_BEAN_NAME`的特定bean,如果没有找到,将忽略异常并稍后添加默认的HandlerMapping。 在Spring MVC中,HandlerMapping的作用是将HTTP请求...

    SpringMVC源码剖析(一)- 从抽象和接口说起1

    当请求到达服务器,`DispatcherServlet`作为标准Servlet接收请求,并根据`HandlerMapping`接口来确定合适的处理器。 `HandlerMapping`接口位于`org.springframework.web.servlet`包中,它是SpringMVC中定义的核心...

    从源码的角度来看SpringMVC_从源码的角度来看SpringMVC_

    本文将从核心组件、请求处理流程、DispatcherServlet、HandlerMapping、ModelAndView、视图解析等多个方面,详细阐述SpringMVC的源码分析。 1. **核心组件** SpringMVC的核心组件包括DispatcherServlet、...

    spring-mvc 程序结构以及调用流程

    首先,Spring MVC中的主要组件包括DispatcherServlet、HandlerMapping、Controller、HandlerInterceptor、ViewResolver等。 DispatcherServlet是Spring MVC框架的前端控制器,负责接收HTTP请求并将其分发给合适的...

    02-01-06-一步一步手绘Spring MVC运行时序图1

    Spring MVC的核心组件包括DispatcherServlet、HandlerMapping、Controller、ModelAndView以及一系列辅助组件。DispatcherServlet作为前端控制器,它是所有请求的入口点,负责接收HTTP请求,并将请求转发给适当的处理...

    springmvc第二天课堂笔记.docx

    本文主要对 Spring MVC 框架的第二天课堂笔记进行了总结,涵盖了 DispatcherServlet、HandlerMapping、HandlerAdapter、Handler、ViewResolver 等核心组件的作用和使用方式,以及注解开发方式的应用。 一、...

    SpringMVC面试题 29道.pdf

    - 清晰的角色分配,如DispatcherServlet、HandlerMapping、HandlerAdapter、ViewResolver等,提高可读性和可维护性。 - 支持灵活的请求资源映射策略。 3. Spring MVC核心组件: - DispatcherServlet:前端控制器,...

    SpringMVC工作原理11

    SpringMVC的工作原理是基于一系列组件的协作,这些组件包括DispatcherServlet、HandlerMapping、Controller、ModelAndView和ViewResolver。 首先,客户端发起HTTP请求,这个请求会到达DispatcherServlet,这是...

Global site tag (gtag.js) - Google Analytics