



doFilter(ServletRequest req, ServletResponse res);Filter를 등록한다.
<filter>
<filter-name>*Filter 설정명*</filter-name>
<filter-class>*Filter 구현 Class명*</filter-class>
<init-param> // filter에서 사용한 값 설정
<param-name>*초기값 설정명*</param-name>
<param-value>*초기 설정값*</param-value>
</init-param>
</filter>
url 패턴과 Filter를 mapping한다.
<filter-mapping>
<filter-name>*등록된 Filter명*</filter-name>
<url-pattern>*요청할 페이지 형식*</url-pattern>
</filter-mapping>
Filter를 적용할 서블릿을 지정하여, 서블릿과 Filter를 mapping한다.
<filter-mapping>
<filter-name>*등록된 Filter명*</filter-name>
<servlet-name>*적용할 Servlet명*</servlet-name>
</filter-mapping>
mapping 방법이 두 가지이나, url-pattern이 우선 적용된다.
(참고) dispatcher처리
<filter-mapping>
<filter-name>*등록된 Filter명*</filter-name>
<url-pattern>*요청할 페이지 형식*</url-pattern>
<dispatcher>
REQUEST || INCLUDE || FORWARD || ERROR
</dispatcher>
</filter-mapping>Filter 인터페이스를 구현한 클래스 상단에 @WebFilter(url-pattern) 어노테이션을 추가한다.
@WebFilter("/first/*")
public class FirstFilter implements Filter {
*필터 동작 내용*
}
public class 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 {
*(Filtering 작업할 내용)*
}
@Override
public void destroy() {
*(삭제 시 작업 설정)*
}
}
public SampleWrapper(HttpServletRequest wrapper) {
super(wrapper);
}public SampleWrapper(HttpServletResponse wrapper) {
super(wrapper);
}(참고) 암호화 및 Bcrypt
위 그림처럼 중간에 패킷 정보를 빼내어 가져가는 해킹 기법인 ‘패킷스니핑’에 대비하여 개인 정보 등 보안에 민감한 데이터에는 암호화 처리가 필요하다.
서버는 양방향 암호화 처리를 한다.
저장한 서버도 관리자도 알아서는 안되는 고객의 개인 정보 등이 있을 수 있으므로 데이터베이스는 단방향 암호화 처리를 한다.
💡 BCrypt 암호화