Spring tomcat下html url找不到
2018年03月11日


为什么有Controller配置的:

@RequestMapping("/sys/aaa.html")

String hosdsdsdsfdme() {

    return "sys/main.html";

}

但是这个地址找不到?

http://localhost:8080/renren-security/sys/aaa.html

补充现象:只有.html后缀会找不到。换成.png,.js,.css等都没有这个问题。


解决方法:

给web.xml的Spring Dispather Servlet配置去拦截*.html

<servlet-mapping>

  <servlet-name>dispatcher</servlet-name>

  <url-pattern>/</url-pattern>

  <!-- 解决tomcat下面*.html被默认拦截器拦截的问题 -->

  <url-pattern>*.html</url-pattern>

</servlet-mapping>

原因估计是Spring的Dispather Servlet优先级较低,*.html首选被tomcat容器自带的默认Servlet拦截了。