Spring Boot中的HTTP响应过滤器

时间:2019-02-22 06:26:58

标签: spring-boot http tomcat9

我有一个像http://example.com这样的网站,并且我的网站下有很多URL(http://example.com/a,/ ab,/ abc等。)

还假设在spring boot项目中我的资源文件下有很多视图文件(x.html,y.html等)。

我在Centos服务器的Tomcat9中部署了它。

我想构建类似的东西

  • 如果(HTTPResponse!= 200)->路由到x.html(请求的所有响应都传入我项目中的所有URL)
  • else->处理正常的HTTP请求响应流

有一些方法:在Interceptor类,Filter类中处理,也@ControllerAdvice构成我想要的部分(我构建的)。

所以我从不想在我的网站上显示HTTP错误。如果遇到HTTP错误,请将其路由到我的x.hmtl页面,否则将处理常规的Req-Resp流。

构建它的最佳方法是什么?你有什么建议?

1 个答案:

答案 0 :(得分:0)

尝试这种方式

@ControllerAdvice
public class ExceptionController {
@ExceptionHandler(Exception.class)
public ModelAndView handleError(HttpServletRequest request, Exception e)   {
    Logger.getLogger(getClass().getName()).log(Level.SEVERE, "Request: " + request.getRequestURL() + " raised " + e);
    return new ModelAndView("error");
}

@ExceptionHandler(NoHandlerFoundException.class)
public ModelAndView handleError404(HttpServletRequest request, Exception e)   
{
    Logger.getLogger(getClass().getName()).log(Level.SEVERE, "Request: " + request.getRequestURL() + " raised " + e);
    return new ModelAndView("404");
}
}