• spring mvc 之 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" />

    I'm falling off the sky all alone.The courage inside is gonna break the fall. Nothing can dim my light within. I am That I am 程序 = 数据结构 + 算法
  • 相关阅读:
    .NET Obfuscator Dotfuscator 入门
    查询集合已修改;可能无法执行枚举操作
    泛型(C# 2。0 编程指南) <一>
    在服务器上部署VS 2008 ReportViewer,完美支持中文
    dataGridView 闪烁 和 listview 闪烁 的解决办法。
    Asp.Net 调试客户端脚本
    疑是Microsoft Enterprise Library June 2005的一个小bug (续)
    MagicAjax 0.30版的更新(翻译)
    疑是Microsoft Enterprise Library June 2005的一个小bug
    在web页面中水晶报表显示速度过慢的原因
  • 原文地址:https://www.cnblogs.com/IamThat/p/2880141.html
Copyright © 2020-2023  润新知