0

JSP1 は JSP2 にリンクします。

JSP2は、いくつかのことを行い、次で終わるサーブレットを呼び出します。

response.sendRedirect(request.getHeader("referer"));
return;

この時点で、JSP2 に戻ります。問題は、そこからブラウザーの戻るボタンを押すと、ページが JSP1 に戻らずに単に再読み込みされることです。sendRedirect が履​​歴にエントリを追加するため、これは正しいことです。

しかし、JSP1に戻りたいです。任意のヒント?

4

1 に答える 1

6

さまざまな機密上の理由から、コントローラー アクションのリファラー ヘッダーにまったく依存しないでください。あなたはすでに少なくとも1つを見つけました。このヘッダーは常にクライアントから送信されるとは限らないか、その値が実際のリファラーを実際に表していない可能性があります。一部のブラウザ、プロキシ、およびウイルス対策の構成でさえ、リファラー ヘッダーを非表示にしたり、変更したり、難読化したりする場合があります。統計目的には最大で使用してください。

from代わりに をリクエスト パラメータとして渡します。

<input type="hidden" name="from" value="${pageContext.request.requestURI}" />

このロジックで(検証は省略)

response.sendRedirect(request.getParameter("from"));

または、他のリクエストパラメータに基づいて常に同じ JSP である場合は、サーバー側で完全にハードコード/構成するだけです。

于 2012-05-29T02:13:57.407 に答える