springmvc 下面url匹配与后缀匹配情况简述

前言

最近的项目需要用到无后缀匹配,譬如,要匹配 /index 到 一个控制器上面,所以找了些资料来实践。
下面是参考用的资料:
spring mvc url匹配禁用后缀访问

url-pattern中/与/*的区别
SpringMvc出现Jsp页面不能正常解析成html网页

原springmvc默认忽视后缀的映射规则

好了,下面针对三种不同的url匹配规则说明一下不同点。
注意,同时说明一下,在spring-mvc.xml中,
每一种情况下,默认:
springmvc 下面url匹配与后缀匹配情况简述_第1张图片

path-matching suffix-pattern 不设置

default-servlet-handler 不设置

为了这个测试,特意写了一个测试用action,如下
springmvc 下面url匹配与后缀匹配情况简述_第2张图片

下面开始

url-pattern="*.do"

先从最正常的情况说起来,设置为针对后缀为do的路径进行拦截。
如下:
springmvc 下面url匹配与后缀匹配情况简述_第3张图片
分别访问mvc中的action,网站index.jsp首页,静态资源-404图片

### action输出json

springmvc 下面url匹配与后缀匹配情况简述_第4张图片

### action带jsp模板
springmvc 下面url匹配与后缀匹配情况简述_第5张图片

index.jsp

springmvc 下面url匹配与后缀匹配情况简述_第6张图片

静态资源

springmvc 下面url匹配与后缀匹配情况简述_第7张图片

url-pattern = “/*”

springmvc 下面url匹配与后缀匹配情况简述_第8张图片

下面开始测试访问:

### action输出json
分别测试无后缀以及任意后缀,有:
springmvc 下面url匹配与后缀匹配情况简述_第9张图片

springmvc 下面url匹配与后缀匹配情况简述_第10张图片

可匹配。

### action带jsp模板

springmvc 下面url匹配与后缀匹配情况简述_第11张图片
无法访问,同时后台报错:
在这里插入图片描述

找不到模板。。。

index.jsp

springmvc 下面url匹配与后缀匹配情况简述_第12张图片

同时后台报错:
在这里插入图片描述
无法匹配到index.jsp

静态资源

springmvc 下面url匹配与后缀匹配情况简述_第13张图片

同时:
在这里插入图片描述

/*的结论

url-pattern="/*"会托管一切请求,只有匹配到控制器中的action才返回返回结果,否则一切都是404,当然,如果action里面也要用到jsp等模板,那么也是会报404的。

url-pattern=/ 的场景

springmvc 下面url匹配与后缀匹配情况简述_第14张图片

测试:

### action输出json
分别测试无后缀以及任意后缀,有:
springmvc 下面url匹配与后缀匹配情况简述_第15张图片

springmvc 下面url匹配与后缀匹配情况简述_第16张图片

可匹配。

### action带jsp模板
springmvc 下面url匹配与后缀匹配情况简述_第17张图片

index.jsp

springmvc 下面url匹配与后缀匹配情况简述_第18张图片

静态资源

springmvc 下面url匹配与后缀匹配情况简述_第19张图片

同时:
在这里插入图片描述

url-pattern=/ 小结

可以看到,这种模式下面,不会托管所有路径,起码,jsp不会接过来托管,能够正常解释。
不过图片资源还是访问不到,正常,图片资源需要启用
在这里插入图片描述

默认的servlet处理器

下面开启默认的servlet处理器看看结果:

ps:为什么*.do里面不启用默认servlet处理静态资源也可以访问?因为那种情况下只拦截后缀为.do的路径,不拦截处理图片。

开启default-servlet-handler后额外注意问题。

开启以后,
springmvc 下面url匹配与后缀匹配情况简述_第20张图片

注意,url-pattern="/*"情况下面对jsp的处理跟静态资源是一样的:

1/
springmvc 下面url匹配与后缀匹配情况简述_第21张图片

然后:
springmvc 下面url匹配与后缀匹配情况简述_第22张图片
springmvc 下面url匹配与后缀匹配情况简述_第23张图片

结论

所以,最后的结论是,要开启无后缀访问,最佳的方法是:
springmvc 下面url匹配与后缀匹配情况简述_第24张图片

springmvc 下面url匹配与后缀匹配情况简述_第25张图片

你可能感兴趣的:(springmvc 下面url匹配与后缀匹配情况简述)