溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

springboot怎么自定義404、500錯誤提示頁面

發(fā)布時間:2021-11-29 09:17:23 來源:億速云 閱讀:549 作者:iii 欄目:開發(fā)技術(shù)

本篇內(nèi)容介紹了“springboot怎么自定義404、500錯誤提示頁面”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

    springboot 默認(rèn)的異常處理機(jī)制

    springboot 默認(rèn)已經(jīng)提供了一套處理異常的機(jī)制。一旦程序中出現(xiàn)了異常 springboot 會向 /errorurl 發(fā)送請求。在 springboot 中提供了一個名為 BasicErrorController 的類來處理 /error 請求,然后跳轉(zhuǎn)到默認(rèn)顯示異常的頁面來展示異常信息

    使用模板引擎

    在使用 thymeleaf 等模板引擎時,springboot 會自動到 src/main/resources/templates/error/,文件夾下尋找 404.html、500.html 的錯誤提示頁面

    錯誤提示頁面的命名規(guī)則就是:錯誤碼.html,如 404404.html,500500.html

    使用示例

    創(chuàng)建 springboot 項目如下

    404、500 錯誤提示頁面結(jié)構(gòu)如下

    springboot怎么自定義404、500錯誤提示頁面

    application.properties 項目配置文件

    server.port=8080
    
    #它的默認(rèn)值就是classpath:/templates/,源碼在ThymeleafProperties類中
    spring.mvc.view.prefix=classpath:/templates/
    #它的默認(rèn)值就是.html,源碼在ThymeleafProperties類中
    spring.mvc.view.suffix=.html
    spring.thymeleaf.cache=false

    404 頁面內(nèi)容如下

    <!DOCTYPE html>
    <html lang="en" xmlns:th="http://www.thymeleaf.org">
    <head>
        <meta charset="UTF-8">
        <title>404</title>
        <link rel="shortcut icon" type="image/x-icon" th:href="@{/img/favicon.ico}" rel="external nofollow"  rel="external nofollow" />
        <link rel="stylesheet" type="text/css" th:href="@{/css/404.css}" rel="external nofollow" />
    </head>
    <body>
    	<div id="banner" ></div>
    </body>
    </html>

    500 頁面內(nèi)容如下

    <!DOCTYPE html>
    <html lang="en" xmlns:th="http://www.thymeleaf.org">
    <head>
        <meta charset="UTF-8">
        <title>500</title>
        <link rel="shortcut icon" type="image/x-icon" th:href="@{/img/favicon.ico}" rel="external nofollow"  rel="external nofollow" />
        <link rel="stylesheet" type="text/css" th:href="@{/css/500.css}" rel="external nofollow" />
    </head>
    <body>
        <div id="banner" ></div>
    </body>
    </html>

    controller 如下

    @Controller
    public class PageController {
    
        // 跳轉(zhuǎn)到登錄頁
        @GetMapping(path = "/toLogin")
        public String toLogin() {
            int code = 1/0;
            return "login";
        }
    }

    404.html 頁面測試

    訪問不存在的接口:http://localhost:8080/aaaa,結(jié)果如下

    springboot怎么自定義404、500錯誤提示頁面

    500.html 頁面測試

    訪問已存在的接口:http://localhost:8080/toLogin,結(jié)果如下

    springboot怎么自定義404、500錯誤提示頁面

    沒有使用模板引擎

    如果沒有使用 thymeleaf 等模板引擎時,springboot 會到靜態(tài)資源文件夾尋找 404.htm、500.html的錯誤提示頁面,命名同上。springboot 中默認(rèn)的靜態(tài)資源路徑有 4 個,分別是

    • classpath:/METAINF/resources/

    • classpath:/resources/

    • classpath:/static/

    • classpath:/public/

    優(yōu)先級順序為:META-INF/resources > resources > static > public,以上 4 種路徑創(chuàng)建 error 文件夾,再創(chuàng)建 404、500 錯誤提示頁面如下

    springboot怎么自定義404、500錯誤提示頁面

    不用寫額外的映射器,就能直接請求到

    “springboot怎么自定義404、500錯誤提示頁面”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

    向AI問一下細(xì)節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI