Я не понимаю @Component и @WebFilterJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Я не понимаю @Component и @WebFilter

Сообщение Anonymous »

Я работаю над проектом Spring Boot, который работает нормально.
Я хочу зарегистрировать фильтр, но обнаружил, что мне нужно использовать как @Component, так и @WebFilter для фильтр для перехвата запросов.
Однако я заметил, что некоторые блоги о Spring Boot используют только @WebFilter, а фильтр все равно регистрируется, что меня смущает.

Код: Выделить всё

@Component
@WebFilter(urlPatterns = "/*", filterName = "xssFilter")
public class XssFilter implements Filter {

@Override
public void init(FilterConfig filterConfig) throws ServletException {
Filter.super.init(filterConfig);
}

@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,
FilterChain filterChain) throws IOException, ServletException {
filterChain.doFilter(servletRequest, servletResponse);
}

@Override
public void destroy() {
Filter.super.destroy();
}
}
Затем я создал обычный проект SSM без Spring Boot и обнаружил, что независимо от того, включаю ли я @Component, фильтр, зарегистрированный с помощью @WebFilter, по-прежнему работает одинаково.
Я также пытался переписать проект Spring Boot, но не использовал встроенный Tomcat; вместо этого я использовал внешний сервер Tomcat.

Код: Выделить всё

org.springframework.boot
spring-boot-starter-web


org.springframework.boot
spring-boot-starter-tomcat





org.springframework.boot
spring-boot-starter-tomcat
provided

На этом этапе, когда я включаю @Component и @WebFilter, я получаю сообщение об ошибке:
"Не удалось зарегистрировать 'filter xssFilter' на контекст сервлета, возможно, уже зарегистрирован?"
Когда я удаляю @Component и использую только @WebFilter, программа работает нормально, а запросы перехватываются фильтром.Я прочитал много сообщений в Интернете, но до сих пор не могу понять эту проблему.

Подробнее здесь: https://stackoverflow.com/questions/791 ... -webfilter
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»