처음부터 차근차근

Servlet Filter 본문

프로그래밍/JSP

Servlet Filter

_soyoung 2022. 1. 1. 18:40
반응형

servlet container

servelt이 실행되면 서버의 메모리 공간에 올라가게 되는데 이 공간을 servlet container이라고 한다.

 

 

 

servlet filter

servlet이 실행되기 직전과 실행되고난 직후에 실행되는 class이다.

그래서 주로 모든 servlet에 공통적으로 넣어야할 내용이 있을 때 사용한다.

예시 : request.setCharacterEncoding("UTF-8");

servlet 실행되기 직전에 실행되어 이 서블릿이 실행될지 말지도 결정할 수 있기 때문에 인증이나 권한에 대한 일에도 사용된다.

 

 

 

servlet filter 만드는 방법

src / 패키지 밑에 class 새로 만들기

class를 새로 생성하면서 interface add
servlet filter 선택 후 ok, Finish 

 

 

 

servlet filter 연결하는 방법

  1. web.xml 사용
  2. annotation 사용

 

1. web.xml 사용

web.xml에 아래의 내용을 추가한다.

 <filter>
	<filter-name>ServletEncodingFilter</filter-name>
	<filter-class>com.ksy.filter.ServletEncodingFilter</filter-class> 
  </filter>
  <filter-mapping>
      <filter-name>ServletEncodingFilter</filter-name>
      <url-pattern>/*</url-pattern> // 모든 서블릿에 대해 적용
  </filter-mapping>

 

2. annotation 사용

filter class 위에 이 annotation을 추가한다.

@WebFilter("/*")

괄호 안은 매핑될 주소를 의미한다.

 

 

 

Filter.doFilter

filter 실행이후 이 요청을 서블릿 실행으로 전이를 할지 말지 정하는 코드이다.

chain.doFilter(request, response);

이 코드를 넣으면 요청된 서블릿으로 가고, 넣지 않으면 가지 않는다.

그래서 이 코드는 filter 코드의 맨 마지막에 넣어야한다.

 

 

 

 

 

 

출처 : https://www.youtube.com/playlist?list=PLq8wAnVUcTFVOtENMsujSgtv2TOsMy8zd 변형 및 요약 

반응형
Comments