Spring MVC 全局异常拦截器 HandlerExceptionResolver

Spring MVC 全局异常拦截器 HandlerExceptionResolver

我这里只对部分请求做验证,无登录时,抛出此异常,拦截后自动跳转到登录页面,具体可以根据自己的业务来具体实现。

@Order 注解一定要加,保证优先级
@Configuration 不做过多解释

如果不加,抛出的异常不会被此拦截,直接会被工程配置的 404、500 之类的异常拦截到。

废话不说,直接上代码!!请自行查阅!

/**
 * 默认是最低优先级,值越小优先级越高
 */
@Order(-1000)
@Configuration
public class NewsLoginException implements HandlerExceptionResolver {

	private static final Logger LOGGER = LoggerFactory.getLogger(NewsLoginException.class);

	@Override
	public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object o, Exception e) {
		LOGGER.error(e.getMessage(),e);
		if (e instanceOf RuntimeException) {
			//TODO do something
		}
		return new ModelAndView("/modules/front/login");
	}
}

项目中的使用 Demo

@GetMapping("/activity/registered")
public String goActivityRegistered(HttpServletRequest request, HttpServletResponse response, Model model) throws RuntimeException {
	Object ticketId = request.getSession().getAttribute(NewsConstants.MEDIA_LOGIN_TICKET_ID);
	if (ticketId == null) throw new RuntimeException("无效请求!");
	return "";
}

如果有不明白的小伙伴,可以私信我!!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值