详解Spring mvc ant path的使用方法
详解Spring mvc ant path的使用方法
概要:
任何一个WEB都需要解决URL与请求处理器之间的映射,spring MVC也是一样,但Spring MVC就像Spring所作的一切一样(灵活,可以配置各种东西,但是也造成了很多复杂性),肯定不会只有一种方法来映射URL和 Controller之间的关系,并且在实际上,允许你自己创建映射规则和实现,而不仅仅依赖URL映射。
1、Spring path match
Spring MVC中的路径匹配要比标准的web.xml要灵活的多。默认的策略实现了 org.springframework.util.AntPathMatcher,就像名字提示的那样,路径模式是使用了Apache Ant的样式路径,Apache Ant样式的路径有三种通配符匹配方法(在下面的表格中列出)这些可以组合出很多种灵活的路径模式。
2、Apache ant type
下面就来描述一下apache ant匹配规则,其实还是挺简单的。
Ant通配符描述
Wildcard | Description |
---|---|
? | 匹配任何单字符 |
* | 匹配0或者任意数量的字符 |
** | 匹配0或者更多的目录 |
3、举例说明:
1、 /views/products/**/*.cfm
# Matches /views/products/index.cfm /views/products/SE10/index.cfm /views/products/SE10/details.cfm /views/products/ST80/index.cfm /views/products/ST80/details.cfm # Does Not Match: /views/index.cfm /views/aboutUs/index.cfm /views/aboutUs/managementTeam.cfm
2、 /views/**/*.cfm
# Matches: /views/index.cfm /views/aboutUs/index.cfm /views/aboutUs/managementTeam.cfm /views/products/index.cfm /views/products/SE10/index.cfm /views/products/SE10/details.cfm /views/products/ST80/index.cfm /views/products/ST80/details.cfm # Does Not Match: /views/index.htm /views/readme.txt
3、 /views/index??.cfm
# Matches: /views/index01.cfm /views/index02.cfm /views/indexAA.cfm # Does Not Match: /views/index01.htm /views/index1.cfm /views/indexA.cfm /views/indexOther.cfm /views/anotherDir/index01.cfm
如果知道这些我们就能够在Spring MVC灵活的配置url映射了。
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
相关推荐
-
Spring MVC访问静态文件_动力节点Java学院整理
如何你的DispatcherServlet拦截"*.do"这样的有后缀的URL,就不存在访问不到静态资源的问题. 如果你的DispatcherServlet拦截"/",为了实现REST风格,拦截了所有的请求,那么同时对*.js,*.jpg等静态文件的访问也就被拦截了. 我们要解决这个问题. 目的:可以正常访问静态文件,不可以找不到静态文件报404. 方案一:激活Tomcat的defaultServlet来处理静态文件 Xml代码 <servlet-mappin
-
Spring mvc 分步式session的实例详解
Spring mvc 分步式session的实例详解 Session代表服务器与浏览器的一次会话过程,它的信息是保存在服务器端的.在Servlet中,session指的是HttpSession类的对象.服务器在创建session后,会把sessionid以cookie的形式回写给客户端.只要客户端的浏览器不关,每一次访问服务器都会带上这个sessionid.这样就可以在每次请求的时候获取到session的信息. 下面以spring MVC以例来说明如果创建分步式session. 1.login
-
Spring MVC之DispatcherServlet_动力节点Java学院整理
Spring MVC之DispatcherServlet 使用Spring MVC,配置DispatcherServlet是第一步. DispatcherServlet是一个Servlet,所以可以配置多个DispatcherServlet. DispatcherServlet是前置控制器,配置在web.xml文件中的.拦截匹配的请求,Servlet拦截匹配规则要自已定义,把拦截下来的请求,依据某某规则分发到目标Controller(我们写的Action)来处理. "某某规则":是根据
-
spring mvc常用注解_动力节点Java学院整理
Spring从2.5版本开始在编程中引入注解,用户可以使用@RequestMapping, @RequestParam, @ModelAttribute等等这样类似的注解.到目前为止,Spring的版本虽然发生了很大的变化,但注解的特性却是一直延续下来,并不断扩展,让广大的开发人员的双手变的更轻松起来,这都离不开Annotation的强大作用,今天我们就一起来看看Spring MVC 4中常用的那些注解吧. 1. @Controller Controller控制器是通过服务接口定义的提供访问应用
-
springMVC图片上传的处理方式详解
本文实例为大家分享了springMVC图片上传的处理方式,供大家参考,具体内容如下 首先需要依赖的jar包: <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>1.3.2</version> </dependency> <dependency> <groupId>
-
Spring MVC入门_动力节点Java学院整理
Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的.另外还有一种基于组件的.事件驱动的Web框架在此就不介绍了,如Tapestry.JSF等. Spring Web MVC也是服务到工作者模式的实现,但进行可优化.前端控制器是DispatcherServl
-
Spring MVC之WebApplicationContext_动力节点Java学院整理
如果你使用了listener监听器来加载配置,一般在Struts+Spring+Hibernate的项目中都是使用listener监听器的.如下 Java代码 <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> Spring会创建一个WebApplicationContext上下文,称为父上下
-
Spring MVC全局异常处理和单元测试_动力节点Java学院整理
在spring MVC的配置文件中: <!-- 总错误处理--> <bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> <property name="defaultErrorView"> <value>/error/error</
-
详解Spring mvc ant path的使用方法
详解Spring mvc ant path的使用方法 概要: 任何一个WEB都需要解决URL与请求处理器之间的映射,spring MVC也是一样,但Spring MVC就像Spring所作的一切一样(灵活,可以配置各种东西,但是也造成了很多复杂性),肯定不会只有一种方法来映射URL和 Controller之间的关系,并且在实际上,允许你自己创建映射规则和实现,而不仅仅依赖URL映射. 1.Spring path match Spring MVC中的路径匹配要比标准的web.xml要灵活的多.默认
-
详解Spring MVC如何测试Controller(使用springmvc mock测试)
在springmvc中一般的测试用例都是测试service层,今天我来演示下如何使用springmvc mock直接测试controller层代码. 1.什么是mock测试? mock测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法. 2.为什么要使用mock测试? 使用Mock O bject进行测试,主要是用来模拟那些在应用中不容易构造(如HttpServletRequest必须在Servlet容器中才能构造出来)或者比较复杂的对象(如J
-
详解spring cloud使用Hystrix实现单个方法的fallback
本文介绍了spring cloud-使用Hystrix实现单个方法的fallback,分享给大家,具体如下: 一.加入Hystrix依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-hystrix</artifactId> </dependency> 二.编写Controller package c
-
详解Spring MVC CORS 跨域
介绍 跨域CORS,全称是"跨域资源共享"(Cross-origin resource sharing) 当页面发出跨域请求时: 1.简单请求(先简单理解为正常的get/post吧): 浏览器将请求的地址添加到header的Origin里面发送请求.接下来就看后台如何处理了. 2.非简单请求(姑且简单理解成Content-Type:"application/json"吧): 浏览器会先发个预检请求(preflight),也就是OPTIONS请求.服务器返回是否许可访
-
详解spring mvc(注解)上传文件的简单例子
spring mvc(注解)上传文件的简单例子. 这有几个需要注意的地方 1.form的enctype="multipart/form-data" 这个是上传文件必须的 2.applicationContext.xml中 <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/> 关于
-
详解Spring MVC的拦截器与异常处理机制
目录 1.SpringMVC拦截器 1.1拦截器(interceptor)的作用 1.2拦截器和过滤器的区别 1.3拦截器的快速入门 1.4多拦截器操作 1.5拦截器方法说明 2.SpringMVC异常处理 2.1异常处理的思路 2.2异常处理的两种方式 2.3简单的异常处理器SimpleMappingExceptinResolver 2.4自定义异常处理步骤 总结 1. SpringMVC拦截器 1.1 拦截器(interceptor)的作用 Spring MVC 的拦截器类似于 Servle
-
详解spring mvc对异步请求的处理
在spring mvc3.2及以上版本增加了对请求的异步处理,是在servlet3的基础上进行封装的. 1.修改web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001
-
详解Spring MVC事务配置
要了解事务配置的所有方法,请看一下<Spring事务配置的5种方法> 本文介绍两种配置方法: 一.XML,使用tx标签配置拦截器实现事务 二.Annotation方式 以下所使用环境为Spring4.0.3.Hibernate4.3.5 一. XML,使用tx标签配置拦截器实现事务 Entity类User.java,持久化类,对应数据库表user package com.lei.demo.entity; import javax.persistence.*; @Entity(name=&qu
-
详解Spring MVC自动为对象注入枚举类型
如果一个对象里面有枚举类型的话,则spring MVC是不能够直接进行注入的,因为它只实现了一些基本的数据类型的自动转换注入,但是其也提供了可扩展的接口,可以根据自己的需要来进行扩展.下面是一个示例: 首先:这是一个枚举类: /** * 新闻类别 * @author: ShangJianguo * 2014-6-11 上午10:51:07 */ public enum ENews { company("0"), // 企业新闻 industry("1");// 行业
-
详解Spring MVC的异步模式(高性能的关键)
什么是异步模式 要知道什么是异步模式,就先要知道什么是同步模式,先看最典型的同步模式: 浏览器发起请求,Web服务器开一个线程处理,处理完把处理结果返回浏览器.好像没什么好说的了,绝大多数Web服务器都如此般处理.现在想想如果处理的过程中需要调用后端的一个业务逻辑服务器,会是怎样呢? 调就调吧,上图所示,请求处理线程会在Call了之后等待Return,自身处于阻塞状态.这也是绝大多数Web服务器的做法,一般来说这样做也够了,为啥?一来"长时间处理服务"调用通常不多,二来请求数其实也不多
随机推荐
- AngularJS页面带参跳转及参数解析操作示例
- Angular.js中控制器之间的传值详解
- ios实现自动获取label高度、宽度及最后一个位置详解
- javascript 自动转到命名锚记
- SQL Server 2012安装后服务器名称找不到的解决办法
- iOS应用开发中的文字选中操作控件UITextView用法讲解
- JavaScript 控制字体大小设置的方法
- 点击按钮出现60秒倒计时的简单js代码(推荐)
- php socket通信简单实现
- mysql limit查询优化分析
- ThinkPHP中URL路径访问与模块控制器之间的关系
- 基于Java回顾之多线程详解
- jQuery编辑器KindEditor4.1.4代码高亮显示设置教程
- python列表操作之extend和append的区别实例分析
- SQL 截取字符串应用代码
- mysql sql语句总结
- 必须会的SQL语句(八) 数据库的完整性约束
- jQuery中 noConflict() 方法使用
- Android编程实现获取新浪天气预报数据的方法
- 网络安全基础知识16个问答