今天部署项目的时候报出来404问题,查看Eclipse的Console后发现并没有报错。检查了一下,最后发现原来是SpringMVC的拦截配置问题,所以将web.xml中的"/*"改为“/”就好了。还有另外两种情况也会出现这种问题,在这里总结一下。
1、web服务器的项目部署路径的问题
在Eclipse中刚刚添加上Tomcat服务器后,并没有配置Tomcat的项目部署路径,所以在浏览器地址栏中输入http://localhost:8080后Tomcat的主页的访问不到。这个问题只需要配置一下Tomcat的项目部署路径即可解决:
将Service一栏中的Tomcat服务器delete掉,重新添加Tomcat服务器(先不要添加任何项目),添加好Tomcat后,双击Tomcat服务器,会出现如下图,按照如下图指示修改并按Ctrl+S保存好即可。
按照图中指示修改好,启动服务器,打开浏览器,在浏览器地址栏上输入http://localhost:8080即可访问Tomcat主页。
2、浏览器访问路径出错
这种情况一般出现在复制并粘贴的项目中,修改了项目名称,然后按照项目名称键入浏览器地址栏访问,会出现404问题。这种情况很好修改,因为在项目中保留的是原来项目的项目名访问设置,所以要用现有的项目名称访问的话,需要改一个地方,在项目名上右键,选择Properties,如下图:
修改好项目中的路径名称后Apply and Close,这样在浏览器地址栏中就可以使用现在的项目名来访问了。
3、拦截器配置问题
这种情况就是我所遇到的,也很常见。在web.xml中配置了SpringMVC的核心控制DispatcherServlet,拦截请求的问题,如图:
当url-pattern配置为 /* 时,会拦截所有的请求,转发到jsp时也会被拦截,不能访问到jsp文件。所以应该修改为 / 。
注:如果修改为 / 时出现某些静态文件不能正常显示的问题,如图片、js、css等,可以在web.xml中配置静态资源访问即可:
在web.xml中添加:
<!-- 设置静态文件访问 -->
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.jpg</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>