2021. 06. 14(月)TIL
14881 ワード
Ajax(Asynchronous JavaScript and XML)
特長
典型的な機能
XMLHttpRequest
Webブラウザ画面の後ろでWebサーバとHTTP通信でデータ交換を行うオブジェクト.
ページ全体の再ロードを必要とせず、Webページの一部をサーバから受信したデータに更新できます.
すべてのブラウザに内蔵されています.
(Chrome, Firefox, IE7+, Edge, Safari, Opera)
プライマリAPI
Property
XMLHttpReqestのreadyStateステータスが変更されるたびに発生するイベント
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
// 서버가 보낸 데이터 조회
// 데이터를 사용해서 HTML 컨텐츠 제작
// HTML 컨텐츠를 화면의 특정위치에 반영
}
}
XMLHttpRequestオブジェクトの現在の状態を返します.
0:要求が初期化されていません.
1:サーバに接続します.
2:サーバがリクエストを受信しました.
3:サーバが要求を処理しています.
4:サーバはリクエスト処理を完了し、応答データを送信する準備ができています.
要求されたHTTP応答コードを返します.
200 : OK
404 : Not Found
500 : Server Error
サーバから受信したデータは文字列を返します.
Summerから受信したデータはXML Documentオブジェクトに返されます.
Method
XMLHttpRequestオブジェクト
XMLHttpRequestオブジェクトを初期化します.
method : "GET", "POST"
url:要求URL
async:true(非同期動作)、false(同期動作)
user/password:ユーザー認証情報
サーバにリクエストを送信します.
POST方式の場合、HTTP要求メッセージのヘッダ情報を設定します.
xhr.open("POST", "test.jsp")
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
サーバにリクエストを送信します.(POST要求用)
xhr.send(「title=こんにちは&contents=こんにちは」);
JSON(JavaScript Object Notation)
特長
形式
オブジェクトシンボル
{name:value, name:value, name:value}
public class Book {
int no; String title; String writer; String publisher; int price;
}
{"no":10, "title":"이것이 자바다", "writer":"홍길동", "price":31000}
public class Team {
String name; List<String> members;
}
{"name":"트와이스", "members":["나연", "정연", "모모", "사나", "지효", "미나", "다현", "채영", "쯔위"]}
public class Student {
String name; Major major;
}
public class Major {
String name; String grade;
}
{"name":"홍길동", "major":{"name":"전자공학", "grade":"석사"}}
Map<String, Object> map = new HashMap<String, Object>();
map.put("keyword", "자바");
map.put("records", 3);
map.put("items", books) <- List<Book> books = bookDao.searchBooks(title);
{"keyword":"자바",
"records":3,
"items":[
{"title":"이것이 자바다", "publisher":"한빛미디어"},
{"title":"자바의 정석", "publisher":"한빛미디어"},
{"title":"생활코딩 자바편", "publisher":"한빛미디어"}
]
}
Arrayシンボル
String[] names = {"김유신", "강감찬", "홍길동"}
["김유신", "강감찬", "홍길동", "이순신"]
public class Category {
int no; String name;
}
List<Category> categories = categoryDao.getAllCategories();
[{"no":100, "name":"가구"}, {"no":"200", "name":"가전제품"}]
JavaとJavaScriptでJSON
格納されたデータは、
JSONテキストに変換して渡すことができます.
(google-gson、json-simpleなど)
JSONシンボルのテキストをJavaScriptオブジェクトと配列に変更できます.
JavaScriptのオブジェクトと配列をJSONシンボルのテキストに変更できます.
配列、List->[value,value,value,value]->JSON.parse配列
VO, Map <- {"name":value, "name":value} <- JSON.stringifyオブジェクト
配列,List<-[value,value,value,value]<-JSON.stringfiy配列
Reference
この問題について(2021. 06. 14(月)TIL), 我々は、より多くの情報をここで見つけました https://velog.io/@eastgun_/2021.-06.-14월-TILテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol