springboot 404 500等统一处理页面

package com.liujiang.util.exception;


import org.springframework.boot.web.servlet.error.ErrorController;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.servlet.http.HttpServletRequest;

/**
 * @author isaac
 * @since 1.0.0
 */

@Controller
public class PageException implements ErrorController {


    @Override
    public String getErrorPath() {
        return "/error";
    }

    @RequestMapping("/error")
    public String handleError(HttpServletRequest request){
        //获取statusCode:401,404,500
        Integer statusCode = (Integer) request.getAttribute("javax.servlet.error.status_code");
        if(statusCode == 401){
            return "/401";
        }else if(statusCode == 404){
            return "/404";
        }else if(statusCode == 403){
            return "/403";
        }else{
            return "/500";
        }

    }
}

resources templates下加入对应的的html即可

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot提供了一种简洁而强大的方式来统一处理异常,特别是针对500错误。在Spring Boot中,我们可以使用@ControllerAdvice注解和@ExceptionHandler注解来实现统一的异常处理。 首先,我们需要在应用程序的配置类上使用@ControllerAdvice注解来声明一个全局的异常处理类。然后,在这个类中,我们可以使用@ExceptionHandler注解来定义处理特定异常的方法。 比如,对于500错误,我们可以创建一个方法来处理InternalServerErrorException异常。在方法中,我们可以返回一个自定义的错误页面或者错误信息,以便更友好地向用户展示异常信息。 下面是一个简单的示例代码: ```java @ControllerAdvice public class GlobalExceptionHandler { @ExceptionHandler(InternalServerErrorException.class) public ModelAndView handleInternalServerErrorException(InternalServerErrorException ex) { ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("error/500"); modelAndView.addObject("errorMessage", "服务器内部错误,请稍后再试!"); return modelAndView; } } ``` 在以上代码中,我们使用了ModelAndView来实现页面跳转,可以根据具体需求选择返回页面或者返回JSON数据。 另外,对于500错误,我们还可以通过自定义异常类来标识这种类型的异常,并在Controller方法中抛出该异常。然后,在全局异常处理类中捕获并处理这个异常。 综上所述,Spring Boot提供了一种简单而强大的方式来统一处理500错误,使我们能够更好地处理和展示异常信息,提升用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值