spring boot下 500 404 错误页面处理的方法
作者:ProjectArchitect 发布时间:2021-09-03 07:12:36
标签:spring,boot,500,404
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


猜你喜欢
- 在《Android Handler之消息循环的深入解析》中谈到了Handler是用于操作线程内部的消息队列,所以Handler可以用来线程间
- 组件在容器(比如Jframe)中的位置和大小是由布局管理器来决定的。所有的容器都会使用一个布局管理器,通过它来自动进行组件的布局管理。种类j
- 新版的IDEA为了防止 pom 更新时,MAVEN 自动导包时卡死的问题,取消了自动导包机制。但新增了导入按钮和快捷键。 问题id
- spring-data-redis简介spring-data-redis是spring-data模块的一部分,专门用来支持在spring管理
- 简介从 Spring Boot 项目名称中的 Boot 可以看出来,Spring Boot 的作用在于创建和启动新的基于 Spring 框架
- 阅读目录:基础Socket编程多线程并发阻塞式同步IO基础在现今软件开发中,网络编程是非常重要的一部分,本文简要介绍下网络编程的概念和实践。
- 上一次说了如何收集我们已经发布的应用程序的错误信息,方便我们调试完善程序。上次说的收集方法主要是把收集的信息通过Http的post请求把相关
- 前言上一篇 文章我们完成了在 thymeleaf 模板引擎中使用 shiro 标签,也就是根据不同的用户身份信息,前端页面来显示不同的页面内
- 如何使用union多表分页条件查询当前项目有一个全局搜索的功能,需要涉及到7-8张主表,由于当前项目使用的是Jpa,所以我决定使用原生sql
- 一、组件生命周期flutter组件只有两种:有状态和无状态组件。由于无状态组件效率高,如果不涉及到组件内部的数据存储,尽量多的使用无状态组件
- 资源加载器使用Java,您可以使用当前线程的classLoader并尝试加载文件,但是Spring Framework为您提供了更为优雅的解
- 在C#中数组Array,ArrayList,泛型List都能够存储一组对象,但是在开发中根本不知道用哪个性能最高,下面我们慢慢分析分析。一、
- 数据库事务是被当作单个工作单元的操作序列。这些操作要么全部完成或全部不成功。事务管理是面向企业应用程序,以确保数据的完整性和一致性RDBMS
- 当用户从网络上读取微薄的时候,如果一下子全部加载用户未读的微薄这将耗费比较长的时间,造成不好的用户体验,同时一屏的内容也不足以显示如此多的内
- using System.Runtime.InteropServices;using System.Drawing.Imaging;&nbs
- IDEA 报错:无效的源发行版问题描述从SVN拉项目代码到本地后用idea运行,发现几个报错,关键的一个是:无效的源发行版,考虑是JDK版本
- ZXing是谷歌的一个开源库,可以用来生成二维码、扫描二维码。本文所介绍的是第一部分。首先上效果图:ZXing相关各种文件官方下载地址:ht
- 测试APP时出现以下错误信息:Intel HAXM is required to run this AVD.Your CPU does no
- 1.新建springBoot项目在前面有两种方式2.加入thymeleaf模板引擎SpringBoot推荐使用thymeleaf模板引擎语法
- 一,需求来源在开发过程中,可能会要使用Win7 ,Win8 ,Win10等不同版本的系统去做兼容性调试,也有时候会去针对特别的显卡,无线网卡