zoukankan      html  css  js  c++  java
  • spring boot 下 500 404 错误页面处理

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

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

    [html] view plain copy
     在CODE上查看代码片派生到我的代码片
    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
     在CODE上查看代码片派生到我的代码片
    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
     在CODE上查看代码片派生到我的代码片
    1. @ControllerAdvice  
    2. public class GlobalControllerExceptionHandler {  
    3.  public static final String DEFAULT_ERROR_VIEW = "pages/404";  
    4.   
    5.     @ExceptionHandler(value = NoHandlerFoundException.class)  
    6.     public ModelAndView defaultErrorHandler(HttpServletRequest req, Exception e) throws Exception {  
    7.         ModelAndView mav = new ModelAndView();  
    8.         mav.addObject("exception", e);  
    9.         mav.addObject("url", req.getRequestURL());  
    10.         mav.setViewName(DEFAULT_ERROR_VIEW);  
    11.         return mav;  
    12.     }  
    13. }  

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


    2. 集成ErrorController 

    [java] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. @Controller  
    2. public class MainsiteErrorController implements ErrorController {  
    3.   
    4.  private static final String ERROR_PATH = "/error";  
    5.    
    6.  @RequestMapping(value=ERROR_PATH)  
    7.     public String handleError(){  
    8.         return "pages/404";  
    9.     }  
    10.    
    11.  @Override  
    12.  public String getErrorPath() {  
    13.   // TODO Auto-generated method stub  
    14.   return ERROR_PATH;  
    15.  }  
    16.   
    17. }  


  • 相关阅读:
    AngularJS学习之旅—AngularJS 服务(八)
    Svchost进程和共享服务病毒原理
    服务劫持
    利用BHO实现浏览器劫持
    动态反调试
    常用的静态反调试技术及其规避方法
    teb, peb,seh 结构
    线程本地存储tls
    注入技术总结
    注入技术--远程线程注入
  • 原文地址:https://www.cnblogs.com/duyinqiang/p/5696337.html
Copyright © 2011-2022 走看看