filter

필수는 아닌데 알고 있으며 편할 때가 있다. 

  • 서버 기동 될 때, 객체 생성함 
  • 서블릿 수행 되기 전, 수행되고 나서 역활 할 수 있는 것
  • 요청 왔을 때, 필터를 거쳐서 수행됨 (jsp, servlet, static file)
  • 로그 필터 - ex) 회사가 앞으로 한달 동안만 사이트의 어느 시간 때에 요청이 많이 오는 지 확인할 때.
  • 필터 갯수 제한 없음
  • 몇 번째 필터냐에서 순서가 달라짐
    • 순서는 필터의 이름 순서에 따라 달라진다.  - 알파벳 순
  • 한번 객체 생성되면 서버 죽을 때까지 유지됨
    • 서버 기동될 때 객체 생성 해 놓는다. 
  • chain.doFilter : 다음 친구를 수행 시켜라. - 수행해야함. 
    • servlet수행 하기 전에 전처리 할 내용 앞에 적음
    • 후 처리할 내용은 chain.doFilter호출 뒤에 적는다. 
    • 이거 안 하면 filter만 호출되고 응답해버림 (servlet안 해줌)
  • first(servlet) 요청(request 선택)할 때만 filter하겠다. 
  • httpservlet은 클래스라서 자유로웠는데 filter는 인터페이스
  • 다른 서블릿 요청할 때 수행 안 됨
    package filter;
    
    import java.io.IOException;
    import javax.servlet.DispatcherType;
    import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    import javax.servlet.annotation.WebFilter;
    
    /**
     * filter 공부
     * 2022.01.06
     * init메소드가 맨 밑 - 알파벳 순
     */
    @WebFilter(dispatcherTypes = {DispatcherType.REQUEST }
    					, urlPatterns = { "/first" })
    public class FlowFilter implements Filter {
    	
        public FlowFilter() {
        	System.out.println("FlowFilter 객체 생성");
        }
    	public void destroy() {
    		
    	}
    	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
    		System.out.println("---- 서블릿 수행 전 생성");
    		chain.doFilter(request, response);
    		System.out.println("---- 서블릿 수행 후 생성");
    	}
    	// 필터가 객체 생성할 때 - 서버가 기동할 때(서버 죽을 때까지 유지)
    	public void init(FilterConfig fConfig) throws ServletException {
    		System.out.println("FlpwFilter 객체 초기화");
    	}
    
    }​

  • 모든 자원 시작할 때 filter시작

'study > JAVA 전문가' 카테고리의 다른 글

[linux] 톰캣 설치  (0) 2022.01.26
[HTML/CSS]  (0) 2022.01.11
[JSP] 방명록 프로그램  (0) 2022.01.05
[JSP] EL  (0) 2022.01.05
[ServletJSP] 시험 준비  (0) 2022.01.04

+ Recent posts