Três maneiras de conseguir o filtro Primavera Bota

Use @WebFilter um comentário

@WebFilter escrito na classe

@WebFilter atributos comunsAqui Insert Picture Descrição

filtro de Implementação

  1. Javax.servlet.Filter classe implementa filtro de gravação de uma interface, além de notas @WebFilter, não é possível definir a ordem de execução do filtro
package com.jsong.wiki.blog.filter;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;

@WebFilter(filterName = "testfilter",urlPatterns ={"/blog/*"})
public class AnnotatedRequestFitler implements Filter {

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

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

    @Override
    public void destroy() {

    }
}

  1. @ServletComponentScan adicionado na classe de configuração tem @Configuration também ser adicionado directamente à classe de partida

não @ServletComponentScan verificar automaticamente o pacote padrão onde o parâmetro de classe atual, o pacote pode ser designado de digitalização

package com.jsong.wiki.blog.filter;

import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.context.annotation.Configuration;

@ServletComponentScan(value = "com.jsong.wiki.blog.filter")
@Configuration
public class TestConfig {
}

  1. Filtro configurado, ao acessar http: // localhost: filtro Quando 8080 / blog / teste, o console será impresso

Duas configurações de feijão

  1. Escrever uma classe de filtro que implementa a interface javax.servlet.Filter
package com.jsong.wiki.blog.filter;

import org.springframework.stereotype.Component;

import javax.servlet.*;
import java.io.IOException;

public class RequestFilter implements Filter {


    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

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

    @Override
    public void destroy() {

    }
}

  1. Na configuração de feijão instanciar este filtro de classe
package com.jsong.wiki.blog.config;

import com.jsong.wiki.blog.filter.RequestFilter;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.servlet.Filter;

@Configuration
public class FilterConfig {

    @Bean
    public Filter registerRequestFilter() {
        return new RequestFilter();
    }
}

Três FilterRegistrationBean (recomendado), você pode configurar a ordem do filtro

  1. E sobre o mesmo caminho, primeiro criar uma classe de filtro que implementa a interface javax.servlet.Filter
    Nota Para escrever um comentário sobre classe @Component, esta classe para gerenciada por contêiner
package com.jsong.wiki.blog.filter;

import org.springframework.stereotype.Component;

import javax.servlet.*;
import java.io.IOException;

@Component
public class RequestFilter implements Filter {


    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

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

    @Override
    public void destroy() {

    }
}

  1. Na classe de configuração pela administração filtro FilterRegistrationBean
package com.jsong.wiki.blog.config;

import com.jsong.wiki.blog.filter.RequestFilter;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.servlet.Filter;

@Configuration
public class FilterConfig {

//    @Bean
//    public Filter registerRequestFilter() {
//        return new RequestFilter();
//    }

    @Bean
    public FilterRegistrationBean registration(RequestFilter filter) {
        FilterRegistrationBean bean = new FilterRegistrationBean(filter);
        bean.addUrlPatterns("/blog/*");
        // 排序
        bean.setOrder(1);
        return bean;
    }
}

  1. bean.setOrder (1); uma ordem de execução dispostas filtro, quanto menor for a primeira execução

precauções

Certifique-se de definir o filtro urlParten, se esses filtros vão duas ou mais vezes um endereço incorreto serão solicitados através do filtro.

castanhas

Quando a nota off urlParten

DoFilter break point no método, no pedido de
http: // localhost: 8080 / blog / test

  • O primeiro ponto de interrupção url / blog / teste
    Aqui Insert Picture Descrição
  • O segundo pedido url /favicon.ico breakpoint ícone, irá filtrar
    Aqui Insert Picture Descrição
Publicado 83 artigos originais · ganhou elogios 21 · vê 50000 +

Acho que você gosta

Origin blog.csdn.net/JsongNeu/article/details/103503971
Recomendado
Clasificación