元の URL に応じて異なるコンテンツを提供する単一の webapp のみが必要な場合は、単純にjavax.servlet.Filter. 最初に でフィルターを宣言しますweb.xml。
<filter>
<filter-name>DomainNameFilter</filter-name>
<filter-class>com.whatever.blah.DomainNameFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>DomainNameFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
DomainNameFilter次に、を実装するという名前のクラスを作成しますjavax.servlet.Filter。このdoFilter()メソッドでは、次のように元の URL を取得できます。
request.getServerName()
chain.doFilter(request, response);他のフィルターを使用している場合も忘れずに呼び出してください。元のドメイン名がわかったので、適切な応答を作成できます。doFilter()メソッドにドメイン固有の属性を次のように設定することで、これを行いました。
request.setAttribute("title", titleMap.get(request.getServerName()));
はtitleMap、のメソッドHashMapで DB からロードされるです。たとえば、JSP で値を使用するには、次のようにアクセスします。Filterinit()
<title><%=request.getAttribute("title")%></title>
実際の例を見たい場合は、http://thermodynamiccomputing.org/とhttp://fnode.xeiam.com/をチェックしてください。両方のこれらの Web サイトは、実際には、先ほど説明したフィルタリング手法を使用したまったく同じ Web アプリケーションです。