摘要:不知道大家對(duì)千篇一律的的錯(cuò)誤頁(yè)面是否感到膩歪了其實(shí)通過(guò)很簡(jiǎn)單的配置就能夠讓顯示您自定義的錯(cuò)誤頁(yè)面。在的里添加一個(gè)新的區(qū)域意思是一旦有錯(cuò)誤發(fā)生時(shí),顯示文件夾下的頁(yè)面。創(chuàng)建一個(gè)名為的,其為指向一個(gè)。
不知道大家對(duì)千篇一律的404 Not Found的錯(cuò)誤頁(yè)面是否感到膩歪了?其實(shí)通過(guò)很簡(jiǎn)單的配置就能夠讓Spring MVC顯示您自定義的404 Not Found錯(cuò)誤頁(yè)面。
在WEB-INF的web.xml里添加一個(gè)新的區(qū)域:
意思是一旦有404錯(cuò)誤發(fā)生時(shí),顯示resouces文件夾下的404.jsp頁(yè)面。
404 /resources/404.jsp
現(xiàn)在可以隨意開(kāi)發(fā)您喜歡的個(gè)性化404錯(cuò)誤頁(yè)面了。
完畢之后,隨便訪問(wèn)一個(gè)不存在的url,故意造成404錯(cuò)誤,就能看到我們剛才配置的自定義404 Not Found頁(yè)面了。
如果想在Spring MVC里實(shí)現(xiàn)一個(gè)通用的異常處理邏輯(Exception handler), 能夠捕捉所有類(lèi)型的異常,比如通過(guò)下面這種方式拋出的異常,可以按照下面介紹的步驟來(lái)做。
1. 新建一個(gè)類(lèi),繼承自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配置文件里,將剛才創(chuàng)建的類(lèi)作為一個(gè)Bean配置進(jìn)去:
Bean的ID設(shè)置為simpleMappingExceptionResolver,class設(shè)置為步驟一創(chuàng)建的類(lèi)的包含namespace的全名。創(chuàng)建一個(gè)名為defaultErrorView的property,其value為generic_error, 指向一個(gè)JSP view:generic_error.jsp。
generic_error.jsp的源代碼:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>Generic Error Page of Jerry Unknown Error Occured, please contact Wang, Jerry.
現(xiàn)在可以做測(cè)試了。我之前通過(guò)下列語(yǔ)句拋了一個(gè)異常:
throw new Exception("Generic Exception raised by Jerry");
這個(gè)異常成功地被我自己實(shí)現(xiàn)的異常處理類(lèi)捕捉到,并顯示出我自定義的異常顯示頁(yè)面:
要獲取更多Jerry的原創(chuàng)技術(shù)文章,請(qǐng)關(guān)注公眾號(hào)"汪子熙"或者掃描下面二維碼:
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/71814.html
摘要:在發(fā)出經(jīng)過(guò)身份驗(yàn)證的請(qǐng)求時(shí),被認(rèn)為是端點(diǎn)的輸入,因此不會(huì)緩存響應(yīng)。自定義端點(diǎn)對(duì)或的操作通過(guò)使用或通過(guò)自動(dòng)公開(kāi)。端點(diǎn)范圍請(qǐng)求范圍請(qǐng)求可以用于請(qǐng)求資源的一部分,當(dāng)使用或時(shí),操作將返回一個(gè)自動(dòng)支持范圍請(qǐng)求的。 50. 端點(diǎn) Actuator端點(diǎn)讓你監(jiān)視和與應(yīng)用程序交互,Spring Boot包含許多內(nèi)置的端點(diǎn),并允許你添加自己的端點(diǎn)。例如,health端點(diǎn)提供基本的應(yīng)用程序健康信息。 可以啟...
摘要:進(jìn)行異常的捕捉與錯(cuò)誤信息頁(yè)面的定制。告訴,這是一個(gè)對(duì)象,該對(duì)象應(yīng)該被注冊(cè)為在應(yīng)用程序上下文中的。不同框架的不同配置這里以作為演示默認(rèn)情況下,保護(hù)已啟用。你必須配置包含令牌的所有的網(wǎng)頁(yè)來(lái)工作。該命名結(jié)構(gòu)旨在幫你找到需要的。 導(dǎo)讀: 在上篇文章中我們了解到Spring Boot 的一些常用的外部化配置,在本篇中我們將會(huì)繼續(xù)對(duì)類(lèi)的配置進(jìn)行了解 一個(gè)簡(jiǎn)單的例子[錯(cuò)誤頁(yè)面定制]: 在 Spr...
摘要:例如,將請(qǐng)求信息中的字符串格式參數(shù)轉(zhuǎn)換為對(duì)應(yīng)方法中的類(lèi)類(lèi)型入?yún)⒖赏ㄟ^(guò)的屬性注冊(cè)自定義轉(zhuǎn)換器。 1. 處理流程 請(qǐng)求提交給DispatchServlet 查找HandlerMapping 調(diào)用由HandlerAdapter封裝后的Handler 返回ModelAndView到DispatcherServlet 借由ViewResolver完成邏輯視圖到真實(shí)視圖的轉(zhuǎn)換 返回響應(yīng) 2. ...
摘要:和的區(qū)別方法注解作用于級(jí)別注解為一個(gè)定義一個(gè)異常處理器類(lèi)注解作用于整個(gè)工程注解定義了一個(gè)全局的異常處理器需要注意的是的優(yōu)先級(jí)比高即拋出的異常如果既可以讓標(biāo)注的方法處理又可以讓標(biāo)注的類(lèi)中的方法處理則優(yōu)先讓標(biāo)注的方法處理處理中的異常為了方便地展 @ControllerAdvice 和 @ExceptionHandler 的區(qū)別 ExceptionHandler, 方法注解, 作用于 Co...
摘要:邊界清晰,有利于理解開(kāi)發(fā)測(cè)試和部署。前后端分離考慮到目前開(kāi)發(fā)流行前后端分離,為了適應(yīng)潮流,引入前后端分離的約束。該請(qǐng)求被接受處理,但是該處理是不完整的。 本文欲回答這樣一個(gè)問(wèn)題:在 「特定環(huán)境 」下,如何規(guī)劃Web開(kāi)發(fā)框架,使其能滿(mǎn)足 「期望 」? 假設(shè)我們的「特定環(huán)境 」如下: 技術(shù)層面 使用Java語(yǔ)言進(jìn)行開(kāi)發(fā) 通過(guò)Maven構(gòu)建 基于SpringBoot 使用Intelli...
閱讀 1519·2021-09-02 13:57
閱讀 1928·2019-08-30 15:55
閱讀 2519·2019-08-30 15:54
閱讀 2339·2019-08-30 15:44
閱讀 2796·2019-08-30 13:18
閱讀 539·2019-08-30 13:02
閱讀 867·2019-08-29 18:46
閱讀 1716·2019-08-29 11:25