いくつかの値などをチェックするための別のjspファイルを含むjspファイルがあります。
<jsp:include page="setup.jsp" />
setup.jsp内に、セッションで必要な値が設定されているかどうかを判断し、設定されていない場合は別のページにリダイレクトする条件付きコードがあります。または、少なくともそうなるはずですが、リダイレクトは無視されているようです。
System.err.println("Redirecting!");
response.sendRedirect("http://www.google.com");
return;
「リダイレクト!」と表示されます。コンソールに記録されますが、ページは続行され、正常にレンダリングされます。ヘッダーをcurlダンプしてもらい、応答がHTTP/1.1 200 OK
正しいので、302リダイレクトを送信していないことを確認しました。
問題が何であるか、そしてどうすればこれを修正できるかについて何か考えはありますか?
編集:応答がまだコミットされていないことを確認しました。は、ステータスコードとヘッダーがまだ送信されていないことを意味しますresponse.isCommitted()
。false
編集2:response.sendRedirect()
他の多くの場所で電話をかけてみましたが、の前に正常にリダイレクトできることがわかりました。JSP内のリダイレクトは無視されているようです。また、jspの直後にリダイレクトしようとすると、応答がすでにコミットされているため、不正な状態の例外が発生します。