spring boot 基于正则的url映射
2021/11/26 23:13:25
本文主要是介绍spring boot 基于正则的url映射,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
基于正则的url映射:它支持{名称:正则表达式}的写法,以另一种风格限制url的映射。
//正则表达式 @RequestMapping(value="/student/{name:\\w+}-{age:\\d+}") public @ResponseBody String regUrl(@PathVariable String name,@PathVariable int age){ return "name:"+name+" age:"+age; } 例如上面的URL就只能匹配如: localhost:8080/context/student/wangwu-33 或者 localhost:8080/context/student/zhao4-22
正则表达式的写法如下:
@RequestMapping(value = "/{name:(?!fonts|oauth|webjars|swagger|images)[a-z][0-9a-z-]{3,31}}/**",method = {RequestMethod.POST, RequestMethod.GET}) public void homePage(HttpServletRequest request, HttpServletResponse response ,@PathVariable String name) { }
表示name满足4--32位以字母开头的字母与数字字符,并且不包括fonts、oauth、webjars、swagger、images这几个词。
系统访问的url在后台有多个接口匹配时,定义最精确的会被匹配。
@RequestMapping(value = "/{name:([a-z][0-9a-z-]{3,31}}/**",method = {RequestMethod.GET}) public void test1(@PathVariable String name){ } @RequestMapping(value = "/{name:([a-z][0-9a-z-]{3,31}}/mytest",method = {RequestMethod.GET}) public void test2(@PathVariable String name){ } @RequestMapping(value = "/test/mytest",method = {RequestMethod.GET}) public void test3(){ }
访问接口 /test/mytest 时,虽然三个接口都满足,但是请求会到test3方法
访问接口/myapi/mytest时,请求会到test2方法
demo:
public class AssetServerController { @RequestMapping(value = {"/**/{path:[^\\\\.]*}","/{path:^(?!/assets/).*}","/{path:^(?!/api/).*}"}, method = RequestMethod.GET) public String index() { return"forward:/"; } }
@GetMapping(value = {"/", "/{path:(?!.*doc).+}", "/{folder:^(?!swagger-ui).*$}/{page}"}) public String showPage(@PathVariable(value = "folder", required = false) String folder, @PathVariable(value = "page", required = false) String page, @RequestParam(required = false) Map<String, String> parms, @NotNull ModelMap result) { result.mergeAttributes(parms); page = CharSequenceUtil.isNotBlank(folder) ? folder + "/" + page : page; page = CharSequenceUtil.isNotBlank(page) ? page : "/"; log.info("get page:" + page); return page; } @RequestMapping(value = "/route/to-{destination:^((?!-from-).)+}.html", method = {RequestMethod.GET, RequestMethod.HEAD}) "/route/to-{destination:(?!.*-from-).+}.html" value = {"/{path:(?!.*assets).+}/**"}
这篇关于spring boot 基于正则的url映射的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-11有哪些好用的家政团队管理工具?
- 2025-01-11营销人必看的GTM五个指标
- 2025-01-11办公软件在直播电商前期筹划中的应用与推荐
- 2025-01-11提升组织效率:上级管理者如何优化跨部门任务分配
- 2025-01-11酒店精细化运营背后的协同工具支持
- 2025-01-11跨境电商选品全攻略:工具使用、市场数据与选品策略
- 2025-01-11数据驱动酒店管理:在线工具的核心价值解析
- 2025-01-11cursor试用出现:Too many free trial accounts used on this machine 的解决方法
- 2025-01-11百万架构师第十四课:源码分析:Spring 源码分析:深入分析IOC那些鲜为人知的细节|JavaGuide
- 2025-01-11不得不了解的高效AI办公工具API