呼び出した後、応答オブジェクトにヘッダーを設定しようとしています
chain.doFilter()
ただし、ヘッダーは設定されません。chain.doFilter()を呼び出した後、コントロールがdoFilter()メソッドに戻ることはありますか?
呼び出した後、応答オブジェクトにヘッダーを設定しようとしています
chain.doFilter()
ただし、ヘッダーは設定されません。chain.doFilter()を呼び出した後、コントロールがdoFilter()メソッドに戻ることはありますか?
ただし、ヘッダーは設定されません。
これは、応答がすでにコミットされている場合に発生する可能性があります(読み取り:すべてのヘッダーを含む応答の最初の部分がすでにクライアントに送信されている場合。これは戻り値のないポイントです)。少し正気のservletcontainerはIllegalStateException
、すでにコミットされた応答にヘッダーを設定しようとすると、をスローします。これはサーバーログに表示されます。あなたはそれらを読んだことがありますか?
chain.doFilter()を呼び出した後、コントロールがdoFilter()メソッドに戻ることはありますか?
ブレークポイントまたはsysout/logger行を配置することで、自分で簡単に確認できます。しかし、確かに、コントロールは通常のJavaの方法に戻り、呼び出しからのキャッチされない例外がない限り、残りの行が実行されdoFilter()
ます。
具体的な機能要件に戻ると、応答がコミットされる前にヘッダーが設定されるようにコードを書き直す必要があります。具体的な機能要件はまったく詳しく説明されていないため、この回答でいくつかのヒントやキックオフの例を示すことはできません。最も簡単な方法は、を呼び出す前doFilter()
にヘッダーを設定することです。
リクエストフィルターは次のことができます。
応答フィルターは次のことができます。