コンテキスト ハンドラーを使用する方法はありますが、通常は 404 になるすべてのファイルをキャッチしないハンドルを使用する方法はありますか? URL をハンドラーにマップする ContextHandlers の HandlerList を作成していますが、キャッチされないものはすべて、ホームページを表す最後のハンドラーに移動するように見え、スラッシュの後には何もありません。現在 Home ハンドラーに送られる http://example.com/some_file_that_does_not_exist_and_should_return_a_404.jpgのようなリクエストではなく、パス上に何もない localhost へのリクエストがそのハンドラーに送られるようにします。
HandlerList handlers = new HandlerList();
handlers.setHandlers(new Handler[] {
Utils.createContextHandler(resourceHandler, "/static"),
Utils.createContextHandler(new Step1(), "/step1"),
Utils.createContextHandler(new Step2(), "/step2"),
Utils.createContextHandler(new Home(), "/") // <-- all 404s are going here
});
server.setHandler(handlers);
正規表現で設定する方法はありませんか? たとえば、tinyurl のようなものを実行していて、特定のハンドラーに動的なハッシュ タグまたは数値を送信したい場合はどうすればよいでしょうか? 5 桁かどうかを確認してハンドラー A に送信し、6 桁の場合はハンドラー B に送信できますか? それとも、正規表現を使用する独自のハンドラー リストを作成する必要がありますか? それとも、ホーム ハンドラーにロジックを入れて、奇妙なファイルをキャッチする必要がありますか?
私はdjangoのようなURLディスパッチ設定に慣れています。