필터

2021. 7. 6. 18:28(구)공부/JSP

728x90

Request 필터 - 인증(사용자 인증), 요청 정보를 로그로 작성, 암호화 인코딩 작업

Response 필터 - 응답 결과 데이터 압축, 응답 결과에 내용 추가/수정, 총 서비스 시간 측정

 

filter는 Filter 인터페이스를 implements한 클래스로 구현함

 

Filter 메소드 종류

init() 필터 인스턴스의 초기화 - public void init(FilterConfig filterConfig) throws ServletException

- init( ) 메소드는 JSP 컨테이너 내에서 초기화 작업을 수행할 필터 인스턴스를 생성한 후 한 번만 호출

- init( ) 메소드는 JSP 컨테이너에 의해 호출되어 필터의 서비스가 시작되고 있음을 나타냄

 

FilterConfig 인터페이스의 메소드 종류

getFilterName() String web.xml에 작성된 필터 이름 반환

getInitParameter(String name) String web.xml 파일에 설정된 매개변수에 대한 값을 반환.

getInitParameterNames() Enumeration<String> web.xml 설정된 모든 패개변수 이름을 포함하는 Enumeration 객체 반환.

getServletContext() ServletContext ServletContext 객체 반환

 

doFilter() 필터 기능 작성 - public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws java.io.IOException, ServletException

-번째 매개변수 ServletRequest 객체는 체인을 따라 전달하는 요청이고,

-번째 매개변수 ServletResponse 객체는 체인을 따라 전달할 응답

-번째 매개변수 FilterChain 객체는 체인에서 다음 필터를 호출하는 데 사용

만약 호출 필터가 체인의 마지막 필터이면 체인의 끝에서 리소스를 호출

 

FilterChain 인터페이스의 메소드

doFilter(ServletRequest request, ServletResponse response) void 체인의 다음 필터 또는 리소스로 제어 전달.

 

destroy() 필터 인스턴스의 종료 전에 호출되는 메소드

 

web.xml 파일에 필터를 설정

ex)

<filter>

  <filter-name>~~</filter-name> //필터 이름 설정

  <filter-class>~~</filter-class> // 자바 클래스 이름 설정

  [<init-param> //매개 변수와 값을 설정

      <param-name>~~</param-name>

      <param-value>~~</param-value>

   </init-param>]

</filter>

<filter-mapping>

    <filter-name>~~</filter-name> //필터 이름 설정

    <url-pattern>~~</url-pattern> //url패턴 설정

</filter-mapping>

 

<init-param> 요소 - 설정된 매개변수와 값을 자바 또는 jsp 코드에서 접근

String value = getServletConfig().getInitParameter("매개변수 이름");

 

ex)

<filter>

  <filter-name>myfilter</filter-name>

  <filter-class>ch12.com.filter.logfilter</filter-class>

  <init-param>

    <param-name>param</param-name>

    <param-value>admin</param-value>

  </init-param>

</filter>

String value = getServletConfig().getinitParameter("param");

 

<filter-mapping>

    <filter-name>myfilter</filter-name> //필터 이름 설정

    <url-pattern>/ch12/*</url-pattern> //url패턴 설정

</filter-mapping> //이 패턴의 url은 myfilter 적용

  

 

 

 

728x90

'(구)공부 > JSP' 카테고리의 다른 글

쿠키  (0) 2021.07.06
세션  (0) 2021.07.06
예외 처리  (0) 2021.07.06
시큐리티  (0) 2021.07.06
다국어처리 - 작성 대기  (0) 2021.07.05