上周在试搭maven+SpringMVC+Mybatis,浏览器访问所有请求,页面均显示有误,错误示范(最简单的Hello world,显示竟然是下面这样)
我感觉莫名其妙,上网查了许久,原因未知,尝试着找到解决方法:在配置web.xml中SpringMVC拦截器时url-pattern后面配/不能是/*
<span style="white-space:pre"> </span><servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<!-- 拦截所有/ 的请求,交给DispatcherServlet处理,性能最好 -->
<url-pattern>/*</url-pattern>
</servlet-mapping>
关于/和/*的区别,网友给出的解释如下:
此处需要特别强调的是 <url-pattern>/</url-pattern>使用的是/,而不是/*,如果使用/*,那么请求时可以通过DispatcherServlet转发到相应的Action或者Controller中的,但是返回的内容,如返回的jsp还会再次被拦截,这样导致404错误,即访问不到jsp。所以如果以后发现总是有404错误的时候,别忘了check一下 <url-pattern>/</url-pattern>的配置是否是/*.
可是我也没有报404啊,只不过页面显示异常;无奈,待研究......
贴上相关文档:SpringMVC中拦截/和拦截/*的区别 - 不能访问到返回的JSP