0

私は JSP、サーブレット、および Tomcat を初めて使用します。サーバーの IP アドレスに複数のドメインを指定する場合、要求されたドメインに基づいて、関連するサーブレットをプログラムで呼び出す方法はありますか?

たぶん、web.xmlでできることはありますか?

知識不足で申し訳ありません-始めたばかりです:(

4

4 に答える 4

2

HTTP ホスト ヘッダーは、クライアントが要求したドメインを示します。

サーブレット API を介してこれを取得する方法は次のとおりです。

javax.servlet.http.HttpServletRequest.getHeader("host");
于 2012-05-10T13:36:06.800 に答える
1

同じWebアプリケーションが複数のドメインに応答するようにしたい場合は、ディスパッチャーサーブレットまたはディスパッチャーフィルターを使用することを検討してください。Struts2やSpringMVCなどのフレームワークは、これらの概念を使用して、リクエストを適切なサーブレットにルーティングします。ディスパッチャサーブレットを使用すると、任意の条件(この場合はホスト名)を使用して、適切なサーブレットにルーティングできます。

代わりに、別々のWebアプリケーションが異なるホスト名やIPアドレス(一般に仮想ホスティングと呼ばれる)に応答するようにしたい場合は、Tomcat仮想ホスティングを検討することをお勧めします。これは通常、ApacheやIISなどのWebサーバーをTomcatの前に置くことによっても処理されます。

于 2012-05-10T13:08:57.370 に答える
1

「RequestDispatcher」を使用して、リクエストを正しいサーブレットにリダイレクトします

于 2012-05-11T07:30:17.560 に答える
-2

次のようなものを使用します。

public void doGet(HttpServletRequest req, HttpServletResponse resp)
 throws IOException {

        // Get client's IP address
        String ipAddress = req.getRemoteAddr(); // ip 

        // Get client's hostname
        String hostname = req.getRemoteHost(); // hostname
    } 
于 2012-05-10T12:44:51.360 に答える