4

(いくつかの基準に基づいて) リクエストをさらに転送するだけのフロント コントローラーを作成したため、Grails アプリに通常とは異なるアーキテクチャを実装しました。また、http サーブレット リクエスト フィルターとしてロケール リゾルバーを実装しました。そして、転送されたリクエストが再びフィルターチェーンを通過することが判明しました。したがって、フローは次のようになります。

  1. grails アプリにリクエストが届く
  2. リクエストはフィルターを通過します
  3. フロントコントローラーはリクエストを受け取り、それをさらに転送します
  4. 転送されたリクエストは再びフィルタを通過します
  5. バックコントローラーがリクエストを受け取る

この投稿を書いている間に、問題を省略する方法を考え出しました (私の実装固有)。しかし、それでも私はなぜそれが起こるのか興味がありますか? フォワードは舞台裏で機能するはずです。Java EE 仕様では、この動作について何も述べていません ( forward javadoc )。

4

1 に答える 1

6

<filter-mapping>要素には forward<dispatcher>オプションがあります。含まれていますFORWARD。フィルターを適用するオプション (リクエスト、エラー、インクルード) をリストし、前に除外する必要があります。

于 2011-07-13T10:45:09.733 に答える