클라이언트와 서버사이에서 request와 response객체를 먼저 받아 사전/사후작업등 공통적으로 필요한 부분을 처리하는것을 말함
Filter인터페이스는 자바클래스를 생성하고,web.xml파일에등록한다
자바 클래스 구현시 implements Filter 해줘야함
import javax.servlet.Filter;
public class 클래스명 implements Filter {
}
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 해제...");
}
}
어떤필터가 어디에 적용되는지 알려주는 역할
< 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>