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
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
深入分析Java内存区域的使用详解
2023-09-25 23:21:29
C# Cache缓存读取的设置方法
2022-11-18 05:33:53
![](https://img.aspxhome.com/file/2023/3/81143_0s.png)
springboot 自定义异常并捕获异常返给前端的实现代码
2022-07-23 03:09:52
![](https://img.aspxhome.com/file/2023/5/71625_0s.png)
Java并发编程学习之Unsafe类与LockSupport类源码详析
2022-10-21 19:07:01
![](https://img.aspxhome.com/file/2023/2/66042_0s.jpg)
SpringBoot+Vue项目新手快速入门指南
2023-05-20 04:56:07
深入理解MyBatis中的一级缓存与二级缓存
2022-05-25 09:41:34
![](https://img.aspxhome.com/file/2023/7/66057_0s.png)
c# Linq distinct不会调用Equals方法详解
2021-09-03 09:53:13
springBoot加入thymeleaf模板的方式
2023-11-25 14:31:23
![](https://img.aspxhome.com/file/2023/6/60056_0s.png)
通过图例了解PowerDesigner使用方法
2021-06-05 23:16:24
![](https://img.aspxhome.com/file/2023/8/70558_0s.png)
Mybatis实现插入数据后返回主键过程解析
2022-07-14 18:43:15
如何创建SpringBoot项目
2022-03-26 16:06:37
![](https://img.aspxhome.com/file/2023/7/68167_0s.png)
分享WCF聊天程序--WCFChat实现代码
2023-01-19 17:04:59
![](https://img.aspxhome.com/file/2023/8/83248_0s.jpg)
SpringBoot统一响应格式及统一异常处理
2022-08-30 08:03:08
![](https://img.aspxhome.com/file/2023/5/63155_0s.png)
Java实现求二叉树的深度和宽度
2022-01-11 18:38:41
浅谈java中String的两种赋值方式的区别
2021-09-21 23:59:36
![](https://img.aspxhome.com/file/2023/4/69894_0s.jpg)
Java 实现并发的几种方式小结
2022-10-23 02:54:46
详细分析JAVA8新特性 Base64
2022-07-09 15:41:21
![](https://img.aspxhome.com/file/2023/6/81926_0s.png)
基于javaWeb 项目SSM配置要点及可能遇到的问题和解决方法
2023-10-27 21:45:16
浅谈Spring与SpringMVC父子容器的关系与初始化
2023-02-08 12:09:05
![](https://img.aspxhome.com/file/2023/3/79273_0s.jpg)
Spring Boot如何整合FreeMarker模板引擎
2022-09-06 15:49:32