SpringBoot異常錯(cuò)誤頁(yè)面實(shí)現(xiàn)方法介紹
導(dǎo)言
默認(rèn)情況下,SpringBoot 項(xiàng)目錯(cuò)誤頁(yè)面如下:


直接這樣太丑了,我們實(shí)際上線項(xiàng)目時(shí),如果給用戶顯示這個(gè)頁(yè)面就不是很友好,用戶直接不用了。
所以當(dāng)系統(tǒng)出現(xiàn)異常時(shí)應(yīng)該給用戶更加友好的錯(cuò)誤頁(yè)面,下面我們來(lái)看具體是如何實(shí)現(xiàn)的。
實(shí)現(xiàn)步驟
加入thymeleaf依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
在templates/下新建error文件夾

在error中新建:狀態(tài).html的頁(yè)面。例如當(dāng)出現(xiàn)500時(shí)顯示的頁(yè)面為500.html,當(dāng)出現(xiàn)404時(shí)顯示的頁(yè)面為404.html,
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>404</title>
</head>
<body>
<h1>
404!沒(méi)有這個(gè)請(qǐng)求,請(qǐng)檢查!
</h1>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>500</title>
</head>
<body>
<h1>
500!您的代碼出現(xiàn)了內(nèi)部錯(cuò)誤,請(qǐng)檢查!
</h1>
</body>
</html>
然后創(chuàng)建controller
@Controller
public class ErrorController {
@RequestMapping("/test")
public String testError(){
System.out.println(5/0);
// return "500";
return "500.html";
}
}
我們知道,在運(yùn)行上面代碼的時(shí)候發(fā)生算術(shù)異常。錯(cuò)誤碼為500。
測(cè)試如下:

使用X進(jìn)行模糊匹配
- 當(dāng)出現(xiàn)5開(kāi)頭狀態(tài)碼的錯(cuò)誤時(shí),顯示頁(yè)面可以命名為5xx.html
- 如果500.html和5xx.html同時(shí)存在,則會(huì)精確匹配相應(yīng)頁(yè)面
我們把剛才的500.html改為5xx.html,也是可以的

因?yàn)榘l(fā)生了5開(kāi)頭的異常,會(huì)走5xx.html,測(cè)試如下:

統(tǒng)一錯(cuò)誤頁(yè)面顯示
在templates下新建error.html。如果項(xiàng)目中不存在具體狀態(tài)碼的頁(yè)面或沒(méi)有使用x成功匹配的頁(yè)面時(shí),顯示error.html作為錯(cuò)誤顯示頁(yè)面。
比如我們?cè)趀rror下沒(méi)有設(shè)置4xx相關(guān)的錯(cuò)誤頁(yè)面,當(dāng)發(fā)生狀態(tài)碼為4xx的錯(cuò)誤時(shí),找不到相關(guān)的錯(cuò)誤處理頁(yè)面,這時(shí)會(huì)走一個(gè)統(tǒng)一的錯(cuò)誤處理頁(yè)面。一般會(huì)在templates下創(chuàng)建error.html,作為統(tǒng)一的錯(cuò)誤處理頁(yè)面。
在templates下創(chuàng)建error.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>error</title>
</head>
<body>
<h1>
error?。?!
</h1>
</body>
</html>當(dāng)發(fā)生404錯(cuò)誤時(shí),會(huì)自動(dòng)走error.html

到此這篇關(guān)于SpringBoot異常錯(cuò)誤頁(yè)面實(shí)現(xiàn)方法介紹的文章就介紹到這了,更多相關(guān)SpringBoot錯(cuò)誤頁(yè)面內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java-collection中的null,isEmpty用法
這篇文章主要介紹了java-collection中的null,isEmpty用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02
解決idea 通過(guò)build project 手動(dòng)觸發(fā)熱部署失敗的問(wèn)題
在debug運(yùn)行項(xiàng)目的過(guò)程中,并且保證(不添加方法,不修改方法名)一定的規(guī)則的情況下,可以通過(guò)build project 來(lái)手動(dòng)熱部署項(xiàng)目,本文給大家介紹解決idea 通過(guò)build project 手動(dòng)觸發(fā)熱部署失敗的問(wèn)題,感興趣的朋友一起看看吧2023-12-12
springboot+mybatis報(bào)錯(cuò)找不到實(shí)體類的問(wèn)題
這篇文章主要介紹了springboot+mybatis報(bào)錯(cuò)找不到實(shí)體類的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01
Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(45)
下面小編就為大家?guī)?lái)一篇Java基礎(chǔ)的幾道練習(xí)題(分享)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧,希望可以幫到你2021-07-07
java中構(gòu)造器內(nèi)部調(diào)用構(gòu)造器實(shí)例詳解
在本篇文章里小編給大家分享的是關(guān)于java中構(gòu)造器內(nèi)部調(diào)用構(gòu)造器實(shí)例內(nèi)容,需要的朋友們可以學(xué)習(xí)下。2020-05-05
詳解Java實(shí)現(xiàn)簡(jiǎn)單SPI流程
這篇文章主要介紹了Java實(shí)現(xiàn)簡(jiǎn)單SPI流程,SPI英文全稱為Service Provider Interface,顧名思義,服務(wù)提供者接口,它是jdk提供給“服務(wù)提供廠商”或者“插件開(kāi)發(fā)者”使用的接口2023-03-03
Java正則表達(dá)式,提取雙引號(hào)中間的部分方法
今天小編就為大家分享一篇Java正則表達(dá)式,提取雙引號(hào)中間的部分方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07
JAVA SE包裝類和泛型詳細(xì)介紹及說(shuō)明方法
這篇文章主要介紹了JAVA SE包裝類和泛型的相關(guān)資料,包括基本數(shù)據(jù)類型與包裝類的對(duì)應(yīng)關(guān)系,以及裝箱和拆箱的概念,并重點(diǎn)講解了自動(dòng)裝箱和自動(dòng)拆箱的機(jī)制,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-03-03
簡(jiǎn)單了解Spring Framework5.0新特性
這篇文章主要介紹了簡(jiǎn)單了解Spring Framework5.0新特性,涉及了核心框架修訂,核心容器更新,使用Kotlin進(jìn)行函數(shù)式編程等幾個(gè)方面的介紹,具有一定參考價(jià)值,需要的朋友可以了解下。2017-11-11

