0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>Теги: spring mvc interceptor, перехват</p>
1
<p>Теги: spring mvc interceptor, перехват</p>
2
<p>В Spring существуют так называемые перехватчики (<strong>Spring Interceptor</strong>), являющиеся, по сути, аналогом Servlet Filter. Рассмотрим, зачем они нужны.</p>
2
<p>В Spring существуют так называемые перехватчики (<strong>Spring Interceptor</strong>), являющиеся, по сути, аналогом Servlet Filter. Рассмотрим, зачем они нужны.</p>
3
<p>На практике с их помощью можно перехватывать запросы клиента и выполнять их обработку. Перехват клиентского запроса возможен в 3-х местах:<strong>preHandle</strong>,<strong>postHandle</strong>,<strong>afterCompletion</strong>. Остановимся подробнее на каждом из них:</p>
3
<p>На практике с их помощью можно перехватывать запросы клиента и выполнять их обработку. Перехват клиентского запроса возможен в 3-х местах:<strong>preHandle</strong>,<strong>postHandle</strong>,<strong>afterCompletion</strong>. Остановимся подробнее на каждом из них:</p>
4
<ul><li><strong>preHandle</strong>- этот метод применяется в целях обработки запросов, которые не были переданы в метод-обработчик контроллера. Для обеспечения передачи следующему перехватчику/в handler method он должен вернуть<strong>True</strong>. Если будет<strong>False</strong>, произойдет обработка запроса непосредственно самим обработчиком, то есть отпадет необходимость в его дальнейшей передаче. Метод может выкидывать исключения, пересылая ошибки к представлению;</li>
4
<ul><li><strong>preHandle</strong>- этот метод применяется в целях обработки запросов, которые не были переданы в метод-обработчик контроллера. Для обеспечения передачи следующему перехватчику/в handler method он должен вернуть<strong>True</strong>. Если будет<strong>False</strong>, произойдет обработка запроса непосредственно самим обработчиком, то есть отпадет необходимость в его дальнейшей передаче. Метод может выкидывать исключения, пересылая ошибки к представлению;</li>
5
<li><strong>postHandle</strong>- вызывается после handler method, однако до обработки<strong>DispatcherServlet</strong>в целях передачи представлению. Может задействоваться при добавлении в объект<strong>ModelAndView</strong>параметров;</li>
5
<li><strong>postHandle</strong>- вызывается после handler method, однако до обработки<strong>DispatcherServlet</strong>в целях передачи представлению. Может задействоваться при добавлении в объект<strong>ModelAndView</strong>параметров;</li>
6
<li><strong>afterCompletion</strong>- вызывается уже после отрисовки представления.</li>
6
<li><strong>afterCompletion</strong>- вызывается уже после отрисовки представления.</li>
7
</ul><p>Следует отметить, что для создания обработчика надо будет расширить абстрактный класс<strong>HandlerInterceptorAdapter</strong>либо реализовать интерфейс<strong>HandlerInterceptor</strong>. Вдобавок к этому, потребуется указать перехватчики в конфигурационном файле<strong>Spring</strong>.</p>
7
</ul><p>Следует отметить, что для создания обработчика надо будет расширить абстрактный класс<strong>HandlerInterceptorAdapter</strong>либо реализовать интерфейс<strong>HandlerInterceptor</strong>. Вдобавок к этому, потребуется указать перехватчики в конфигурационном файле<strong>Spring</strong>.</p>
8
<p>По материалам https://javastudy.ru/.</p>
8
<p>По материалам https://javastudy.ru/.</p>
9
9