###クライアントは、AJAX非同期アクセスを使用しています
`Ajax`すなわち「非同期JavaScriptとXML」(非同期JavaScriptとXML)は、インタラクティブなWebアプリケーションを作成するために、Web開発技術を指します。
まず、AJAX要求を発行するために`jQuery`フレーム()`関数を提供した`$アヤックスを呼び出し、その後、` jQuery`ファイルを参照してください。
: `$アヤックス()`関数では、パラメータJSONオブジェクトの関数であり、従来の構成では、少なくとも5つのプロパティへのアクセスが必要
`url`: -要求を提出すると、値は相対パスであってもよいとすることができます絶対パスである。
- `data`:リクエストパラメータ、フォーマットの通常名前が「= VALUE1&名前=フォーマットの値2」;
- 'type`が:要求タイプ、通常POST`もしくは` GET`;
- ` dataType`: `text` /` json` / `xml`できるデータのタイプに応じて、サーバ側は 、 コンテンツタイプの応答ヘッダーに応じて決定される;
- 'SUCCESS`:成功応答(レスポンスコードがある場合のHttp 2XX )コールバック関数、関数パラメータはJSONオブジェクトJSON文字列変換サーバの応答が得られます。
ます。<script type = "text / javascriptの" SRC = "jqueryの-3.4.0.min.js"> </ SCRIPT> ます。<script type = "text / javascriptの"> $( "#のBTN-REG" ).click(機能(){ $アヤックス({ "URL": "ユーザー/ reg.do" 、 "データ": "ユーザ名=" + $( "#ユーザー名" ).val()、 "タイプ": "ポスト" 、 " dataTypeと":" JSON」、 "成功" :関数(JSON){ アラート( "状態=" + json.state); } }); }); </ SCRIPT>
1.レスポンスボディ###
要求がクライアントブラウザ、ブラウザインタフェースによって送信された場合、クライアントがサーバに要求を行うと、サーバーは、直接クライアントに応じて文字列に応答します表示する文字列に!
このアプローチを使用する利点があることである:もはやサーバ処理インターフェース、すなわち、応答要求を検討する必要はありませんが、クライアント・インターフェースに提示すべきか、プロセスの結果は、単にクライアントへの応答は、例えば、1は成功を示すとともに、 0はクライアントに対処する方法のように、失敗を示すと、これらの結果は、問題がサーバー側の懸念を必要としないことを示していると同時に、それは、このようなPC側では、携帯電話側、タブレットPCの終了など、複数のディスプレイの異なるクライアントの問題を解決し、機器の違いにより、ディスプレイはまた異なっている必要がありますので、これらの問題は、処理されるべき異なるクライアント開発者に引き渡さすることができます加えて、副次的な利点は、サーバは、トラフィックの消費量が小さくなります生成することであるためのレスポンスのボディページ長の内容に応じて、一定の長さよりもはるかに小さいです。
レスポンスボディのアプローチはコメントするリクエストを処理する方法の前にResponseBody` @ `追加することです。
@Controller @RequestMapping( "ユーザ" ) パブリック クラスUserControllerで{ @RequestMapping( "reg.do" ) @ResponseBody パブリック文字列REG(){ 戻り "ハロー" 。 } }
2.応答形式の体は###で
、クライアントへのすべての応答'0' or` 1 '、または唯一の特定の数ではない、クライアントの要求するので、より多くの結果を求めることができます!例えば、要求元のクライアントオブジェクトは、現在ログインしているユーザ等の情報のような特定のデータを得ることです。
あなたがクライアントにサーバーの応答データが必要な場合は、あなたが直接`「六2517575" `に応じて、例えば、文字列の上に直接書き込まれたデータの数に属性をすることはできませんがノークライアントは困難であったか、適切ではありません右に必要なさまざまな情報に文字列から!そのため、クライアントの身体に対するサーバの応答は、クライアントが、このテキストは、必要な情報を分割することができ受けることを確実にするために、特定の形式を持つ必要があります。
たとえば、あなたは、関連する情報を整理するためにXML構文を使用することができます。
<ユーザー> <名前>小六</名前> <年齢> 25 </年齢> <高さ> 175 </身長> <体重> 75 </重量> </ユーザー>
しかし、XMLの使用は、いくつかの問題があります:
1.構文は比較的複雑であり、文字のより多くを占め、
2を生成し、解析したデータは、比較的複雑であり、
現在では、業界では、データを整理するためにJSON形式を使用して、比較的提唱者です、例えば:
{ "名前": "小の六" 、 "年齢" 25 、 "高さ" 175 、 "重み":75 }
### 3. JSONデータ形式
JSONはJavascriptでのデータ型であるため、JSONデータ・フォーマットは、Javascriptが直接解決し、既定の言語です!
JSONデータ形式:
各JSONデータがオブジェクトである1、各オブジェクトは、 `` {}をフレームに使用されるべきである。
2.各オブジェクトは複数の属性を有していてもよく、属性名は、フォーマットが必要とする文字列でありますカンマで各属性を分離引用符をフレームに使用されるデータの種類に応じた属性値を決定することができる、フレームに引用し、
プロパティの前記値は、一連のデータであってもよいし、JSONの配列のパフォーマンスは、 `のアレイの使用を必要とします[] `フレームに、また、アレイを通して文法ループを組み合わせることができる属性の配列の配列長の長さによって得ることができる。
JSONは、主にデータを整理するために使用され、クライアントはJSONデータを受信し、ネットワークに転送され、データ自体を実際には、文字列では、 `この文字列のフォーマットはJSONデータ形式に沿ったものであることを、当然のことながら、JSONオブジェクトへのデータの文字列形式を変換` JSON.parse(文字列)を使用することができます。
4.クライアントJSON形式に応じてデータサーバ###
ResponseBody`アノテーション@コントローラを`追加する要求を処理する方法は、SpringMVC応答フレームがConverter` body`コンバータによって達成されます。
要求タイプを処理する方法の戻り値が`STRING`は、` ISO-8859コンバータのデフォルトをコードする、StringHttpMessageConverter` automatically`さ呼び出されている場合SpringMVCのデフォルトは、リターンの異なるタイプのいくつかのコンバータを内蔵しました-1`、そのため、デフォルトでは、中国をサポートしていません!
`Jackson`フレームワークは問題JSONレスポンスデータと直接サポート中国を解決することができます使用してください!アイテムが `Jackson`依存、リクエストコントローラ戻り値を処理する方法は、(STRING` not`例えば、)デフォルトでサポートSpringMVCの範囲内にある場合に加え、コールが直接SpringMVCフレーム` Jackson`体内に応じてコンバータ!
<! -ジャクソン- > <依存> <groupIdを> com.fasterxml.jackson.core </ groupIdを> <たartifactId>ジャクソンデータバインド</たartifactId> <バージョン> 2.9.8 </バージョン> </依存関係>
あなたは `Jackson`フレームワークを使用すると、あなたは、アノテーション駆動型のSpring構成ファイルを有効にする必要があります。
<! -注釈駆動型- > <MVC:アノテーション・ドリブン/>
具体的な使用が可能。
@RequestMapping( "reg.do" ) @ResponseBody パブリックユーザREG(){ ユーザーユーザ = 新しいユーザー(); user.setName( "小の六" ); user.setAge( 30 )。 user.setWeight( 80 )。 リターンユーザー; }
クライアントのブラウザによってアクセス提出するときは、レスポンスのボディは見ることができます:
{ "名前": "小刘老师"、 "年齢" 30、 "重み":80}
そして、 `Jackson`フレームはさらにに対する応答Headers`、応答タイプをmodified`:
コンテンツタイプ:アプリケーション/ JSON;のcharset = UTF-8
これは、クライアントがJSON形式の文字列で、中国をサポートし得る、です!
一般的に、各プロジェクトは、クライアントへのデータ・サーバのレスポンスのボディタイプを表すためのクラスを作成します。
パブリック クラスのResponseResult <T> { プライベート整数州; // ユーザか否かの操作の成功の数値的記述を使用して状態、 プライベート文字列メッセージ; // メッセージ、ユーザ・エラーの動作を説明する際に失敗理由 プライベート Tデータ; // クライアントにデータを提供するためのデータ }