项目一众筹网02_4_SpringMVC访问静态资源:/*,/,和*.do和*.html的区别

时间:2023-02-20 12:58:03


系列文章目录

文章目录

  • ​​系列文章目录​​
  • ​​项目答疑​​
  • ​​这样做必有它的理由,但是却不是十全十美的,得必有舍​​

项目答疑

我们这里为什么

@RequestMapping(“admin/do/loginout.html”)

后面要有一个.html,而不是.action或者.do呢或者直接不写后缀名呢

项目一众筹网02_4_SpringMVC访问静态资源:/*,/,和*.do和*.html的区别

这样做必有它的理由,但是却不是十全十美的,得必有舍

如果你的DispatcherServlet拦截 .do这样的URL,就不存在访问不到静态资源的问题。如果你的DispatcherServlet拦截“/”,拦截了所有的请求,同时对.js,*.jpg的访问也就被拦截了。

问题原因:罪魁祸首是web.xml

项目一众筹网02_4_SpringMVC访问静态资源:/*,/,和*.do和*.html的区别


第一种配置:.do,还可以写.action、.html等等,表示以.do结尾的或者以.action结尾的URL都由前端控制器DispatcherServlet来解析

第二种配置:/,所有访问的 URL 都由DispatcherServlet来解析,但是这里最好配置静态文件不由DispatcherServlet来解析

错误配置:/*,注意这里是不能这样配置的,应为如果这样写,最后转发到 jsp 页面的时候,仍然会由DispatcherServlet进行解析,

而这时候会找不到对应的Handler,从而报错!!!