我可以将servlet分配给特定域吗?

时间:2012-03-07 07:52:25

标签: java servlets

我有两个CNAME-s指向同一台服务器。我想将一个servlet分配给第一个CNAME,将另一个servlet分配给第二个CNAME。我可以在web.xml中进行此操作(或者在没有手动解析ServletRequest的情况下进行其他操作)吗?

1 个答案:

答案 0 :(得分:2)

有一个filter的想法,其中有一个基于ServletRequest#getServerName()调度的条件,这个请求将适用于相应的servlet。

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)

}

显然,您可以在<init-param>web.xml动态设置域名,以便根据您的构建配置文件更改这些值。