4

ServerResource を使用して HTTP GET 要求を処理する Restlet (v2.1.1) コンポーネントがあります。

リクエストが ServerResource に到達する前に何らかの処理を実行できるように、フィルターやルーターをコンポーネントに配置したいと考えています。

私はこれを行う例をインターネットで検索し、「Restlet in Action」という本を読んでいます。私は興味深いものを発見しました:

コンポーネント内で ServerResource を設定する方法の例はたくさんあります。

フィルターとルーターを作成および設定する方法の例はたくさんあります。

残念ながら、本やインターネットで検索しても、両方を使用した例は見つかりません!

本とインターネット上のチュートリアルによると、コンポーネントを作成し、コンポーネントに ServerResource を設定し、フィルタを使用して ServerResource に送られるリクエストを前処理できるはずです。これを行う方法を正確に教えてくれるドキュメントはどこにもないようです。

私はすべてを読み違えていますか?ServerResources を使用してコンポーネントにフィルターやルーターを配置する方法は本当にないのでしょうか? または、これを行う方法の実際の例を提供するドキュメントをどこかで見逃したことがありますか?

誰かが簡単な例を提供するか、これを行う例へのリンクを提供してもらえますか?

ありがとう...

4

1 に答える 1

6

フィルターをルーターにアタッチしてから、メソッドを使用して ServerResource をフィルターにアタッチする必要がありますsetNext(Class<? extends ServerResource> targetClass)

Filter myFilter = new MyFilter(getContext());
myFilter.setNext(MyServerResource.class);
router.attach("/test", myFilter);

beforeHandle(Request request, Response response)これで、フィルターのメソッドを使用して前処理できます。このメソッドで戻るCONTINUEと、フィルタはリクエストを ServerResource に渡します。

于 2013-01-28T12:22:20.963 に答える