728x90
반응형
서블릿 필터란?
javax.servlet.Filter 인터페이스를 상속 받아 구현하는 클래스
HTTP 요청과 응답 사이에서 전달되는 데이터를 가로채어 서비스에 맞게 변경하고 걸러내는 필터링 작업을 수행하는 클래스
Servlet과 비슷한 모습을 보임 (init, destroy, doFilter)
처리내용
Request : 보안관련사항, 요청헤더와 바디 형식지정, 요청에 대한 log기록 유지
Response : 응답 스트림압축, 응답스트림 내용 추가 및 수정, 새로운 응답 작성
여러 가지 필터를 연결(chain / 서로 호출)하여 사용가능
DD설정(web.xml)
매핑하는방법이 두가지
url-pattern이 우선적용
Filter등록
<filter>
<filter-name>필터설정이름</filter-name>
<filter-class>필터를 구현한 클래스</filter-class>
<init-param> // filter에서 사용할 값 설정
<param-name>초기값설정이름</param-name>
<param-value>설정값</param-value>
</init-param>
</filter>
Filter-Mapping(url패턴과 매핑)
<filter-mapping>
<filter-name>등록된 필터이름</filter-name>
<url-pattern>요청한 페이지 형식</url-pattern>
</filter-mapping>
서블릿과 필터 맵핑(필터 적용 서블릿지정)
<filter-mapping>
<filter-name>등록된 필터이름</filter-name>
<servlet-name>적용할 서블릿명</servlet-name>
</filter-mapping>
클래스 설정(java코드)
public class 클래스명 implements Filter {
@Override
public void init(FilterConfig config) throws ServletException {
Filter호출시 작업 설정
}
@Override
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
필터링 작업할 내용
}
@Override
public void destroy() {
삭제시 작업 설정
}
}
@(annotation)적용 설정
@WebFilter를 활용하여 annotation으로 필터를 설정할 수 있음
필터를 구현한 클래스에 선언하면 됨
설정방법
구분 |
@WebFilter(“요청url”) |
@WebFilter(value=“요청url”) |
@WebFilter(urlPatterns=“패턴”) |
@WebFilter(servletNames=“서블릿이름”) |
@WebFilter(servletnames={“서블릿1”, “서블릿2”}) |
@WebFilter( urlPatterns=“url패턴”, initParams=@webInitParam(name=“이름”, value=“값”) ) |
반응형
'프로그래밍 > JSP' 카테고리의 다른 글
08.19(서블릿 래퍼) (0) | 2020.08.19 |
---|---|
08.18(서블릿 필터2) (0) | 2020.08.18 |
08.14(서블릿 리스너2) (0) | 2020.08.14 |
08.13(서블릿 리스너1) (0) | 2020.08.13 |
08.12(Deployment Descriptor(DD) 설정 - 리스너 설정) (0) | 2020.08.12 |