2012-03-07 3 views
1

두 개의 CNAME이 동일한 서버를 가리키고 있습니다. 하나의 서블릿을 첫 번째 CNAME에 할당하고 다른 하나를 두 번째 CNAME에 할당하려고합니다. web.xml (또는 ServletRequest의 수동 구문 분석을 사용하지 않고 다른 방법으로)을 수행 할 수 있습니까? 아이디어의특정 도메인에 서블릿을 지정할 수 있습니까?

답변

2

하나는 filter이 있고, 그 안에 할 것, 조건이 ServletRequest#getServerName()파견 적절한 서블릿에 대한 요청을 기반으로해야합니다.

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) 
throws IOException, ServletException { 
    ... 
    [other processing/validations] 
    ... 
    if(request.getServerName().equals("domain1.com")) 
     request.getRequestDispatcher("/servlet1").forward(request, response) 
    else 
     request.getRequestDispatcher("/servlet2").forward(request, response) 

} 

분명히, 당신은 당신이 당신의 빌드 프로필을 기반으로이 값을 변경할 수 있도록 동적 도메인을 설정하기 위해 web.xml<init-param>있을 수 있습니다.

관련 문제