-- Index --
1. Filter 란 | 2. Filter 만들기 | 3. Filter 메서드 | 4. @WebFilter의 정석 |
특정 urlPattern에 대해서 무조건 거쳐가야하는 서블릿 |
implement @WebFilter @Override doFilter() chain.doFilter() |
init doFilter destroy |
xml 파일에서 매핑작업 <filter> <filter mapping > |
1. Filter 란?
- tomcat에 요청을 보낼 때 여러 서블릿(직원)들이 있는데
- 그중에서도 입구에서 무조건 거쳐가야 하는 서블릿이 필터!
- 정확히 말하면 입구 = 특정 urlPattern에 대해서 무조건 거쳐가야 하는 서블릿이 필터!
- 어느 곳에서 요청을 보내는지 상관없이
- Filter 의 url pattern이랑 매칭이 되면 해당 요청 잡아서 처리해준다.
2. Filter 만들기
2-1 : implement Filter
2-2 : @WebFilter(urlPateerns)
- 모든 요청에 대해 작동할것이므로 urlPatterns = " /* "
2-3 : Filter 인터페이스의 메서드 doFilter - @오버라이드
- implement 했으니 미완성 메서드 만들어주기 - ( doFilter )
- 필터에서 할 작업 지정 - ( 인코딩 작업 )
이렇게만 해주었더니 – 나의 요청이 – 필터에만 도착하고 끝나버렸다 . - 필터에 와서 막혀버렸다
필터 통과시켜도 괜찮다면 통과시켜주는 작업 필요
2-4 : 필터 통과시켜주기 - chain.doFilter();
# 내 필터는 통과 다음으로 이동 – 통과통과하다보면 서블릿이나 jsp로 연결됨! #
3. Filter 의 메서드 확인 및 총 정리
3-1 : 필터의 메서드 확인 ( init , doFilter , destroy )
3-2 : 정리
3-3 : 필터는 어떨 때 걸어주면 좋을까요?
# 21번 라인 - (HttpServletRequest)로 캐스팅한 이유는?
- request의 타입이 ServletRequest 인데, 너무 추상적인 애라서 getSession() 하지 못한다.
- 보다 구체적인 HttpServletRequest로 캐스팅해 주어야만 getSession() 가능하다.
4. Filter의 정석 매핑 방법
- @WebFilter 의 정석 -
- 어노테이션 없었을때는 xml파일에다가 직접 매핑해주는 것이 정석이었다.( 서블릿처럼)
init 에서는 해당 객체가 태어날 때 있어야 하는 것들
( 채팅소켓에서 소켓 준비 같은)
destroy 에서는 해당 객체가 없어지면서 없어져야 하는 것들
(자원반납 / 만들어진 객체 파괴 같은 것들 한다.)
사실 destroy는 만질일이 거의 없다.
tomcat이 꺼질 때 실행된다 – 만약 정전이 됐다? - NO - 실행된다.
강사님은 observe 패턴으로 - 해당 객체 사라질 때 감지해서 실행되는 쓰레드로 관리하셨다
'Java 기반 클라우드 융합 개발자 과정 - KH 정보교육원 > 8월' 카테고리의 다른 글
22.08.19 - [ WAS ] Ajax - Json 활용해서 응답하기 ( feat. Gson ) (0) | 2022.09.02 |
---|---|
22.08.19 - [ WAS ] Ajax : Asynchronous JavaScript and XML (0) | 2022.09.02 |
22.08.17 - [ WAS ] JSTL - Java server pages Standard Tag Library (0) | 2022.09.01 |
22.08.16 - [ WAS ] EL - Expression Language (0) | 2022.08.31 |
22.08.15 - 광복절 휴강, 주말 개인과제 제출, 세미프로젝트 작업 (0) | 2022.08.31 |