`

SpringMVC中可以使用多个HandlerMapping

阅读更多
在基于Spring MVC的Web应用程序中,我们可以为DispatcherServlet提供多个Handler- Mapping供其使用。DispatcherServlet在选用HandlerMapping的过程中,将根据我们所指定的一系列HandlerMapping的优先级进行排序,然后优先使用优先级在前的HandlerMapping。如果当前的HandlerMapping能够返回可用的Handler,DispatcherServlet则使用当前返回的Handler进行Web请求的处理,而不再继续询问其他的HandlerMapping。否则,DispatcherServlet将继续按照各个HandlerMapping的优先级进行询问,直到获取一个可用的Handler为止。

HandlerMapping的优先级规定遵循Spring框架内一贯的Ordered接口所规定的语义。Spring MVC中可用的HandlerMapping实现全都实现了Ordered接口。假设我们优先使用SimpleUrl- HandlerMapping进行Handler的映射管理,其次使用BeanNameUrlHandlerMapping,那么就可以在DispatcherServlet特定的WebApplicationContext中增加如代码清单24-3所示的配置内容。

代码清单 HandlerMapping指定优先级配置代码示例
<bean id="handlerMapping" class="org.
springframework.Web.servlet.handler.?   
SimpleUrlHandlerMapping">   
    <property name="order" value="1"/>   
    <property name="mappings">   
        <value>   
                ...   
        </value>   
    </property>   
</bean>   
  
<bean id="defaultHandlerMapping" ?   
class="org.springframework.Web.servlet.
handler.BeanNameUrlHandlerMapping">   
</bean>  


如果不为HandlerMapping明确指定order,那么默认值为Integer.MAX_VALUE,对应最低优先级。所以,拥有order值为1的SimpleUrlHandlerMapping较之BeanNameUrlHandlerMapping优先被调用。
分享到:
评论

相关推荐

    Spring SpringMVC 简单整合

    3、 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。 4、 DispatcherServlet调用HandlerAdapter处理器适配器。 5、 ...

    SpringMVC工作原理11

    1、客户端请求提交到DispatcherServlet 2、由DispatcherServlet控制器查询个或多个HandlerMapping,找到处理请 3、

    简单的SSM.txt

    2. 由DispatcherServlet控制器查询一个或多个HandlerMapping,找到处理请求的Controller 3. DispatcherServlet将请求提交到Controller 4. Controller调用业务逻辑处理后,返回ModelAndView 5. ...

    spring mvc 思维导图

    •(2) 寻找处理器:由DispatcherServlet控制器查询一个或多个HandlerMapping,找到处理请求的Controller。 •(3) 调用处理器:DispatcherServlet将请求提交到Controller。 •(4)(5)调用业务处理和返回结果:...

    详解JSP 中Spring工作原理及其作用

     2.DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller.  3.DispatcherServlet请请求提交到目标Controller  4.Controller进行业务逻辑处理后,会返回一个ModelAndView  5.Dispathcher查询...

    Spring MVC 员工管理系统

    ③ 当DispatcherServlet从HandlerMapping中得到当前请求对应的处理器后,它就将请求分派给这个处理器。处理器根据请求的信息执行相应的业务逻辑,一个设计良好的处理器应该通过调用Service层的业务对象完成业务处理...

    Spring MVC 学习笔记

    2、 DispatcherServlet把请求转交给HandlerMapping, HandlerMapping将会把请求映射为HandlerExecutionChain对象(包含一个Handler处理器对象、多个HandlerInterceptor拦截器)对象.(后面会学习到拦截器) 3、 ...

    Spring MVC之DispatcherServlet_动力节点Java学院整理

    DispatcherServlet是一个Servlet,所以可以配置多个DispatcherServlet。 DispatcherServlet是前置控制器,配置在web.xml文件中的。拦截匹配的请求,Servlet拦截匹配规则要自已定义,把拦截下来的请求,依据某某规则...

    java面试题.docx

    SpringMVC运行原理 1、客户端请求提交到DispatcherServlet。 2、由DispatcherServlet控制器查询HandlerMapping,找到并分发...4、DispatcherServlet查询一个或多个ViewResoler视图解析器,找到ModelAndView指定的视图。

    AisMVC.zip

    * 写这个框架的意义在于过去使用springmvc框架作为项目中的Controller层,springmvc的简洁配置和使用让我们选择了它,但这个框架我用着也发现了它也有很多冗余功能的地方。我们团队开发web项目一般采用前后端分离,所以...

    sprigmvc图文总结

    • 多个拦截器,即 HANDLERINTERCEPTOR 4、前端控制器(DispatcherServlet)调用处理器适配器(HandlerAdapter)去执行处理器(Handler)。 5、处理器适配器去执行Handler。 6、处理器执行完给处理器适配器返回...

Global site tag (gtag.js) - Google Analytics