728x90
728x90
필터 (Filter)
- 매번 요청 들어오는 값들을 확인하고자 할 때 사용함
· 브라우저에서 웹 서버로 요청되기 전에 검사
· 웹 서버에서 브라우저로 응답되기 전에 검사
- 필요한 경우에만 사용해도 됨
· 유용한 예시
: request.setCharacterEncoding("UTF-8");를 필터에서 설정해주면 서블릿에서 반복하지 않아도 됨
# Filter Life-Cycle
- init() : 처음 생성되는 과정
- doFilter() : 일하는 단계
- destroy() : 종료하는 단계
⇒ 생성자 → init()은 처음 연결되었을 때만 실행됨
doFilter()는 연결될 때마다 실행됨
destroy()는 메모리가 해제되면 실행됨
반응형
728x90
필터 생성 방법
1. Filter 인터페이스의 구현 클래스 생성
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | public class MyFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { System.out.println(">>> 필터 초기화 <<<"); } // 중요 ! @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { request.setCharacterEncoding("UTF-8"); // Filter에서 Servlet으로 보내려면 (밑 코드가 없으면 필터에서 걸려서 안넘어감) chain.doFilter(request, response); } @Override public void destroy() { System.out.println(">>> 필터 destory <<<"); } } | cs |
2. 해당 필터 구현 클래스를 사용하겠다고 web.xml 파일에 등록
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <!-- Filter 처리 --> <filter> <!-- 필터 이름 (임의로) --> <filter-name>myFilter</filter-name> <!-- 실제 패키지 + 클래스명 --> <filter-class>com.tenco.filter.MyFilter</filter-class> </filter> <filter-mapping> <!-- 위에서 지정한 필터 이름 --> <filter-name>myFilter</filter-name> <!-- 대상이 되는 요청 주소 : /*로 지정하면 모든 요청 주소에서 필터가 동작함 --> <url-pattern>/*</url-pattern> </filter-mapping> | cs |
320x100
반응형
'Java > JSP' 카테고리의 다른 글
[JSP] 파일 업로드 및 조회 (0) | 2023.04.06 |
---|---|
[JSP] 외부 라이브러리 없이 파일 업로드하기 (0) | 2023.04.06 |
[JSP] 쿼리 파라미터 방식 (쿼리 스트링) (0) | 2023.04.05 |
[JSP] Java web으로 SQL CRUD 구현하기 (0) | 2023.03.28 |
[JSP] JSTL (JSP Standard Tag Library) (0) | 2023.03.28 |