首頁 Java java教程 如何使用Spring MVC顯示自訂的404 Not Found頁面

如何使用Spring MVC顯示自訂的404 Not Found頁面

Oct 22, 2018 pm 03:52 PM
java

這篇文章帶給大家的內容是關於如何使用Spring MVC顯示自訂的404 Not Found頁面,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

不知道大家對千篇一律的404 Not Found的錯誤頁面是否感到膩歪了?其實透過很簡單的設定就能夠讓Spring MVC顯示您自訂的404 Not Found錯誤頁面。

在WEB-INF的web.xml裡新增一個新的區域:

如何使用Spring MVC顯示自訂的404 Not Found頁面

#意思是一旦有404錯誤發生時,顯示resouces資料夾下的404.jsp頁面。

<error-page>
<error-code>404</error-code>
<location>/resources/404.jsp</location>
</error-page>

現在可以隨意開發您喜歡的個人化404錯誤頁面了。

如何使用Spring MVC顯示自訂的404 Not Found頁面

如何使用Spring MVC顯示自訂的404 Not Found頁面

#完畢後,隨便存取一個不存在的url,故意造成404錯誤,就能看到我們剛剛配置的自訂404 Not Found頁面了。

如何使用Spring MVC顯示自訂的404 Not Found頁面

如果想在Spring MVC裡實作一個通用的異常處理邏輯(Exception handler), 能夠捕捉所有類型的異常,例如透過下面這種方式拋出的異常,可以依照下面介紹的步驟來做。

如何使用Spring MVC顯示自訂的404 Not Found頁面

1. 新建一個類,繼承自SimpleMappingExceptionResolver:

public class GlobalDefaultExceptionHandler extends
SimpleMappingExceptionResolver {
public GlobalDefaultExceptionHandler(){
System.out.println("GlobalDefaultExceptionHandler constructor called!");
}
@Override
public String buildLogMessage(Exception ex, HttpServletRequest request) {
System.out.println("Exception caught by Jerry");
ex.printStackTrace();
return "Spring MVC exception: " + ex.getLocalizedMessage();
}

2. 在Spring MVC的Servlet設定檔裡,將剛剛建立的類別作為一個Bean配置進去:

如何使用Spring MVC顯示自訂的404 Not Found頁面

Bean的ID設定為simpleMappingExceptionResolver,class設定為步驟一建立的類別的包含namespace的全名。建立一個名為defaultErrorView的property,其value為generic_error, 指向一個JSP view:generic_error.jsp。

<bean>
<property>
<map>
<entry></entry>
</map>
</property>
<property></property>
</bean>

generic_error.jsp的原始碼:

nbsp;html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">


<meta>
<title>Generic Error Page of Jerry</title>


<h2>Unknown Error Occured, please contact Wang, Jerry.</h2>

現在可以做測試了。我之前透過下列語句拋了一個例外:

throw new Exception("Generic Exception raised by Jerry");

這個異常成功地被我自己實現的異常處理類別捕捉到,並顯示出我自訂的異常顯示頁面:

如何使用Spring MVC顯示自訂的404 Not Found頁面

#

以上是如何使用Spring MVC顯示自訂的404 Not Found頁面的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Laravel 教程
1602
29
PHP教程
1504
276
比較Java框架:Spring Boot vs Quarkus vs Micronaut 比較Java框架:Spring Boot vs Quarkus vs Micronaut Aug 04, 2025 pm 12:48 PM

前形式攝取,quarkusandmicronautleaddueTocile timeProcessingandGraalvSupport,withquarkusoftenpernperforminglightbetterine nosserless notelless centarios.2。

鍵盤上的音量鍵無法正常工作 鍵盤上的音量鍵無法正常工作 Aug 05, 2025 pm 01:54 PM

First,checkiftheFnkeysettingisinterferingbytryingboththevolumekeyaloneandFn volumekey,thentoggleFnLockwithFn Escifavailable.2.EnterBIOS/UEFIduringbootandenablefunctionkeysordisableHotkeyModetoensurevolumekeysarerecognized.3.Updateorreinstallaudiodriv

Python記錄到文件示例 Python記錄到文件示例 Aug 04, 2025 pm 01:37 PM

Python的logging模塊可通過FileHandler將日誌寫入文件,首先調用basicConfig配置文件處理器和格式,如設置level為INFO、使用FileHandler寫入app.log;其次可添加StreamHandler實現同時輸出到控制台;進階場景可用TimedRotatingFileHandler按時間分割日誌,例如設置when='midnight'實現每日生成新文件並保留7天備份,需確保日誌目錄存在;建議使用getLogger(__name__)創建命名logger,生產

python pandas造型數據框架示例 python pandas造型數據框架示例 Aug 04, 2025 pm 01:43 PM

在JupyterNotebook中使用PandasStyling可實現DataFrame的美觀展示,1.使用highlight_max和highlight_min高亮每列最大值(綠色)和最小值(紅色);2.通過background_gradient為數值列添加漸變背景色(如Blues或Reds)以直觀顯示數據大小;3.自定義函數color_score結合applymap為不同分數區間設置文字顏色(≥90綠色,80~89橙色,60~79紅色,

如何比較Java中的兩個字符串? 如何比較Java中的兩個字符串? Aug 04, 2025 am 11:03 AM

使用.equals()方法比較字符串內容,因為==僅比較對象引用而非內容;1.使用.equals()比較字符串值是否相等;2.使用.equalsIgnoreCase()進行忽略大小寫的比較;3.使用.compareTo()按字典順序比較字符串,返回0、負數或正數;4.使用.compareToIgnoreCase()進行忽略大小寫的字典序比較;5.使用Objects.equals()或安全調用方式處理null字符串,避免空指針異常。總之,應避免使用==進行字符串內容比較,除非明確需要檢查對像是否相

如何在Java加入一系列字符串? 如何在Java加入一系列字符串? Aug 04, 2025 pm 12:55 PM

使用String.join()(Java8 )是連接字符串數組最簡單推薦的方法,直接指定分隔符即可;2.對於舊版本Java或需要更多控制時,可使用StringBuilder手動遍歷並拼接;3.StringJoiner適用於需要前綴、後綴等更靈活格式的場景;4.使用Arrays.stream()結合Collectors.joining()適合在連接前對數組進行過濾或轉換等操作;綜上所述,若使用Java8及以上版本,大多數情況下應首選String.join()方法,語法簡潔易讀,而對於復雜邏輯則推薦

在打字稿中的高級條件類型 在打字稿中的高級條件類型 Aug 04, 2025 am 06:32 AM

TypeScript的高級條件類型通過TextendsU?X:Y語法實現類型間的邏輯判斷,其核心能力體現在分佈式條件類型、infer類型推斷和復雜類型工具的構建。 1.條件類型在裸類型參數上具有分佈性,能自動對聯合類型拆分處理,如ToArray得到string[]|number[]。 2.利用分佈性可構建過濾與提取工具:Exclude通過TextendsU?never:T排除類型,Extract通過TextendsU?T:never提取共性,NonNullable過濾null/undefined。 3

計算的屬性與VUE中的方法 計算的屬性與VUE中的方法 Aug 05, 2025 am 05:21 AM

computed有緩存,依賴不變時多次訪問不重新計算,而methods每次調用都執行;2.computed適用於基於響應式數據的計算,methods適合需要參數或頻繁調用但結果不依賴響應式數據的場景;3.computed支持getter和setter,可實現數據的雙向同步,methods不支持;4.總結:優先使用computed以提升性能,當需要傳參、執行操作或避免緩存時使用methods,遵循“能用computed就不用methods”的原則。

See all articles