首页 > 代码库 > SpringMVC请求使用@PathVariable获取文件名称并且文件名中存在.导致路径被截取的问题

SpringMVC请求使用@PathVariable获取文件名称并且文件名中存在.导致路径被截取的问题

在SpringMVC中,当使用@pathVariable通过Get请求获取路径名称时,如果路径名称上存在小数点,则获取不到小数点后面的内容,会被Spring截取。

比如我获取某一文件,路径是localhost:8080/file/test.jpg,通过@PathVariable获取test.jpg,如果不做任何处理,结果获取到的是test。

这种情况有两种处理方式,一种是请求的时候在路径最后多加个.jpg或者是.其他,比如通过地址localhost:8080/file/file.jpg.jpg或者localhost:8080/file/file.jpg.qwe即可正常获取;

第二种是通过Spring的正则表达式规定,不做处理的RequestMapping是@RequestMapping("/file/{filename}"),处理之后是@RequestMapping("/file/{filename:.+}")

SpringMVC请求使用@PathVariable获取文件名称并且文件名中存在.导致路径被截取的问题