私にはわかりませんが、IllegalStateExceptionが原因で元に戻すことができないと感じています。 JSPやその他のサーブレットをリクエストした場合、そのリクエストにフィルタを関連付ける必要があります。応答がすでにコミットされていれば、クライアントへの出力を変更することはできません。Java/Servlet WebスタックでIllegalStateExceptionを回避する
たとえば、mimetypeをresponse.setContent( "html")に設定した後、MIMEタイプを elseに設定する必要があるJSPに関連するフィルタがあります。 setContent( "image")または "xhtml"。しかし、私はIllegalStateExceptionを取得しますか?
コミットされた以前の応答をクリアする方法や、この問題を回避する方法がありますか?
これはwebsphereにあります。
これは問題ありませんが、J2EEの世界では、応答が変更される可能性が非常に高いです。基本的に私は出力のMIMEタイプなどを変更することは不可能です。 –
ここでは、摩擦(または検討する質問)です。どの時点で出力がクライアント(ブラウザ)に書き込まれますか。一度それが得られれば、戻ってくることはありません:-)最終的には、レスポンスオブジェクトは属性などを変更させません。 –
あなたはJSPを持っているとします。そのjspにフィルタがあります。フィルタの機能によっては、response.sendRedirectを実行する可能性があります。 Websphere 5.1では、明らかにJSPはデフォルトで既にrespをコミットしてmimetypeを設定しています。もしsendRedierctの上にIllegalStateがある場合は、 –