Connectors
着信接続をリッスンするコンポーネントです。
Handlers
すべてのリクエストを処理するために使用される低レベルの桟橋メカニズムです。
Jetty はすべての有効なリクエストを送信します (HTTP の使用方法が不適切で、 のような結果になる可能性のあるリクエストのクラスがあります400 Bad Request
)。Server.getHandler()
関数固有のハンドラーには多くの種類があります。ニーズに最も適したものを選択して拡張するか、より一般化されたアプローチでハンドラーをラップします。
典型的なサーバーは、可能な動作のリストを示すために HandlerList または HandlerCollection を持つようにセットアップされます。
各ハンドラーは (順番に) ヒットし、そのハンドラーが実行したいことを決定した場合、実行できることを行います。
ハンドラーが実際に何かを生成した場合、 への呼び出しをbaseRequest.setHandled(true);
使用して、現在のハンドラーの後にこれ以上ハンドラーを処理しないように Jetty に指示します。
特定のハンドラーを特定のコネクターに制限する方法については、virtualhosts メカニズムを介して行われます。
VirtualHosts は、ContextHandler
特定のハンドラーに組み込まれた概念であるため、カスタム ハンドラーを でラップしてContextHandler
、VirtualHosts の利点を得ることができます。
これを使用するには、 を使用してコネクタに名前Connector.setName(String)
を付け@{name}
、ContextHandler
その特定のContextHandler
.
例:
ServerConnector httpConnector = new ServerConnector(server);
httpConnector.setName("unsecured"); // named connector
httpConnector.setPort(80);
ContextHandler helloHandler = new ContextHandler();
helloHandler.setContextPath("/hello");
helloHandler.setHandler(new HelloHandler("Hello World"));
helloHandler.setVirtualHosts(new String[]{"@unsecured"});