spring boot下 500 404 錯(cuò)誤頁面處理的方法
spring boot 作為微服務(wù)的便捷框架,在錯(cuò)誤頁面處理上也有一些新的處理,不同于之前的spring mvc 500的頁面處理是比較簡單的,用java config或者xml的形式,定義如下的bean即可
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> <property name="exceptionMappings"> <props> <prop key="org.apache.shiro.authz.UnauthenticatedException">pages/403</prop> <prop key="org.apache.shiro.authz.UnauthorizedException">pages/403</prop> <prop key="org.apache.shiro.authc.LockedAccountException">pages/locked</prop> <prop key="java.lang.Throwable">pages/500</prop> </props> </property> </bean>
404就比較特殊了,有2種方法可以參考:
1. 先設(shè)置dispatcherServlet
@Bean public ServletRegistrationBean dispatcherRegistration(DispatcherServlet dispatcherServlet) { ServletRegistrationBean registration = new ServletRegistrationBean( dispatcherServlet); dispatcherServlet.setThrowExceptionIfNoHandlerFound(true); return registration; }
再增加處理錯(cuò)誤頁面的handler,加上@ControllerAdvice 注解
@ControllerAdvice public class GlobalControllerExceptionHandler { public static final String DEFAULT_ERROR_VIEW = "pages/404"; @ExceptionHandler(value = NoHandlerFoundException.class) public ModelAndView defaultErrorHandler(HttpServletRequest req, Exception e) throws Exception { ModelAndView mav = new ModelAndView(); mav.addObject("exception", e); mav.addObject("url", req.getRequestURL()); mav.setViewName(DEFAULT_ERROR_VIEW); return mav; } }
不過上面這種處理方法,會(huì)造成對(duì)js,css等資源的過濾,最好使用第二種方法
2. 集成ErrorController
@Controller public class MainsiteErrorController implements ErrorController { private static final String ERROR_PATH = "/error"; @RequestMapping(value=ERROR_PATH) public String handleError(){ return "pages/404"; } @Override public String getErrorPath() { // TODO Auto-generated method stub return ERROR_PATH; } }
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
springcloud feign docker上無法通訊的問題及解決
這篇文章主要介紹了springcloud feign docker上無法通訊的問題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03Java日期毫秒值和常見日期時(shí)間格式相互轉(zhuǎn)換方法
這篇文章主要給大家介紹了關(guān)于Java日期毫秒值和常見日期時(shí)間格式相互轉(zhuǎn)換的相關(guān)資料,在Java的日常開發(fā)中,會(huì)隨時(shí)遇到需要對(duì)時(shí)間處理的情況,文中給出了詳細(xì)的示例代碼,需要的朋友可以參考下2023-07-07Java中 this和super的用法與區(qū)別小結(jié)
在Java的學(xué)習(xí)與開發(fā)者我們經(jīng)常遇到this和super關(guān)鍵字,本文主要介紹了Java中 this和super的用法與區(qū)別小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下2023-12-12Java使用FutureTask實(shí)現(xiàn)預(yù)加載的示例詳解
基于FutureTask的特性,通??梢允褂肍utureTask做一些預(yù)加載工作,比如一些時(shí)間較長的計(jì)算等,本文就來和大家講講具體實(shí)現(xiàn)方法吧,感興趣的可以了解一下2023-06-06Spring中的@RestControllerAdvice注解使用方法解析
這篇文章主要介紹了Spring中的@RestControllerAdvice注解使用方法解析,@RestControllerAdvice是Controller的增強(qiáng) 常用于全局異常的捕獲處理 和請(qǐng)求參數(shù)的增強(qiáng),需要的朋友可以參考下2024-01-01java基于JSON實(shí)現(xiàn)前后端交互(附代碼)
本文主要介紹了java基于JSON實(shí)現(xiàn)前后端交互,通過實(shí)際代碼示例展示了如何前后端JSON交互,具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01IDEA報(bào)錯(cuò)"Cannot?resolve?symbol"問題的解決辦法
早上來了,打開idea發(fā)現(xiàn)注解等都變紅報(bào)錯(cuò)can’t resolvesymbol,由于這個(gè)錯(cuò)之前也報(bào)過,所以記錄一下,這篇文章主要給大家介紹了關(guān)于IDEA報(bào)錯(cuò)"Cannot?resolve?symbol"問題的解決辦法,需要的朋友可以參考下2023-11-11SpringBoot優(yōu)雅地實(shí)現(xiàn)全局異常處理的方法詳解
這篇文章主要為大家詳細(xì)介紹了SpringBoot如何優(yōu)雅地實(shí)現(xiàn)全局異常處理,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-08-08