zoukankan      html  css  js  c++  java
  • Springboot 统一异常处理

    针对 404 其实 springmvc 提供了2种方式     404 是比较特殊的   

    1.先设置dispatcherServlet

    @Bean
    public ServletRegistrationBean dispatcherRegistration(DispatcherServlet dispatcherServlet) {
    ServletRegistrationBean registration = new ServletRegistrationBean(
    dispatcherServlet);
    dispatcherServlet.setThrowExceptionIfNoHandlerFound(true);
    return registration;
    }

    2.再增加处理错误页面的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;
    }
    }

    针对上面这样的方法 存在一个弊端:会造成对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;
    }

    }

    推荐使用第二种

  • 相关阅读:
    STP生成树协议
    Fiddler快速入门(还有一个功能就是不经过网络,直接模拟一个响应返回给客户端)
    Qt宏Q_OBJECT展开记录
    rem_taobaofix.js
    yield return
    NET full stack framework
    API 网关
    Redis主从高可用缓存
    数据异构解决方案缓存一致性和跨服务器查询
    NET Core 防止跨站请求
  • 原文地址:https://www.cnblogs.com/java-synchronized/p/8286999.html
Copyright © 2011-2022 走看看