6개월 대장정/JSP 개념

64일차 - [JSP] Filter

pitang 2021. 11. 24. 19:20
반응형

안녕하세요. pitang입니다.

오늘은 필터에 대해 알아보겠습니다.

 

Filter

필터는 HTTP 요청과 응답을 변경할 수 있는 재사용 가능한 클래스이다.

최종 자원과 클라이언트로 가는 응답(response) 사이에 위치하여 최종 자원의 요청 결과를 알맞게 변경할 수 있고 흐름도 변경할 수 있다.

 

new->Filter로 filter 클래스를 만들 수 있고 Filter 인터페이스는 다음과 같은 세 개의 메서드를 선언하고 있다.

public void init(FilterConfig filterConfig) throws ServletException - 필터를 초기화할 때 호출된다.

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)

throws java.io.IOException, ServletException - 필터 기능을 수행한다. chain을 이용해 체인의 다음 필터로 처리를 전달할 수 있다.

public void destroy() - 필터가 웹 컨테이너에서 삭제될 때 호출된다.

 

필터의 역할을 하는 메서드가 doFilter() 메서드이다.

 

필터를 설정하는 방법은 web.xml을 이용하는 방법과 @WebFilter 어노테이션을 이용하는 방법, 두 가지가 있다. 

 

web.xml 이용하는 방법은 web.xml 파일에 관련 정보를 추가하는 것이다.

<filter> 태그는 웹 애플리케이션에서 사용할 필터를 지정하고,

<filter-mapping> 태그는 특정 자원에 대해 어떤 필터를 사용할지를 지정한다.

 

@WebFilter 어노테이션을 이용하는 방법은 62일 차에 어노테이션으로 매핑하는 방법과 같다.

 

ex1) @WebFilter 어노테이션 이용

F01Filter.java
F01Servlet.java
URL - console

 

ex2) web.xml 이용

F03Filter.java
web.xml
URL - console

 

ex3)

F05S01Servlet.java
F05S02Servlet.java
F05Filter.java
web.xml
URL /filterex2/s01 - URL /filterex2/s02
console


Filter 예제

ex1)

F09S01Servlet.java
F09Filter.java
web.xml - 09notok.jsp
URL - console
일반 view - notok view

 

ex2) 로그인 예제

F10LoginServlet.java
F10MemberOnlyServlet.java
F10MemberFilter.java
web.xml - login.jsp
login view - MemberOnly view

 

 

 

 

감사합니다.

 

*m1 맥북을 사용 중입니다.*

728x90
반응형