19

ユーザー名とパスワードを受け入れる簡単なフォームがあります。sendRedirect()ログインが有効な場合はページを1つのページにリダイレクトし、無効な場合は別のページにリダイレクトするためのメソッドを使用する必要があります。他のページが別のサーバーにあるので、使用する必要はsendRedirect()ありません。forward()使っていると気づきました

response.sendRedirect(response.encodeRedirectURL("FileName.jsp?paramName=" +value));

name = valueがURLに表示されているため、このメソッドをsendRedirect()使用しています。GET安全上の理由から、これらの値をURLに表示したくないので、これは私にとって望ましくありません。

POSTsendRedirect()を使用してこれらの値を取得する方法はありますか?必要な値を非表示にするメソッドを使用してフォームを作成しようとしましたPOSTが、それでも運がありません

何ができますか?ありがとう :)

4

6 に答える 6

14

いいえ、できません。私が見る唯一の(汚い)回避策は、非表示のフォーム(メソッドPOSTを使用)とこのフォームを送信するJavaScriptスクリプトを含む内部ページに転送することです。

于 2012-12-26T10:21:11.623 に答える
10

これはちょっと古いですが、ここで私はこれをうまく実行しました:

response.setStatus(307); //this makes the redirection keep your requesting method as is.
response.addHeader("Location", "http://address.to/redirect");

HTTP 307ステータスコードの説明については、http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.8を参照してください。

于 2014-04-17T08:57:20.427 に答える
2

javascriptを使用する

$('#inset_form').html('<form action="FlowService" name="form" method="post" style="display:none;"><input type="hidden" name="idapp" value="' + idApp + '" /></form>');
        document.forms['form'].submit();
于 2014-07-01T17:24:27.510 に答える
0

いいえ、HTTPリダイレクトは常にターゲットページにGETを使用します。

ただし、POSTデータはGETデータよりも安全ではありません。ユーザーは引き続きそれらを改ざんできます。代わりに、それらをセッションに保存してください。

于 2012-12-26T10:19:41.673 に答える
0

これを一度チェックしてください:

String url = "http://www.mysite/servlets/theServlet";
RequestDispatcher dispatcher = servletContext().getRequestDispatcher(url);
dispatcher.forward(request, response);
于 2012-12-26T10:22:21.997 に答える
0

パラメータを指定せずにsendredirectを使用し、セッションスコープのサーブレットでこれらのパラメータを非表示にします。リダイレクトされたページでこれらのパラメータが必要な場合は、このサーブレットで使用します。

于 2012-12-26T10:25:19.513 に答える