@GetMapping、@PostMapping、@PutMapping、@DeleteMapping、@PatMapping、@Request Mapping詳細解

1625 ワード

最近プロジェクトを書いていますが、急にcontroller層に@PostMappingと書く人がいます.これはよく使う@Request Mappingの私にとって、不思議な感じがします.インターネットでいくつかの資料を探しました.ここでまとめます.
Spring 4.3には、よく使われるHTTPメソッドのマッピングを簡略化し、注釈された方法の意味をよりよく表現するために、{@GetMapping、@PostMapping、@PutMapping、@DeleteMapping、@PatMapping}が導入されています.
  • @GetMapping:get要求を処理して、伝統的なRequest Mappingは@Request Mappingであるべきです.method=Request Method.GET)新しい方法は簡単に書くことができます.
  • @PostMapping:postリクエストを処理し、伝統的なRequest Mappingを作成するべきです.それは@Request Mapping(value=「/get/id」、method=Request Method.POST)の新しい方法です.
  • @PutMapping:PostMappingと同じように、サーバに情報を提出するために使用されます.情報を追加する場合は、@PostMappingを用いる傾向があり、情報を更新する場合は@PutMappingを用いる傾向がある.両者の違いはあまりはっきりしていません.
  • @DeleteMappingはURLマップを削除します.具体的には実践で使ったことがありません.いいところが分かりません.
  • @Patch Mappingは今までどのように使うか分かりません.どんなシーンで使いますか?知っている歓迎のメッセージや私信があります.
    上のすべてのmappingはあくまでも二つの要求です.つまり、postとget、Spinrgオフィシャルが多くの要求を導入している理由は、配置を簡略化しているからです.postとgetの違いは以下の通りです.まず、どのような場合にget要求ですか?
  • ブラウザのアドレスバーに直接にあるアドレスを入力します.
  • フォームのデフォルトの提出方式
  • どのような状況でポスト要請ですか?
  • フォームmethod=「post」
  • を設定します.
  • ajax type:‘post’、
  • ブラウザがurlで処理する要求をget要求としていますが、もしバックグラウンドの制限がpostでしか要求できない場合、以下のようなエラーが発生します.
    method not allowed,  The specified HTTP method is not allowed for the requested resource.
    
    get要求の特徴:a.要求パラメータは要求リソースパスの後ろに追加されます.少量のパラメータしか追加できません.(要求行は一行しかないので、約2 Kぐらいのデータは保存できません.)b.要求パラメータはブラウザのアドレスバーに表示されます.ルータは要求アドレス(極めて危険です.)cを記録します.中国語を転送すると、必ず文字化けします.(理由:get要求デフォルト符号化フォーマットは、IIO-859-1、バックグラウンド符号化フォーマットは、一般的にGBKまたはUTF-8)post要求の特徴:a.要求パラメータをエンティティコンテンツに追加すると、大量のパラメータが追加されます.b.比較的安全であるが、post要求は要求パラメータを暗号化しない(httpsプロトコルを使用してデータの安全を保証できる)