springmvc の 5 つの一般的なアノテーション: 1. @RequestMapping、リクエスト アドレス マッピングの処理に使用されるアノテーション、2. @RequestParam、リクエスト パラメーター領(lǐng)域のデータを関數(shù)処理のパラメーターにマッピングするために使用されます。メソッド; 3. @PathVariable、リクエスト変數(shù)の設(shè)定に使用されます。
@RequestMapping
は、リクエスト アドレス マッピングを処理するために使用されるアノテーションです。
クラスとメソッドに適用されます。クラスで使用すると、リクエストに応答するクラス內(nèi)のすべてのメソッドがこのアドレスを親パスとして使用することを意味します。
Attribute
value
: リクエストの実際のアドレスを指定します。値は通常の特定の値にすることも、特定の変數(shù) (パス変數(shù)を含む URI テンプレート パターン)
は正規(guī)表現(xiàn)を含む値の型として指定できます (正規(guī)表現(xiàn)を含む URI テンプレート パターン)method
: 要求されたメソッドの種類 GET を指定します、POST、PUT、DELETE など。 consumes
: application/json、text/html など、リクエストを処理するための送信コンテンツ タイプ (Content-Type) を指定します。 generated
: 返されるコンテンツ タイプを指定します。リクエスト ヘッダーの (Accept) タイプに指定されたタイプが含まれる場合にのみ、返されます。 params
: 指定されたリクエストには特定のパラメータ値が含まれている必要がありますメソッドが処理できる前に headers
: このメソッドがリクエストを処理するには、指定されたリクエストに特定の指定されたヘッダー値が含まれている必要があります
??1.處理get請求:?@RequestMapping(value?=?"index",method?=?RequestMethod.GET) ??2.springboot錯誤處理(使用app客戶端返回json格式,使用瀏覽器返回html錯誤頁) ???@RequestMapping(produces?=?"text/html") ??3.方法僅處理request?Content-Type為“application/json”類型的請求 ???@RequestMapping(value?=?"/pets",?consumes="application/json") ??4.僅處理請求中包含了名為“myParam”,值為“myValue”的請求 ???@RequestMapping(value?=?"/pets/{petId}",?params="myParam=myValue")? ??5.僅處理request的header中包含了指定“Refer”請求頭和對應(yīng)值為“http://www.rxy.com/”的請求 ???@RequestMapping(value?=?"/pets",?headers="Referer=http://www.rxy.com/")
@RequestParam
は、リクエスト パラメーター領(lǐng)域のデータを関數(shù)処理メソッドにマッピングするために使用されます。
パラメーターに適用されるもの: メソッド パラメーター
屬性
値/名前
:両方の屬性はパラメータ名、つまり入力パラメータのリクエストパラメータ名を參照します(通常はフォーム名屬性) required
: 必須かどうかに関係なく、デフォルトは true です。リクエストには対応するパラメータが必要です。そうでない場合は、例外がスローされます。 defaultValue
: デフォルト値。リクエスト內(nèi)に同じ名前のパラメータがない場合のデフォルト値を示します。このパラメータを設(shè)定する場合、必須なのは次のとおりです。自動的に false
??如果是原子類型,不管加沒加注解,都必須有值,否則拋出異常,如果允許空值請使用包裝類代替 ??index(@RequestParam?Integer?num){}??表示該參數(shù)必須傳遞,值允許為空 ??表示該參數(shù)非必須,如果不傳則默認(rèn)為0 ??getPageData(@RequestParam(name="pageNum",defaultValue="0")?String?pageNo,?String?pageSize)
@PathVariable
に設(shè)定されます。リクエスト URL 內(nèi)のテンプレート変數(shù)をマップするために使用されます。関數(shù)処理メソッドのパラメータに移動します。つまり、uri テンプレート內(nèi)の変數(shù)を取り出します。パラメータとして
適用可能: メソッド パラメータ
屬性
値: 名前がメソッド パラメータと同じである場合は、URL テンプレート変數(shù)名を指定します。名前が異なる場合は、次のようにする必要があります。
????@RequestMapping("/index/{id}") ?????????public?String?index(@PathVariable("id")?String?sdf){ ???????????System.out.println(sdf); ???????????return?"index"; ?????}
@ResponseBody
このアノテーションは、Controller
メソッドによって返されたオブジェクトに適切な を渡すために使用されます。 HttpMessageConverter
が指定された形式に変換された後、Response
オブジェクトの body
データ領(lǐng)域に書き込まれます。デフォルトでは、springmvc
json
の形式で返されます (jackson
コンバータを使用します)
該當(dāng): 返されたデータが HTML タグを含むページではなく、他の形式のデータ (たとえば、 @
RequestBody HTTP リクエスト本文を適切な HttpMessageConverter オブジェクトに変換します
@
ResponseBody コンテンツまたはオブジェクトを返しますHTTP レスポンスボディとして、HttpMessageConverter に適したアダプタ変換オブジェクトを呼び出し、出力ストリーム
2 で、HttpMessageConverter によって返されたオブジェクト データを、コントローラのメソッドのパラメータにバインドします。
Applicable : リクエストの Content-Type のメソッド パラメータ: application/json、application/xml はこれを使用する必要があります。 注
application/x-www-form-urlencoded の場合、リクエスト メソッドが指定されている場合は必須です。
POST/GET メソッドではオプションです (つまり、@RequestParam、@ModelAttribute も処理できるため必須ではありません)
マルチパート/フォームデータの場合、@RequestBody はこの形式のデータを処理できません
屬性: required: 必須かどうか。デフォルトは true で、リクエストには対応するパラメータが必要であることを示します。そうでない場合は例外がスローされます
Example: 通常、このアノテーションを使用するフロントエンドは ajax リクエストを送信し、その後、 request 部分は次のとおりです:
?????????$.ajax({ ???????????type:?"POST", ???????????url:"/role/saveRole", ???????????contentType:"application/json", ???????????data:?JSON.stringify(_self.form)...注: contentType は省略できません。データは stringify を通じて json 文字列に変換する必要があります。
その後、対応するメソッドは次のように記述できます:
@RequestMapping(value?=?"/saveRole",method?=?RequestMethod.POST) public?String?saveRole(@RequestBody?People?requestJson)?{}フロントエンドがオブジェクトの配列を渡す場合、バックエンドは List
該當(dāng): メソッド パラメーター
獲取cookie中的JSESSIONID public?String?index(@CookieValue("JSESSIONID")?String?cookie){}@RequestHeaderリクエストをバインドできます。 リクエスト ヘッダー部分の値メソッドのパラメータにバインドされます
適用対象: メソッド パラメータ
獲取請求中Accept-Encoding值,返回gzip,?deflate,?br public?String?index(@RequestHeader("Accept-Encoding")?String?host){return?host;}
@ExceptionHandler
注解在方法上,表示該方法用于處理特定的異常,處理范圍是當(dāng)前類,如果想要全局捕獲異常,需要使用@ControllerAdvice
當(dāng)一個Controller中有多個HandleException注解出現(xiàn)時,那么異常被哪個方法捕捉呢?這就存在一個優(yōu)先級的問題
ExceptionHandler的優(yōu)先級是:在異常的體系結(jié)構(gòu)中,哪個異常與目標(biāo)方法拋出的異常血緣關(guān)系越緊密,就會被哪個捕捉到
屬性:value: 需要處理的異常類型集合(Class)
在當(dāng)前Controller有兩個處理異常的方法,當(dāng)訪問/index時,頁面顯示: json data
package?com.rxy.controller; @Controller public?class?HelloController?{ ???? ????@ExceptionHandler({?ArithmeticException.class?}) ????@ResponseBody ????public?String?handleArithmeticException(Exception?e)?{ ????????e.printStackTrace(); ????????return?"json?data"; ????} ???? ????@ExceptionHandler({?IOException.class?}) ????public?String?handleIOException(Exception?e)?{ ????????e.printStackTrace(); ????????//返回錯誤頁面 ????????return?"error"; ????} ????@RequestMapping("/index") ????public?String?index(){ ????????int?i?=?10?/?0; ????????return?"index"; ????} }
以上がspringmvc でよく使用される 5 つのアノテーションの使用の詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國語 Web サイトの他の関連記事を參照してください。

ホットAIツール

Undress AI Tool
脫衣畫像を無料で

Undresser.AI Undress
リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover
寫真から衣服を削除するオンライン AI ツール。

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中國語版
中國語版、とても使いやすい

ゼンドスタジオ 13.0.1
強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

SpringBoot と SpringMVC はどちらも Java 開発で一般的に使用されるフレームワークですが、それらの間には明らかな違いがいくつかあります。この記事では、これら 2 つのフレームワークの機(jī)能と使用法を調(diào)べ、その違いを比較します。まず、SpringBoot について學(xué)びましょう。 SpringBoot は、Spring フレームワークに基づいたアプリケーションの作成と展開を簡素化するために、Pivo??tal チームによって開発されました。スタンドアロンの実行可能ファイルを構(gòu)築するための高速かつ軽量な方法を提供します。

SpringBoot と SpringMVC の違いは何ですか? SpringBoot と SpringMVC は、Web アプリケーションを構(gòu)築するための 2 つの非常に人気のある Java 開発フレームワークです。これらは別々に使用されることが多いですが、両者の違いは明らかです。まず、SpringBoot は Spring フレームワークの拡張版または強(qiáng)化版とみなすことができます。 Spring アプリケーションの初期化と構(gòu)成プロセスを簡素化し、開発者を支援するように設(shè)計されています。

spring と springmvc の違い: 1. 位置付けと機(jī)能、2. コア機(jī)能、3. アプリケーション領(lǐng)域、4. 拡張性。詳細(xì)な紹介: 1. 位置付けと機(jī)能 Spring は、依存関係の注入、アスペクト指向プログラミング、トランザクション管理などの機(jī)能を提供する包括的なアプリケーション開発フレームワークであり、エンタープライズ レベルのアプリケーションの開発を簡素化するように設(shè)計されており、Spring MVC はそのSpring フレームワーク。そのモジュールは Web アプリケーションの開発に使用され、MVC パターンを?qū)g裝します。2. コア機(jī)能など。

SpringBootとSpringMVCはJava開発でよく使われるフレームワークで、どちらもSpringフレームワークで提供されていますが、機(jī)能や使用方法にいくつかの違いがあります。この記事では、SpringBootとSpringMVCそれぞれの特徴と違いを紹介します。 1. SpringBoot の特徴: 構(gòu)成の簡素化: SpringBoot は、構(gòu)成より規(guī)約の原則により、プロジェクトの構(gòu)成プロセスを大幅に簡素化します。プロジェクトや開発者に必要なパラメータを自動的に設(shè)定できます。

springboot と springmvc の違いは、1. 意味の違い、2. 構(gòu)成の違い、3. 依存関係の違い、4. 開発時間の違い、5. 生産性の違い、6. JAR パッケージ化機(jī)能の実裝方法の違い、7. バッチ処理の有無です。提供される機(jī)能、8. さまざまな機(jī)能、9. さまざまなコミュニティおよびドキュメントのサポート、10. デプロイメント記述子が必要かどうか。

インターセプタの役割 SpringMVC のインターセプタは、サーブレット開発におけるフィルタに似ており、プロセッサの前処理と後処理に使用されます。インターセプタが一定の順序でチェーン狀に接続されており、このチェーンをインターセプタチェーン(InterceptorChain)と呼びます。インターセプトされたメソッドまたはフィールドにアクセスすると、インターセプター チェーン內(nèi)のインターセプターが、以前に定義された順序で呼び出されます。インターセプターは、AOP のアイデアを具體的に実裝したものでもあります。インターセプターとフィルターの違い: フィルター (フィルター) インターセプター (インターセプター) の使用範(fàn)囲はサーブレット仕様の一部であり、任意の JavaWeb プロジェクトで使用できます。

SpringBoot と SpringMVC の類似點と相違點の分析 SpringBoot と SpringMVC は、Java 分野では非常に重要な開発フレームワークです。どちらも Spring フレームワークの一部ですが、使用方法と機(jī)能には明らかな違いがいくつかあります。この記事では、SpringBoot と SpringMVC を比較し、それらの類似點と相違點を分析します。まず、SpringBoot について學(xué)びましょう。スプリングボー

インターネットの発展に伴い、Web サービスはますます一般的になってきています。アプリケーション プログラミング インターフェイスとして、JavaAPI はさまざまなアプリケーション シナリオに適応するために新しいバージョンを常にリリースしています。 SpringMVC は、人気のあるオープンソース フレームワークとして、Web アプリケーションを簡単に構(gòu)築するのに役立ちます。この記事では、SpringMVC の設(shè)定、コントローラーの作成、使用方法など、JavaAPI 開発における Web サービス処理に SpringMVC を使用する方法を詳しく説明します。
