Spring

Spring boot web filter 예제

기록만이살길 2020. 6. 21. 22:11
반응형

spring boot web filter 예제

Spring Boot에는 바람둥이가 내장되어 있습니다. web.xml필터를 추가하기 위해 편집 할 수 없습니다 . 이 페이지에서는 Spring Boot없이 필터를 추가하는 방법을 보여줄 것 web.xml입니다. WebFilter필터를 추가 하기 위해 주석을 사용 합니다. 이 주석을 추가 한 후에 ServletComponentScan는 Spring Boot가이 필터를 찾도록 주석을 추가해야합니다 .

다음은 완전한 코드입니다.

@SpringBootApplication
@ServletComponentScan(basePackages = "com.henryxi.filter")
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

@WebFilter(filterName = "myFilter",urlPatterns = "/filter")
public class MyFilter implements Filter {

    public void init(FilterConfig filterConfig) throws ServletException {

    }

    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        PrintWriter writer = servletResponse.getWriter();
        writer.print("this is filter");
        servletResponse.setContentType("text/html;charset=UTF-8");
    }

    public void destroy() {

    }
}

@Controller
public class MyController {

    @ResponseBody
    @RequestMapping("/**")
    public String anyRequest(){
        return "this is available page.";
    }
}

요청 localhost:8080/filter이 메시지 "this is filter"라는 로그를 볼 수 있습니다.

"fitler"가아닌 다른 URL요청은 단지 "this is available page."라는 메시지만 볼 것입니다.

점을 유의 WebFilter주석이 스프링 주석이 아닙니다. 그것은에 javax.servlet.annotation패키지로 제공된다. embed tomcat을 사용하지 않으면이 주석을 사용하여 필터를 추가 할 수도 있습니다. 서블릿 컨테이너는이 주석을 처리합니다. 이 주석을 추가하면 web.xml 파일에서 필터를 선언하는 것과 동일한 효과가 있습니다.

반응형

'Spring' 카테고리의 다른 글

Spring Batch Tasklet, Chunks 차이 및 예제  (0) 2020.06.24
Spring Boot 란  (0) 2020.06.22
Spring, Spring boot mybatis 예제  (0) 2020.06.21
Spring boot interceptor 예제  (0) 2020.06.17
스프링 Boot에서 PDF 출력하기  (0) 2020.06.17