`
hy90171
  • 浏览: 59146 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

spring 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" />

 

4.org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping

 

<mvc:annotation-driven /> 是一种简写形式,完全可以手动配置替代这种简写形式,简写形式可以让初学都快速应用默认配置方案。

<mvc:annotation-driven /> 会自动注册 DefaultAnnotationHandlerMapping 与 AnnotationMethodHandlerAdapter 两个bean,是spring MVC为@Controllers分发请求所必须的。
并提供了:数据绑定支持,@NumberFormatannotation支持,@DateTimeFormat支持,@Valid支持,读写XML的支持(JAXB),读写JSON的支持(Jackson)

分享到:
评论

相关推荐

    spring-ext-handler-mapping.rar_ext_spring ext_spring mvc

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

    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的核心组件之...

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

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

    spring4.0框架demo

    2. 配置Spring MVC:编写servlet-context.xml,设置DispatcherServlet、HandlerMapping和ViewResolver等。 3. 编写Controller:创建一个简单的Controller类,使用@RequestMapping注解处理HTTP请求。 4. 视图层实现...

    spring4.2.0对应jdk1.8spring,springMVC所有依赖包以及文档

    在Spring 4.2.0中,SpringMVC引入了诸如类型安全的HandlerMapping和HandlerAdapter配置,增强了对HTTP方法的支持,以及对RESTful Web服务的更好支持。同时,它也支持了Java 8的日期和时间API,使得日期处理更加便捷...

    spring源码注释中文

    - **Spring MVC 工作流程**:从请求到响应,理解 Controller、Model、ViewResolver 和 HandlerMapping 等组件的角色。 - **事务管理**:学习 Spring 如何提供声明式和编程式事务管理,以及事务的传播行为。 - **...

    spring 源码中文注释

    在Web MVC模块中,`DispatcherServlet`作为核心组件,负责请求的分发,`ModelAndView`和`HandlerMapping`等类则构成了模型-视图-控制器架构的基础。 此外,Spring框架也引入了JSR-330定义的依赖注入注解,如`@...

    Spring 相关jar包

    Spring MVC通过DispatcherServlet处理请求,使用HandlerMapping映射请求到相应的Controller方法,然后由Model处理业务,最后返回View进行渲染。 4. **JSON支持**:Spring提供了一系列工具类和库,如Jackson或Gson,...

    spring mvc + spring + hibernate 全注解整合开发视频教程 12

    1. Spring MVC的基本概念和配置,包括DispatcherServlet、HandlerMapping和ViewResolver。 2. 如何创建Spring MVC的Controller,以及使用注解进行请求映射和参数绑定。 3. Spring的依赖注入和AOP的使用,包括@...

    spring 框架源码 版本:5.2.9.RELEASE

    源码中展示了DispatcherServlet如何分发请求,HandlerMapping如何映射请求到处理器,以及ModelAndView如何封装视图数据。同时,你还可以研究视图解析器和模板引擎的实现,例如JSP、FreeMarker或Thymeleaf。 此外,...

    详尽的Spring2.0学习提纲

    2. DispatcherServlet和HandlerMapping:解析请求分发和处理器映射的机制。 3. Controller和视图解析:编写RESTful风格的Controller,使用ModelAndView或直接返回视图名称。 4. 数据绑定和验证:模型数据的自动绑定...

    spring.jar spring-webmvc-struts.jar spring-webmvc.jar

    它包括了DispatcherServlet、ModelAndView、ViewController、HandlerMapping、HandlerAdapter等关键组件,为Web开发提供了强大的工具。 这些jar包的使用通常涉及以下知识点: 1. **依赖注入**:理解如何通过XML...

    spring源码中英文注释

    `HandlerMapping`和`HandlerAdapter`分别负责映射请求到处理器和适配处理器执行。`ModelAndView`则用于返回视图模型。 6. **Spring AOP实现**:Spring的AOP并非完全基于代理的,而是使用了动态代理和CGLIB库。在...

    Spring技术内幕:深入解析Spring架构与设计原理(第2版)+.pdf

    Spring MVC的核心组件包括DispatcherServlet、HandlerMapping、HandlerAdapter和ViewResolver等。 ### 事务管理 Spring框架提供了一套强大的事务管理机制,可以方便地与各种持久化技术(如Hibernate、JPA等)集成...

    Spring学习心得(一)

    Spring MVC通过DispatcherServlet接收请求,使用HandlerMapping找到合适的处理器,然后调用Controller处理请求,最后通过ViewResolver渲染结果。 至于"工具"标签,这可能指的是Spring Tool Suite(STS),一个基于...

    Spring MVC jar包

    - **组件**:主要包括Model、View、Controller、HandlerMapping、HandlerAdapter、ViewResolver等组件,每个组件都有明确的职责。 - **ModelAndView**:Controller处理完请求后,返回一个ModelAndView对象,包含了...

    Spring5 源码分析(第 2 版)-某Tom老师

    Tom老师会解释DispatcherServlet的工作流程,以及HandlerMapping和HandlerAdapter的角色,同时还会涉及到视图解析和模型数据的传递。 除此之外,Spring5还加强了对Java 8及新特性的支持,如Lambda表达式和Stream ...

    springmvc spring hibernate整合Demo

    2. 配置Spring MVC:设置DispatcherServlet,处理HTTP请求,并配置HandlerMapping和HandlerAdapter来映射请求到相应的Controller方法。同时,还需要配置视图解析器,如InternalResourceViewResolver,以便将处理结果...

    spring MVC配置详解

    spring-servlet.xml 文件是 DispatcherServlet 的配置文件,它用来配置 HandlerMapping、ViewResolver 等组件。在这个文件中,我们可以配置 HandlerMapping,以便将请求映射到对应的 Handler 中。 五、Handler 配置...

Global site tag (gtag.js) - Google Analytics