필터

suyeon lee·2021년 3월 10일
0

JSP

목록 보기
20/24

클라이언트와 서버사이에서 request와 response객체를 먼저 받아 사전/사후작업등 공통적으로 필요한 부분을 처리하는것을 말함
Filter인터페이스는 자바클래스를 생성하고,web.xml파일에등록한다

1.인터페이스 구현

자바 클래스 구현시 implements Filter 해줘야함

import javax.servlet.Filter;

public class 클래스명 implements Filter {

}
  • Filter 인터페이스 메소드 종류
    init() - 필터 인스턴스의 초기화 메소드
    doFilter() - 필터 기능을 작성하는 메소드
    destroy() - 필터 인스턴스의 종료 전에 호출되는 메소드
package ch12.com.filter;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class AuthenFilter implements Filter {
	@Override
	public void init(FilterConfig filterConfig) throws ServletException {
		System.out.println("Filter01 초기화..."); //필터 설정시 최초1번실행
	}

	@Override
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain)	throws IOException, ServletException {
		System.out.println("Filter01.jsp 수행...");
		String name = request.getParameter("name");

		if (name == null || name.equals("")) {
			response.setCharacterEncoding("UTF-8");
			response.setContentType("text/html; charset=UTF-8");
			PrintWriter writer = response.getWriter();
			String message = "입력된 name 값은 null입니다.";
			writer.println(message);
			return;
		}
		filterChain.doFilter(request, response);-위쪽은 request시 수행 아래쪽은response시 수행
	}

	@Override
	public void destroy() {
		System.out.println("Filter01 해제...");
	}
}

2.wb.xml파일의 필터 구성

어떤필터가 어디에 적용되는지 알려주는 역할
< filter>와< filter-mapping>으로 구성

<filter>
		<filter-name>Filter01</filter-name>-필터이름설정
		<filter-class>ch12.com.filter.AuthenFilter</filter-class>-자바클래스 경로
</filter>
	<filter-mapping>
		<filter-name>Filter01</filter-name>-필터이름 
		<url-pattern>/ch12/filter01_process.jsp</url-pattern>-적용될 페이지경로
	</filter-mapping>

0개의 댓글