Spring MVC中的路径匹配比起标准web.xml的servlet映射要灵活得多。路径匹配的默认策略是由org.springframework.util.AntPathMatcher实现的。顾名思义,路径模式是采用Apache Ant(http://ant.apache.org)风格路径来编写的。Ant风格路径有三种类型的通配符(列于表5-2中),能相互结合以创建多样灵活的路径模式。见表5-3中的模式例子。

表5-2  Ant通配符字符


通配符描述


?  匹配一个字符

*  匹配零个或多个字符

**匹配零个或多个目录


表5-3  Ant-Style路径模式


路径描述


/app/*.x            匹配app目录中的所有.x文件

/app/p?ttern      匹配/app/pattern和app/pXttern,但不匹配/app/pttern

/**/example      匹配/app/example、/app/foo/example和/example

/app/**/dir/file.*匹配/app/dir/file.jsp、/app/foo/dir/file.html

/**/*.jsp           匹配任何.jsp文件

路径优先级

路径模式的排序和优先级不受任何接口指定。然而org.springframework.web.servlet.handler.AbstractUrlHandlerMapping的默认实现将匹配一个最长的(最明确的)匹配模式的路径。

例如,对于请求URL/app/dir/file.jsp,有两个路径模式/**/*.jsp和/app/dir/*.jsp。哪一个路径模式会匹配呢?后一个即/app/dir/*.jsp会匹配,因为它比/**/*.jsp更长(有更多的字符)。要注意的是,任何高级接口都没有说明这个匹配路径到请求处理器的规则,但它是一个实现细节。

文章节选自:《深入解析Spring MVC与Web Flow》 徐哲、沈燕译。

Spring MVC的路径匹配的更多相关文章

  1. Spring MVC的路径匹配规则 Ant-style

    Spring默认的策略实现了 org.springframework.util.AntPathMatcher,即Apache Ant的样式路径,Apache Ant样式的路径有三种通配符匹配方法(在下 ...

  2. spring mvc获取路径参数的几种方式 - 浅夏的个人空间 - 开源中国社区

    body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...

  3. spring mvc获取路径参数的几种方式

    一.从视图向controller传递值,  controller <--- 视图 1.通过@PathVariabl注解获取路径中传递参数 (参数会被复制到路径变量) @RequestMappin ...

  4. Srping MVC ant路径匹配

    背景 最近有一个功能设计path匹配,开发说支持ant匹配,这是我第一次听说这个词,赶紧补一下功课. Ant匹配规则 1.前言 (1)SpringMVC的路径匹配规则是按照Ant来的,实际上不只是Sp ...

  5. Spring MVC - URL路径映射

    1. 普通映射 A. @RequestMapping("/test1") B. @RequestMapping(value={"/test1", "/ ...

  6. Spring MVC 请求路径遇到的302问题的解决方法

    302 Found 请求的资源现在临时从不同的URI响应请求.由于这样的重定向是临时的,客户端应当继续向原有地址发送以后的请求.只有在Cache-Control或Expires中进行了指定的情况下,这 ...

  7. Spring MVC 学习总结(六)——Spring+Spring MVC+MyBatis框架集成

    与SSH(Struts/Spring/Hibernate/)一样,Spring+SpringMVC+MyBatis也有一个简称SSM,Spring实现业务对象管理,Spring MVC负责请求的转发和 ...

  8. Spring+Spring MVC+MyBatis

    Spring+Spring MVC+MyBatis 目录 一.新建一个基于Maven的Web项目 二.创建数据库与表 三.添加依赖包 四.新建POJO实体层 五.新建MyBatis SQL映射层 六. ...

  9. Java Spring MVC项目搭建(二)——项目配置

    1.站点配置文件web.xml 每一个Spring MVC 项目都必须有一个站点配置文件web.xml,他的主要功能吗....有一位大哥已经整理的很好,我借来了,大家看看: 引用博客地址: http: ...

随机推荐

  1. Python连接MySQL乱码(中文变问号)

    #coding=utf-8 import MySQLdb db = MySQLdb.connect("IP","用户名","密码",&quo ...

  2. windowsclient开发--使用、屏蔽一些快捷键

    每一个windowsclient都有自己的一些快捷键,有的是windows系统提供的. 今天就要与大家分享一下.在windowsclient开发过程中对按键的处理. ESC按键 Duilib这个库中, ...

  3. Python学习笔记(五)多进程实现并发服务器

      每创建一个TCP连接,就创建一个进程. 代码如下: # coding: utf-8 import socket import os import sys import signal import ...

  4. Unity多媒体展示项目经验分享-ImageEffect+动态绑定

    Unity多媒体展示项目经验分享-ImageEffect+动态绑定+网络通信 <ignore_js_op> “海尔科技展墙”是去年年初我们为上海家电博览会制作的一个多媒体展项,有限的工期以 ...

  5. socket websocket

    1.websocket客户端 websocket允许通过JavaScript建立与远程服务器的连接,从而实现客户端与服务器间双向的通信.在websocket中有两个方法: 1.send() 向远程服务 ...

  6. 在ubuntu10.04 下将360wifi当无线网卡使用

    通过百度“360wifi linux“ 已经有很多解决方案.主要过程是从网上下载mt7601驱动包,编译出一个内核模块后,再通过modprobe 添加模块.下面描述的是基于我本机的特点所做的额外工作. ...

  7. poj 2409 Let it Bead Polya计数

    旋转能够分为n种置换,相应的循环个数各自是gcd(n,i),个i=0时不动,有n个 翻转分为奇偶讨论,奇数时有n种置换,每种有n/2+1个 偶数时有n种置换,一半是n/2+1个,一半是n/2个 啃论文 ...

  8. Function.prototype.bind、call与apply方法简介

    前言 前段时间面试遇见一题,题目内容大概是 function Parent() { this.prop = 'parent'; } Parent.prototype.get = function() ...

  9. webview漏洞 -转

    原文链接:http://www.cnblogs.com/goodhacker/p/3343837.html 一.漏洞描述 近期,微信等多款安卓流行应用曝出高危挂马漏洞:只要点击好友消息或朋友圈中的一条 ...

  10. docker发布spring cloud应用

    原文地址:http://www.cnblogs.com/skyblog/p/5163691.html 本文涉及到的项目: cloud-simple-docker:一个简单的spring boot应用 ...