美文网首页
为什么tomcat影响spring404的捕获处理

为什么tomcat影响spring404的捕获处理

作者: 张剑_2a1d | 来源:发表于2019-01-21 10:42 被阅读0次

@[TOC](tomcat自动拦截404的处理)

spring的统一异常处理我们知道,使用@ControllerAdvice。最简单的直接拦截Exception,无论你throw出来的还是系统自动报的都可以自定义。

@ExceptionHandler(Exception.class)

@ResponseBody

public JSONObject exceptionHandler(Exception e) {

logger.info(getTrace(e));

System.out.println(e.getMessage());

return ResponseUtil.getMap(ResponseUtil.ERROR_CODE, e.getMessage(), "");

}

public static String getTrace(Throwable t) {

StringWriter stringWriter = new StringWriter();

PrintWriter writer = new PrintWriter(stringWriter);

t.printStackTrace(writer);

StringBuffer buffer = stringWriter.getBuffer();

return buffer.toString();

}

上面就是最简单的代码,如果我们使用java -jar的方式直接启动项目,还可以利用status来拦截404返回json给前台,但是问题来了,如果我们使用tomcat的时候,404在你的同意处理里面是拦截不了的。因为tomcat自己会定义404默认页面。

但是返回给前台的信息就不友好了,这时候我们其实可以在tomcat的web.xml里面直接配置404路径就可以了,指向你内部接口然后返回给前台。

<error-page>

<error-code>404</error-code>

<location>/erro/404</location>

</error-page>

然后在你的项目里面自定义/erro/404就可以拦截到404并返回json给前台了

@RestController

@RequestMapping("/erro")

public class ErroController {

// 登录

@PostMapping("/404")

public JSONObject notFound() {

return ResponseUtil.getMap(ResponseUtil.NOT_FOUND, "找不到", "");

}

以上只是简单的实例,并没有对异常分类捕获返回,可以自己玩~

相关文章

  • 为什么tomcat影响spring404的捕获处理

    @[TOC](tomcat自动拦截404的处理) spring的统一异常处理我们知道,使用@ControllerA...

  • springboot 异常捕获和处理

    springboot 异常捕获和处理 异常捕获处理

  • Python异常处理

    Python异常处理 一、捕获异常 1.异常捕获语法 2.错误类型捕获 except:处理所有异常。except ...

  • Java异常的捕获及处理

    导语 学完异常的捕获及处理就懂的情书。 主要内容 异常的产生以及对于程序的影响 异常处理的格式 异常的处理流程(核...

  • 深入拆解Tomcat&Jetty(六)

    回顾Tomcat处理请求 下图是对于Tomcat处理请求内部的流转过程.也描述了Tomcat组件的静态关系. 如果...

  • 事件处理机制

    JavaScript中事件处理事件处理分为三个阶段:捕获 - 处理 - 起泡。 以点击按钮为例:捕获阶段:由外层到...

  • Python轻松入门 - 6 异常处理

    异常处理是写程序必须要考虑的问题 捕获异常 try: except: try方式捕获异常, 并在except中处理...

  • Springboot异常处理的五种方式

    SpringBoot 框架异常处理有五种处理方式,从范围来说包括有全局异常捕获处理方式和局部异常捕获处理方式,接下...

  • Javascript DOM事件流向

    事件流向 先捕获然后处理,然后再冒泡出去 addEventListener false冒泡 true捕获 事件捕获...

  • 6未捕获的异常

    如果一个异常未被捕获,则由名为未捕获异常处理程序的函数截取。未捕获的异常处理程序总是导致程序退出,但可能会在这之前...

网友评论

      本文标题:为什么tomcat影响spring404的捕获处理

      本文链接:https://www.haomeiwen.com/subject/sigqjqtx.html