当客户端发出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 例如 ‘/welcome
224sscc’也是可以匹配到该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" />
分享到:
相关推荐
org.apache.cxf.spring.remoting.Jsr181HandlerMapping.jar
NULL 博文链接:https://yihuawuye1.iteye.com/blog/2104547
HandlerMapping HandlerAdapter View ViewResolver类图 矢量图文件 https://blog.csdn.net/qq_39609993/article/details/105435850
主要介绍了SpringMVC源码解读之 HandlerMapping - AbstractDetectingUrlHandlerMapping系列初始化的相关资料,需要的朋友可以参考下
主要介绍了SpringMVC源码解读之HandlerMapping 的相关资料,需要的朋友可以参考下
主要介绍了SpringMVC源码解读之HandlerMapping - AbstractUrlHandlerMapping系列request分发 的相关资料,需要的朋友可以参考下
(3)、 处理器映射器(HandlerMapping)找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet(前端控制器)。 (4)、 DispatcherServlet...
2、 DispatcherServlet把请求转交给HandlerMapping, HandlerMapping将会把请求映射为HandlerExecutionChain对象(包含一个Handler处理器对象、多个HandlerInterceptor拦截器)对象.(后面会学习到拦截器) 3、 ...
2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。 3、 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。 ...
处理器映射器(HandlerMapping):根据URL去查找处理器,一般通过xml配置或者注解进行查找。 处理器(Handler):就是我们常说的controller控制器啦,由程序员编写。 处理器适配器(HandlerAdapter):可以将处理器...
Spring MVC以DispatcherServlet为核心,众多组件如HandlerMapping为辅助,为用户封装了请求映射等底层逻辑,让用户可以更专注与业务逻辑的处理。本文会对Spring MVC整体结构做简单介绍。 Spring MVC结构图 Spring ...
2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。 3、 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。 4...
springMVC相关技术配置使用注解的HandlerMapping和HandlerAdapter使用<mvc:annotation-driver> 不过springBoot已经省略了这些配置 配置使用注解的Handler和Service等等使用<context:component-scan> 不过springBoot...
2.DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller. 3.DispatcherServlet请请求提交到目标Controller 4.Controller进行业务逻辑处理后,会返回一个ModelAndView 5.Dispathcher查询一个...
处理器映射器(HandlerMapping)和处理器适配器(HandlerAdapter)是核心组件,负责找到和调用适当的处理器(Controller)。 Spring MVC的一个关键特性是它的灵活性,支持多种类型的控制器和视图技术。它还提供了...
主控制器调用HandlerMapping组件,根据请求不同调用Controller处理器 c.主控制器调用Controller方法处理请求,(对DB操作可以调用DAO组件),方法执行后返回一个ModelAndView对象结果 d.ModelAndView里包含了响应View和...
23道SpringMVC常见面试题 ...2) DispatcherServlet 查询 handlerMapping 找到处理请求的 Controller 3)Controller 调 用 业 务 逻 辑 后 , 返 回 ModelAndView 4)DispatcherServlet 查询 ModelAndVi
SpringMVC在项目中拦截用户请求,它的核心Servlet即DispatcherServlet承担中介或是前台这样的职责,将用户请求通过HandlerMapping去匹配Controller,Controller就是具体对应请求所执行的操作。SpringMVC相当于SSH...
Spring MVC 内置了 Requestmapping、HandlerMapping 和 ViewResolver 等组件,可以简化开发流程。MyBatis 作为持久层框架,负责处理数据库操作。 在安全性方面,该网站采用了 SSL 证书进行加密传输,并实现了用户...
Spring MVC 内置了 Requestmapping、HandlerMapping 和 ViewResolver 等组件,可以简化开发流程。MyBatis 作为持久层框架,负责处理数据库操作。 在安全性方面,该教务管理系统采用了 SSL 证书进行加密传输,并实现...