Фильтр HTTP-ответов в Spring Boot - PullRequest
0 голосов
/ 22 февраля 2019

У меня есть веб-сайт типа http://example.com, и под моим веб-сайтом много URL (http://example.com/a, / ab, / abc и т. Д.).

Также предположим, чтов моем файле ресурсов в весеннем загрузочном проекте много файлов вида (x.html, y.html и т. д.).

Я развернул его в Tomcat9 на сервере Centos.

Iхочу построить что-то вроде:

  • if (HTTPResponse! = 200) -> маршрут к x.html (все ответы на запросы, поступающие на все URL в моем проекте)
  • else -> обрабатывать нормальный поток ответов HTTP-запросов

Есть несколько способов: Обработать его в Interceptor классе, Filter классе, а также @ControllerAdvice сделать часть того, что я хочу (я построил).

Так что я никогда не хочу показывать ошибку HTTP на моем сайте.Если он получил ошибку HTTP, направьте его на мою страницу x.hmtl, иначе обработайте обычный поток Req-Resp.

Каков наилучший способ его создания?Что вы предлагаете?

1 Ответ

0 голосов
/ 22 февраля 2019

Попробуйте,

@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");
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...