8

私のページに method=POST のフォームがあるとしましょう。現在、このフォームには、テキストボックス、チェックボックスなどのいくつかの基本的なフォーム要素があります。アクション URL はhttp://example.com/someAction.do?param=valueです。

これが実際には矛盾したことであることは理解していますが、私の質問は、実際に機能するかどうかです.

私の質問は次のとおりです。

  1. フォーム メソッドは POST であり、URL にもクエリ文字列 (?param=value) があるため、正しく機能しますか? つまり、受信ページ (someAction.do) で param=value を取得できますか?

  2. Java/JSP を使用してサーバー側の値にアクセスするとします。では、サーバー側で値を取得する方法は何ですか? param=value の値にアクセスする構文と、テキストボックス/ラジオ ボタン/チェックボックスなどのフォーム要素にアクセスする構文は同じですか?

4

3 に答える 3

1

1) はい、リクエストには両方が含まれるため、POST 変数と GET 変数にアクセスできます。したがって、それに応じて $_GET["param_name"] と $_POST["param_name"] を使用できます。

2) JSP を使用すると、次のコードを両方に使用できます。

<%= request.getParameter("param_name") %>

EL (JSP Expression Language) を使用している場合は、次の方法でも取得できます。

${param.param_name}

EDIT :param_nameがリクエスト QueryString と POST データの両方に存在する場合、両方が値の配列として返されます。最初のものは QueryString です。

このようなシナリオでは、getParameter("param_name)はそれらの最初の 1 つを返します (ここでgetParameterValues("param_name")説明されているように)が、次の方法でメソッドを使用してどちらも読み取ることができます。

String[] values = request.getParameterValues("param_name"); 

詳細については、こちらをお読みください

于 2014-12-21T03:43:52.683 に答える
0

このPOSTメソッドは、送信されたフォーム データをユーザーから隠すだけです。特別なツールを使用しない限り、サーバーに送信されたデータを確認することはできません。

このGET方法により、誰でもそのデータを確認できます。URL からデータを簡単に確認できます (例: クエリ文字列のキーと値のペアを確認することにより)。

言い換えれば、フォーム アクションでクエリ文字列を使用して (重要ではないかもしれない) データをユーザーに表示するのはあなた次第です。たとえば、データ テーブル フィルタで。現在のページネーションの状態を維持するにはdomain.com/path.do?page=3action. 、 などinputのフォーム コンポーネント内の他のデータを非表示にすることもできます。textarea

どちらのメソッドも同じ方法でサーバーにキャッチできます。たとえば、Java では、request.getParameter("page").

于 2016-01-10T16:54:05.807 に答える