2016-06-22 2 views
0

何かを表示するにはGETを使用し、何かを変更するにはPOSTを使用する必要があります。たとえば、検索ページはGETを使用し、パスワードを変更するフォームはPOSTを使用する必要があります。Springで@PathVariableを使用してdb操作を実行する必要がありますか?

春に私たちは@PathVariableアノテーションを持っており、私たちのコントローラでアクセスすることができます。

私の質問は次のとおりです:1)私たちはコントローラーのパス変数を使用して、削除や更新のようなDB操作をURLではっきりと実行する必要があります。その要求をもう一度行います。

@RequestParamは、POSTメソッドで春にもGETメソッドでも使用できますが、PathVariableを使用してデータベースを変更しても問題ないことを知りたいと思います。

+0

パス変数を使用するかどうかは重要ではありません。何度も送信したい場合は、何回でもリクエストを送信できます。重要なことは、適切な動詞を使用することです。基本的にGET =取得または検索、POST =何かを作成、PUT =何かを更新、DELETE =何かを削除。 –

+0

GETを使用すると、変数付きのURLがクライアントブラウザに保存され、ユーザーはその要求を過ぎてパスの変数と同じように再度リクエストできますが、POSTメソッドの場合は実際にはアクセスできません – tinku

+0

Aユーザーは、スクリプトを書いたり、HTTPクライアントをインストールしたり、curlなどを使用して、送信したいすべての要求を送信することができます。パス変数を使用するかどうか。 GET、POST、PUT、DELETEを使用するかどうか。 –

答えて

0

@RequestParam、@RequestBody、または@PathVariableの問題ではありません。これらの3つの方法がツールを使用して自動化されていれば、データベース操作を行うために正しいユーザーロールがあるかどうかを確認する必要があります。論理の純粋なケース!

+0

あなたのアドバイスをいただきありがとうございます。明らかにユーザー役割の問題はもっと重要ですが、ユーザーを認証すれば、ブラウザにそのURLをコピーして貼り付けてください。 – tinku

+0

通常、通常のユーザーはこのような活動を行いません。誰かがそうしているなら、彼はそれを必要とするか、彼の「カルマー」として残す。結局、それは彼のものです。 –

0

@PathVariableまたは@RequestParamを使用しても問題ありません。

あなたが考えるべき重要な部分は、隠し入力フィールドを使用できるということです。また、@RequestParam注釈でキャッチすることもできます。

私はそれがあなたのURLに表示したいものと、あなたが「隠す」ものに依存していると言います。

関連する問題