1. 필터란? 


클라이언트와 서버 사이에 필터가 존재해서 들어오는 request와 response를 필터가 먼저 받아 사전작업/사후 작업 등 

공통적으로 수행되는 부분의 작업을 수행.


참고 및 출처: https://programmingsummaries.tistory.com/82


-필터의 흐름도


: 필터는 여러가지 기능에 쓰일 수 있다.(타이머 필터,인코딩 필터, 로그인 필터 등...) 

각 필터에서 작업을 수행하고 chain의 doFilter 메소드를 통해 다음 필터에서 넘겨준다. 

필터를 거쳐서 request를 통해 서버에 전해지고 다시 response를 통해 클라이언트에게 넘겨준다.


2. 한글 인코딩 해주는 필터 예시 


여러 종류의 필터 중에 한글 인코딩해주는 필터를 예시로 보겠다.


1) CharsetEncodingFilter.java 파일


2) web.xml에 필터 등록

: web.xml에 filter를 등록해준다. 변경 내용 적용시킬려면 톰캣 서버 리스타트.


3) 적용 모습 확인


- 각 서블릿 파일

req.setCharacterEncoding("UTF-8");

: 서블릿 파일에 이 코드가 있다면 지워주고(utf-8로 인코딩하는 코드), 

그리고 확인을 위해 필터도 주석처리 후 작동시키면 한글이 깨져나오게 된다.

왜냐하면 한글로 인코딩해주는 필터인데 현재는 사용 안해줬기 때문에 한글이 깨진다.


-한글이 깨지는 모습(study/bbs/list.do)


여기서 필터의 주석만 풀어주고 실행시켜 보면


-실행화면


한글이 깨지지 않고 잘 들어가는 것을 볼 수 있다.




-코드 압축파일




+ Recent posts