레이블이 Servlet/JSP인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Servlet/JSP인 게시물을 표시합니다. 모든 게시물 표시

2015년 1월 22일 목요일

서블릿 필터 어노테이션(Servlet Filter Annotation) 사용법,WebFilter,WebInitParam

서블릿 필터 어노테이션(Servlet Filter Annotation) 사용법,WebFilter,WebInitParam

서블릿 필터는 사용자의 요청을 JSP, Servlet등이 실행되기 전, 후에 가로챌 수 있는 기능이죠,
아래 예제를 참고하세요.
import javax.servlet.Filter;
import javax.servlet.annotation.WebFilter;
import javax.servlet.annotation.WebInitParam;

@WebFilter(filterName = "onjFilter",
urlPatterns = {"/*"},
initParams = {
    @WebInitParam(name = "addr", value = "seoul")})
public class OnjFilter implements Filter {
    public void init(FilterConfig config) throws ServletException 
    {
         this.fc = config;
    }
    public void doFilter(ServletRequest req, 
                          ServletResponse res, 
                 FilterChain chain) throws ServletException, IOException {
               HttpServletRequest httpReq = (HttpServletRequest) req;
               String ip = httpReq.getRemoteHost();
               System.out.println("IP Address is " + ip);
               chain.doFilter(req, res);
    }
     public void destroy() {// TODO Auto-generated method stub}
}


물론 위 처럼 어노테이션을 사용하지 않고 web.xml에서 아래와 같이 설정을 해도 가능하다.
<filter>
   <filter-name>onjFilter</filter-name>
   <filter-class>filter.OnjFilter</filter-class>
</filter>
<filter-mapping>
   <filter-name>onjFilter</filter-name>
   <url-pattern>*.jsp</url-pattern>
</filter-mapping>