哪些情況會報 404


 
 
有哪些情況會出現404?
 
以下為我從出現的情況中得到的一些結論:
1、路徑真的不存在,沒有訪問到服務器,瀏覽器解析為404
2、訪問到了服務器,但是要訪問的那個具體的資源(接口)不存在,在服務器的邏輯下,跳轉到404.jsp
3、訪問到了服務器,要訪問的接口也存在,但是在程序執行到接口之前(攔截器之類的),就出了錯,跳轉到404.jsp
4、訪問到了服務器,也訪問到了接口,但是在執行過程中程序出錯了,也會出現404(忘了是瀏覽器的404,還是服務器的404.jsp)
確定了不是第一種情況之后,可以在訪問的接口打斷點,看看程序是否會執行到接口的斷點,如果執行到了,那么是4,否則,可能是2或者3
 
下文的問題,就是遇到了第2種情況(注解寫錯、類沒有被掃描到)
 
問題:
在 postman 中訪問 http://localhost:8011/post-manager/test/t 時,status 的值為 404, “頁面”顯示內容為(跳轉到了404.jsp): 
 
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>error</title>
        <link rel="stylesheet" href="http://localhost:8011/post-manager/static/css/reset.css"/>
        <link rel="stylesheet" href="http://localhost:8011/post-manager/static/css/basic.css"/>
        <link rel="stylesheet" href="http://localhost:8011/post-manager/static/css/style.css"/>
        <script type="text/javascript" src="http://localhost:8011/post-manager/static/js/jquery-1.10.2.min.js">
 
  </script>
    </head>
    <body>
        <!--內容-->
        <div class="content">
            <div class="content-box cont-word">
                <img src="http://localhost:8011/post-manager/static/img/fail.png" alt="" class="succ-img"/>
                <span class="succ-txt">訪問資源不存在,請檢查請求路徑是否正確!!</span>
                <p>
                    <br>
                    <input name="" type="submit"  value="返回"  class="submit-butn capa-butn"
             onclick="window.history.go(-1)"/>
                </div>
                <div class="footer g">
                    <p>@2017 請聯系****管理員</p>
                </div>
            </div>
        </body>
    </html>
 
首先,可以確定控制台沒有報錯
由於 post-manager 工程中之前沒有 controller 類,TestController 類是我的新加的第一個 controller 類,連 controller 的 package 都是新加的, 所以有可能是沒有被掃描到的問題?
確實可能是掃描的問題:
在 spring-mvc.xml 文件中,有如下配置:
 
<!-- 自動掃描且只掃描@Controller -->
<context:component-scan base-package="com.kexin.prc.join.post.web" use-default-filters="false">
   <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
   <context:include-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/>
</context:component-scan>
 
即只配置了掃描包
 
com.kexin.prc.join.post.web

 

下的 controller 類,
將 TestController 類轉移到該包中,嘗試一下
 
問題解決,成功訪問
 
 
 

2019.3.4 補充
 
又遇到了一次 404,最終發現原因是數據庫連接信息配置錯誤
但是在剛開始啟動 tomcat 的時候,控制台不報任何錯,而是在啟動了一會兒之后再在控制台報錯
所以一開始並不知道 404 的原因是這個(即,一開始以為 tomcat 啟動成功了,但實際上 tomcat 並沒有啟動成功)
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM