SpringMVC 中 url-patter 与 @RequestMapping 的对应问题

来源:互联网 发布:小米电力猫网络密码 编辑:程序博客网 时间:2024/06/14 13:43

原理简述

  后台利用 SpringMVC 响应前端发起的请求时,其完整 url 会按照 DispatcherServlet 指定的 url 格式进行匹配、修剪,去掉<url-pattern>指定的上下文部分,剩余部分 url',再由注解 @RequestMapping 转到 Controller 特定的方法上,执行具体的处理。

举个栗子

前端请求的完整 url:

http://localhost:8088/aaa/bbb/ccc?myParam=myValue

servlet 指定的 url 格式:

<url-pattern>/aaa/*</url-pattern>

则 @RequestMapping 的正确配置为:

@RequestMapping(value="/bbb/ccc")public String demoMethodSignature(String myParam) { /*method code*/ }
如果RequestMapping="/aaa/bbb/ccc",则等效的完整 url 为:

http://localhost:8088/aaa/aaa/bbb/ccc?myParam=myValue
而不是希望的(强行访问将显示404页面)

http://localhost:8088/aaa/bbb/ccc?myParam=myValue

可见,注解 @RequestMapping 的值是经过 <url-pattern> 类似“窄化处理后的结果,且剔除的部分

http://localhost:8088/aaa= http://localhost:8088 + /aaa= 请求域名默认根路径 + <url-pattern>显式声明的路径

反之,如果注解 @RequestMapping 的值为 "/x/y/z",<url-pattern> 指定为 "/aaa/*",则访问该 Controller 方法的等效完整 url 为:

http://localhost:8088/aaa/x/y/z=http://localhost:8088 + /aaa + /x/y/x=域名根路径 + <url-pattern>显式声明的路径 + @RequestMapping值

参考文章:

1、Spring mvc url-pattern 和@RequestMapping 映射的小问题:http://blog.csdn.net/fangchao3652/article/details/54693814
2、servlet的url-pattern匹配规则详细描述:https://www.cnblogs.com/51kata/p/5152400.html







阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 边际效用 效用函数 基数效用论 基数效用 总效用与边际效用的关系 边际效用和总效用 消费者效用 效用是什么 总效用和边际效用的关系 什么是效用 效用价值论 序数效用 物流的效用 效用曲线 效用理论 期望效用 效用论 边际效用递减规律 边际效用递减 效用名词解释 ui动效用什么软件做 边际效用除以价格 边际效用递减的原因 货币边际效用 乐康膏的效用和吃法 货币的边际效用公式 边际效用计算公式 边际效用递减规律例子 什么是边际效用递减规律 边际效用理论 消费者效用函数 边际效用价值论 间接效用函数 货币的边际效用 拟线性效用函数 假定某消费者的效用函数为u 效益 经济效益 边际效益 社会效益 效益背反