spring boot 作为微服务的便捷框架,在错误页面处理上也有一些新的处理,不同于之前的spring mvc

500的页面处理是比较简单的,用java config或者xml的形式,定义如下的bean即可

[html] view
plain
 copy

  1. <bean
  2. class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
  3. <property name="exceptionMappings">
  4. <props>
  5. <prop key="org.apache.shiro.authz.UnauthenticatedException">pages/403</prop>
  6. <prop key="org.apache.shiro.authz.UnauthorizedException">pages/403</prop>
  7. <prop key="org.apache.shiro.authc.LockedAccountException">pages/locked</prop>
  8. <prop key="java.lang.Throwable">pages/500</prop>
  9. </props>
  10. </property>
  11. </bean>

404就比较特殊了,有2种方法可以参考:

1.

先设置dispatcherServlet

[java] view
plain
 copy

  1. @Bean
  2. public ServletRegistrationBean dispatcherRegistration(DispatcherServlet dispatcherServlet) {
  3. ServletRegistrationBean registration = new ServletRegistrationBean(
  4. dispatcherServlet);
  5. dispatcherServlet.setThrowExceptionIfNoHandlerFound(true);
  6. return registration;
  7. }

再增加处理错误页面的handler,加上@ControllerAdvice 注解

[java] view
plain
 copy

  1. @ControllerAdvice
  2. public class GlobalControllerExceptionHandler {
  3. public static final String DEFAULT_ERROR_VIEW = "pages/404";
  4. @ExceptionHandler(value = NoHandlerFoundException.class)
  5. public ModelAndView defaultErrorHandler(HttpServletRequest req, Exception e) throws Exception {
  6. ModelAndView mav = new ModelAndView();
  7. mav.addObject("exception", e);
  8. mav.addObject("url", req.getRequestURL());
  9. mav.setViewName(DEFAULT_ERROR_VIEW);
  10. return mav;
  11. }
  12. }

不过上面这种处理方法,会造成对js,css等资源的过滤,最好使用第二种方法

2. 集成ErrorController

[java] view
plain
 copy

  1. @Controller
  2. public class MainsiteErrorController implements ErrorController {
  3. private static final String ERROR_PATH = "/error";
  4. @RequestMapping(value=ERROR_PATH)
  5. public String handleError(){
  6. return "pages/404";
  7. }
  8. @Override
  9. public String getErrorPath() {
  10. // TODO Auto-generated method stub
  11. return ERROR_PATH;
  12. }
  13. }

spring boot 下 500 404 错误页面处理的更多相关文章

  1. NGINX下配置404错误页面的方法分享

    NGINX下配置自定义的404页面是可行的,而且很简单,只需如下几步,需要的朋友可以参考下   1. 创建自己的404.html页面 2.更改nginx.conf在http定义区域加入: fastcg ...

  2. nginx下配置404错误页面

    1.创建自己的404.html页面,并放于网站根目录. 2.更改nginx.conf在http定义区域加入: fastcgi_intercept_errors on; 3.更改nginx.conf(或 ...

  3. apache下自定义404错误页面

    404页面的目的是:告诉浏览者其所请求的页面不存在或链接错误,同时引导用户使用网站其他页面而不是关闭窗口离开. 很多开源系统包括CMS系统.Blog系统等不提供404页面或提供的404页面并未达到SE ...

  4. spring boot 2.0+ 错误页面配置

    如果访问了错误的路径,或者后台报错 如果没有一个统一的页面! 或者说页面上展示一堆报错信息,既影响美观,又对用户不友好! 那么如何配置? 定义 ErrorPageConfig,配置错误状态与对应访问路 ...

  5. Spring Boot:自定义 Whitelabel 错误页面

    一.概述在本文中,我们将研究如何禁用和自定义 Spring Boot 应用程序的默认错误页面,因为正确的错误处理描述了专业性和质量工作. 2.禁用白标错误页面 首先,让我们看看如何通过将server. ...

  6. ASP.NET 在IIS7.5下自定义404错误页面的方法

    .net 4.0 本机调试时一切正常,配置如下     <customErrors redirectMode="ResponseRewrite" mode="On& ...

  7. spring boot ---web应用开发-错误处理

    一.错误的处理 方法一:Spring Boot 将所有的错误默认映射到/error, 实现ErrorController @Controller @RequestMapping(value = &qu ...

  8. NGINX 配置404错误页面转向

    什么是404页面 如果碰巧网站出了问题,或者用户试图访问一个并不存在的页面时,此时服务器会返回代码为404的错误信息,此时对应页面就是404页面.404页面的默认内容和具体的服务器有关.如果后台用的是 ...

  9. NGINX 配置404错误页面转向

    什么是404页面 如果碰巧网站出了问题,或者用户试图访问一个并不存在的页面时,此时服务器会返回代码为404的错误信息,此时对应页面就是404页面.404页面的默认内容和具体的服务器有关.如果后台用的是 ...

随机推荐

  1. (转) ios学习之 关于Certificate、Provisioning Profile、App ID的介绍及其之间的关系

    刚接触iOS开发的人难免会对苹果的各种证书.配置文件等不甚了解,可能你按照网上的教程一步一步的成功申请了真机调试,但是还是对其中的缘由一知半解.这篇文章就对Certificate.Provisioni ...

  2. 初来乍到--------smarty

    Smarty Day01-----smarty的使用 作用:把php+html分离,程序和美工 使用: 1.下载源码包 2.目录结构 libs 源码文件 Smarty.class.php templa ...

  3. C# WINFORM 线程中更新UI

    幸好今天是周末,有时间把这个问题记录一下.在多种语言之间切换,发现开发效率降的很低了,开发成本都集中到调式上了,C/C++这些放弃很久了,突然感觉线程这个问题搞的有点烦躁 我这里提到的线程中更新UI, ...

  4. 1.PHP 教程_PHP 简介

    PHP是服务器端脚本语言. 在学习之前,您需要对以下知识有基本的了解: HTML css PHP是什么? PHP代表PHP:Hypertext Preprocessor PHP是一种使用广泛的开源的脚 ...

  5. python 之日期时间处理

    ##python时间操作一般使用time.datetime两个模块 对于time模块,时间的表示模式有3种1.时间戳:time.time()2.字符串: time.strftime('%Y%m%d') ...

  6. while 、do...while 、for

    1.while 特点:只有条件成立才会执行循环体. while陷阱: while(条件);即直接加分号 2.do while 特点:一定会执行一次循环体 3.for语句 l   初始化等可以是多句(把 ...

  7. Groovy中那些神奇注解之Memoized

    临近年关手头比较闲,去看了一下Groovy的官方文档,才发现原来Groovy中带了那么多的注解,很多注解带来的效果,有时候让人感觉“这不是在变魔法吧”. 个人很喜欢Groovy,写不成Ruby,Gro ...

  8. WA(Write Amplification)写入放大

    WA是闪存及SSD相关的一个极为重要的属性.由于闪存必须先擦除才能再写入的特性,在执行这些操作时,数据都会被移动超过1次.这些重复的操作不单会增加写入的数据量,还会减少闪存的寿命,更吃光闪存的可用带宽 ...

  9. 打印NxN的矩阵

    找出规律,并打印出一个NxN的矩阵,规律就是从首坐标开始顺时针依次增大: #include<iostream> #include<vector> using namespace ...

  10. POJ 1556 The Doors(计算几何+最短路)

    这题就是,处理出没两个点.假设能够到达,就连一条边,推断可不能够到达,利用线段相交去推断就可以.最后求个最短路就可以 代码: #include <cstdio> #include < ...