spring boot下 500 404 错误页面处理的方法
作者:ProjectArchitect 时间:2021-09-03 07:12:36
spring boot 作为微服务的便捷框架,在错误页面处理上也有一些新的处理,不同于之前的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. 先设置dispatcherServlet
@Bean
public ServletRegistrationBean dispatcherRegistration(DispatcherServlet dispatcherServlet) {
ServletRegistrationBean registration = new ServletRegistrationBean(
dispatcherServlet);
dispatcherServlet.setThrowExceptionIfNoHandlerFound(true);
return registration;
}
再增加处理错误页面的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;
}
}
来源:http://blog.csdn.net/projectarchitect/article/details/42463471
标签:spring,boot,500,404
0
投稿
猜你喜欢
C++双向循环列表用法实例
2023-07-23 03:58:54
Java爬取网站源代码和链接代码实例
2023-06-25 01:11:29
Android实现代码画虚线边框背景效果
2022-11-03 10:48:42
redis redisson 集合的使用案例(RList、Rset、RMap)
2023-11-13 13:50:21
C# StreamReader类实现读取文件的方法
2023-06-20 13:02:00
JavaWeb购物车项目开发实战指南
2022-05-30 19:32:17
JAVA使用JDBC连接oracle数据库的详细过程
2021-11-20 19:20:19
Java中的length和length()深入分析
2022-01-23 06:33:01
Java操作redis设置第二天凌晨过期的解决方案
2022-11-15 11:40:10
Android RecyclerView详解之实现 ListView GridView瀑布流效果
2023-11-26 10:09:00
idea设置JVM运行参数的几种方式
2023-05-26 14:57:33
Android CardView详解及使用方法和实例
2023-01-11 01:04:30
C#如何通过匿名类直接使用访问JSON数据详解
2023-07-20 12:31:53
java设计模式(实战)-责任链模式
2022-12-24 23:07:53
深入了解SparkSQL的运用及方法
2023-06-08 13:43:27
Netty分布式Server启动流程服务端初始化源码分析
2021-07-12 12:35:19
Spring Cloud Config对特殊字符加密处理的方法详解
2021-11-22 15:16:48
总结Bean的三种自定义初始化和销毁方法
2023-01-05 13:38:09
Android 使用Picasso加载网络图片等比例缩放的实现方法
2023-08-29 15:36:32
c#中使用BackgroundWorker的实现
2023-05-04 08:51:01