启动服务器的时候后台没有报错,但是通过浏览器访问项目的时候报404

时间:2022-01-23 17:25:03

今天部署项目的时候报出来404问题,查看Eclipse的Console后发现并没有报错。检查了一下,最后发现原来是SpringMVC的拦截配置问题,所以将web.xml中的"/*"改为“/”就好了。还有另外两种情况也会出现这种问题,在这里总结一下。


1、web服务器的项目部署路径的问题

      在Eclipse中刚刚添加上Tomcat服务器后,并没有配置Tomcat的项目部署路径,所以在浏览器地址栏中输入http://localhost:8080后Tomcat的主页的访问不到。这个问题只需要配置一下Tomcat的项目部署路径即可解决:

      将Service一栏中的Tomcat服务器delete掉,重新添加Tomcat服务器(先不要添加任何项目),添加好Tomcat后,双击Tomcat服务器,会出现如下图,按照如下图指示修改并按Ctrl+S保存好即可。

启动服务器的时候后台没有报错,但是通过浏览器访问项目的时候报404

按照图中指示修改好,启动服务器,打开浏览器,在浏览器地址栏上输入http://localhost:8080即可访问Tomcat主页。


2、浏览器访问路径出错

      这种情况一般出现在复制并粘贴的项目中,修改了项目名称,然后按照项目名称键入浏览器地址栏访问,会出现404问题。这种情况很好修改,因为在项目中保留的是原来项目的项目名访问设置,所以要用现有的项目名称访问的话,需要改一个地方,在项目名上右键,选择Properties,如下图:

启动服务器的时候后台没有报错,但是通过浏览器访问项目的时候报404

修改好项目中的路径名称后Apply and Close,这样在浏览器地址栏中就可以使用现在的项目名来访问了。


3、拦截器配置问题

      这种情况就是我所遇到的,也很常见。在web.xml中配置了SpringMVC的核心控制DispatcherServlet,拦截请求的问题,如图: 启动服务器的时候后台没有报错,但是通过浏览器访问项目的时候报404

    当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>