web.xml filter
1. filter description
web.xml 에 설정된 filter 는 url 호출시, 공통처리 업무를 담당 한다.
web.xml 에서 설정하며,
당연하겠지만 framework 의 servlet Intercept (예를들면 Spring 의 HandlerInterceptorAdapter ) 이전에 실행된다.
example
.
. 세부설정 상략
.
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
<init-param>
<param-name>logLevel</param-name>
<param-value>WARN</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
.
. 세부설정 하략
.
</web-app>
2. filter 중 UrlRewriteFilter
- 기능 : 특정 Url로 유입시(from), 지정한 Url(to) 로 재호출을 해준다.
- 설정 : UrlReWriteFilter 를 설정하면, /WEB-INF/urlrewrite.xml 파일이 생성된다. 이 파일에서 설정
example
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 2.6//EN"
"http://tuckey.org/res/dtds/urlrewrite2.6.dtd">
<urlrewrite>
<rule>
<desc>시스템 이름으로 들어오는 URL에 대해 메인 페이지로 이동함</desc>
<from>^/([a-zA-Z0-9]+)$</from>
<to type="redirect">%{context-path}/$1/common/main/loginForm.do</to>
</rule>
</urlrewrite>
$1 은 유입되는 주소를 의미한다. (세부설정은 내용이 다양해서 별도 post 로)
3. customer filter 작성
<filter-name>CustomerFilter</filter-name>
<filter-class>test.cmmn.filter.TestFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CustomerFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
모든 *.do url로 유입시, test.cmmn.filter.TestFilter 를 거친다.
기본적으로 TestFileter 는 Filter interface를 implements 한다.
Filter interface 는
public void init(FilterConfig filterConfig) throws ServletException;
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain ) throws IOException, ServletException;
public void destroy();
의 메소드로 구성되어 있다.
implements 하여 해당메소드를 구현하면 된다.
init - filter 호출시, 설정
doFilter - filter에서 처리해야할 작업처리
destory - filter 종료시 호출
Sample java code
package *******.cmmn.managed;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
/**
* @Class Name : AdmFilter
* @Description : 관리자모드 필터
* @author : ******
* @create : 2014. 05. 12.
*/
public final class AdmFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
// TODO Auto-generated method stub
}
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
}
@Override
public void destroy() {
// TODO Auto-generated method stub
}
}
add note : 기본적인 filter 수행에 dispatcher, chain 등 세부적으로 설정 및 확장하여, 활용할 수 있다.
(검색어 : [filter,dispatcher] [filter,chain] )
'java > coding' 카테고리의 다른 글
jQuery plugin 정리 (+ bootstrap color picker 포함) (0) | 2014.05.15 |
---|---|
[도움말] jQuery 1.4 chm (0) | 2013.10.24 |
taglib (el) 명령어 사전 (정리진행중) (0) | 2012.12.26 |