자바 에서 Filter 필 터 를 사용 하 는 방법

3188 단어 JavaFilter필터
필터 필터
public void doFilter(){}방법 매개 변 수 를 중점적으로 기록 합 니 다.
(1) ServletRequest servletRequest 
reqeust 요청 하기;
(2)ServletResponse servletResponse 
응답 응답;
(3)FilterChain filterChain
매개 변수 filter Chain,doFilter()방법 이 있 습 니 다.이 방법 을 사용 하면 프로그램 을 계속 내 려 가 후속 코드 를 실행 할 수 있 습 니 다.여러 필터 가 있 으 면 다음 필터 논 리 를 계속 실행 합 니 다(개발 중 여러 필터 상황 이 발생 합 니 다).
예(다음 예 는 springboot 프로젝트 에서)
필터 사용,로그 출력 인터페이스 응답 시간
filter -> FilterLog.java

package com.lxc.springboot.filter;
 
 
/**
 *            (tomcat)   
 *  public void doFilter(){}     :
 *
 * ServletRequest servletRequest :   reqeust
 * ServletResponse servletResponse :   response
 * FilterChain filterChain : filterChain.doFilter()          ,          
 *
 * IDEA:       -> ctrl + alt + l
 *    @Component   , spring      
 */
 
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
 
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
 
@Component
public class FilterLog implements Filter {
    //       -        
    private static final Logger LOG = LoggerFactory.getLogger(FilterLog.class);
 
    //      
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        Filter.super.init(filterConfig);
    }
 
    /**
     *       servlet,servlet -        、  ,        request   response
     *
     * @param servletRequest
     * @param servletResponse
     * @param filterChain
     */
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        /**
         * request            !!!
         */
        HttpServletRequest request = (HttpServletRequest) servletRequest;
        LOG.info("【     】");
        LOG.info("--------- FilterLog     --------- ");
        LOG.info("-     : {},   : {}", request.getRequestURL().toString(), request.getMethod());
        LOG.info("-     : {},   : {},   : {}", request.getRemoteAddr(), request.getRemoteHost(), request.getRemotePort());
        long startTime = System.currentTimeMillis(); // 13     (  )
        //       ,        ,   ->     ,    
        filterChain.doFilter(servletRequest, servletResponse);
        LOG.info(" --------- FilterLog   ,  : {} ms --------- ", System.currentTimeMillis() - startTime);
    }
 
    // web      ,Filter   
    @Override
    public void destroy() {
        Filter.super.destroy();
    }
}
 출력 은 다음 과 같 습 니 다:

자바 에서 Filter 필 터 를 사용 하 는 방법 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 Filter 필터 내용 은 이전 글 을 검색 하거나 아래 글 을 계속 찾 아 보 세 요.앞으로 도 많은 응원 부 탁 드 리 겠 습 니 다!

좋은 웹페이지 즐겨찾기