Request
: HTTP Request(์์ฒญ)๋ ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ๋ก ๋ณด๋ด๋ ์์ฒญ ๋ฉ์์ง๋ก, ์น ๋ฆฌ์์ค์ ๋ํ ๋์(GET, POST, ๋ฑ) ๋ฐ ํด๋น ๋ฆฌ์์ค์ ํจ๊ป ์ ๋ฌ๋๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ํฉ๋๋ค.
Overview
โข
ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ๋ก ์์ฒญ์ ๋ณด๋ด๋ ๋ฐฉ๋ฒ
โฆ
๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ์์ฒญ ๋ณด๋ด๊ธฐ
โฆ
API ๊ฐ๋ฐ ๋ฐ ํ
์คํธ ๋๊ตฌ๋ฅผ ํตํด ์์ฒญ ๋ณด๋ด๊ธฐ
โช
Postman
โช
Thunder Client
โข
Thunder Client ๋ก ์์ฒญ ๋ณด๋ด๋ณด๊ธฐ
โข
์คํ๋ง ๋ถํธ๋ก ์๋ฒ์์ ์์ฒญ ๋ฐ์๋ณด๊ธฐ
โฆ
์์ฒญ ํ
์คํธ
โช
Thunder Client ๋ก ์์ฒญ ํ
์คํธ
โช
HTML form ํ๊ทธ๋ก ์์ฒญ ํ
์คํธ
ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ๋ก ์์ฒญ์ ๋ณด๋ด๋ ๋ฐฉ๋ฒ
โข
๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ์์ฒญ ๋ณด๋ด๊ธฐ
โข
API ๊ฐ๋ฐ ๋ฐ ํ
์คํธ ๋๊ตฌ๋ฅผ ํตํด ์์ฒญ ๋ณด๋ด๊ธฐ
๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ์์ฒญ ๋ณด๋ด๊ธฐ
โข
์ฃผ์ ํ์์ค์ URL ๋ฅผ ์
๋ ฅํ์ฌ ์์ฒญํ๊ธฐ
โข
FORM ์ ์ก ์์ฒญ ํ๊ธฐ
์ฃผ์ ํ์์ค์ URL์ ์ ๋ ฅํ์ฌ ์์ฒญํ๊ธฐ:
โข
HTTP ์์ฒญ ๋ฉ์๋: ์ผ๋ฐ์ ์ผ๋ก ๋ธ๋ผ์ฐ์ ์์ ์ฃผ์ ํ์์ค์ URL์ ์
๋ ฅํ์ฌ ์์ฒญ์ ๋ณด๋ผ ๋ ์ฌ์ฉ๋๋ HTTP ๋ฉ์๋๋ GET์
๋๋ค.
โข
ํน์ง:
โฆ
GET ๋ฉ์๋๋ ์๋ฒ๋ก๋ถํฐ ์ ๋ณด๋ฅผ ์์ฒญํ๊ณ ํด๋น ๋ฆฌ์์ค์ ๋ํ ์์ฒญ์ ๋ณด๋
๋๋ค.
โฆ
์ฃผ์ ํ์์ค์ ์ง์ ์
๋ ฅํ๋ฏ๋ก, ๋ธ๋ผ์ฐ์ ์ ์ํด ๊ฐ์ฅ ๊ฐ๋จํ๊ฒ ์์ฒญํ ์ ์์ต๋๋ค.
โฆ
์ฃผ๋ก ์นํ์ด์ง๋ฅผ ์์ฒญํ ๋ ์ฌ์ฉ๋๋ฉฐ, URL์ ์ฟผ๋ฆฌ ํ๋ผ๋ฏธํฐ๋ฅผ ํฌํจํ์ฌ ์ ๋ณด๋ฅผ ์ ๋ฌํ ์ ์์ต๋๋ค.
FORM ์ ์ก ์์ฒญํ๊ธฐ:
โข
HTTP ์์ฒญ ๋ฉ์๋: FORM ์ ์ก์์ ์ฌ์ฉ๋๋ ๊ธฐ๋ณธ ๋ฉ์๋๋ GET ๋๋ POST์
๋๋ค.
โข
ํน์ง:
โฆ
GET: ํผ ๋ฐ์ดํฐ๋ฅผ URL์ ์ฟผ๋ฆฌ์คํธ๋ง์ ํฌํจํ์ฌ ์ ์กํฉ๋๋ค. ์ฃผ๋ก ๋ฐ์ดํฐ ๊ฒ์์ด๋ ์กฐํ์ ์ฌ์ฉ๋ฉ๋๋ค. URL์ ๋ฐ์ดํฐ๊ฐ ๋
ธ์ถ๋๋ฉฐ ๊ธธ์ด์ ์ ์ฝ์ด ์์ต๋๋ค.
โฆ
POST: ํผ ๋ฐ์ดํฐ๋ฅผ HTTP ์์ฒญ์ ๋ณธ๋ฌธ(body)์ ํฌํจํ์ฌ ์ ์กํฉ๋๋ค. ๋ฐ์ดํฐ ๊ธธ์ด์ ์ ์ฝ์ด ์๊ณ , ๋ฏผ๊ฐํ ์ ๋ณด ์ ์ก์ ์ฌ์ฉ๋ฉ๋๋ค. ์์ ํ๊ณ ๋ฐ์ดํฐ๋ฅผ ๋
ธ์ถ์ํค์ง ์์ต๋๋ค.
<form action="/board/insert" method="POST" id="form">
<input type="text" name="title" placeholder="์ ๋ชฉ">
<input type="text" name="writer" placeholder="์์ฑ์">
<textarea name="content" cols="40" rows="5" placeholder="๋ด์ฉ"></textarea>
</form>
HTML
๋ณต์ฌ
GET vs POST
GET
์ฉ๋
โข
์๋ฒ๋ก ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ์ฌ ๊ฐ์ ธ์ค๋ ๋ฐ ์ฌ์ฉ๋จ.
โข
์ ๋ณด๋ฅผ ๊ฒ์ํ๊ฑฐ๋ ์กฐํํ ๋ ์ฌ์ฉ.
ํน์ง
โข
URL์ ์ฟผ๋ฆฌ ํ๋ผ๋ฏธํฐ๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌ
โข
๊ธธ์ด์ ์ ํ์ด ์์ด ํ์ ๋ ์์ ๋ฐ์ดํฐ ์ ๋ฌ์ ์ ํฉ.
โข
๋ธ๋ผ์ฐ์ ์์ ์บ์ฑ๋ ์ ์์ด, ๋ฐ๋ณต ์์ฒญ์ ์ ์ฉํจ.
POST
์ฉ๋
โข
์๋ฒ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ ๋ฐ ์ฌ์ฉ๋จ.
โข
์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ์์ฑํ๊ฑฐ๋ ์
๋ฐ์ดํธํ ๋ ์ฌ์ฉ.
ํน์ง
โข
๋ฐ์ดํฐ๋ฅผ HTTP ์์ฒญ์ ๋ณธ๋ฌธ(body)์ ํฌํจํ์ฌ ์ ๋ฌ (๋ฐ์ดํฐ๊ฐ URL์ ๋
ธ์ถ๋์ง ์์).
โข
๋ฐ์ดํฐ ๊ธธ์ด์ ์ ํ์ด ์์ด ๋ ๋ง์ ์์ ๋ฐ์ดํฐ ์ ๋ฌ์ ์ ํฉ.
โข
๋ฏผ๊ฐํ ์ ๋ณด ์ ์ก์ ์ ํฉํ๋ฉฐ, ๋ณด์์ ์ํ HTTPS ์ฌ์ฉ ๊ถ์ฅ.
API ๊ฐ๋ฐ ํ ์คํธ ๋๊ตฌ๋ฅผ ํตํด ์์ฒญ ๋ณด๋ด๊ธฐ
API ๊ฐ๋ฐ ํ ์คํธ ๋๊ตฌ
: ๊ฐ๋ฐ์๊ฐ API๋ฅผ ๋ง๋ค๊ณ , ํ
์คํธํ๋ฉฐ, ๋๋ฒ๊น
ํ๋๋ฐ ๋์์ ์ฃผ๋ ์ํํธ์จ์ด ๋๊ตฌ์
๋๋ค.
์ข ๋ฅ
โข
Postman
โข
Thunder Client (VSCODE)
Postman
โข
API ๊ฐ๋ฐ, ํ
์คํธ ๋ฐ ๋ฌธ์ํ์ ๋๋ฆฌ ์ฌ์ฉ๋๋ ํ๋ซํผ.
โข
์ฌ์ฉ์ ์นํ์ ์ธํฐํ์ด์ค์ ๋ค์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ฌ API ํ
์คํธ ๋ฐ ๋๋ฒ๊น
์ด ์ฉ์ดํจ.
Thunder Client (VSCODE)
๊ฒฝ๋ Rest API ํด๋ผ์ด์ธํธ ์ต์คํ
์
์ผ๋ก, Visual Studio Code์ฉ์ผ๋ก ์ค๊ณ๋ ๊ฐ๋จํ๊ณ ๊น๋ํ ๋์์ธ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
Postman ์ผ๋ก ์์ฒญ ๋ณด๋ด๋ณด๊ธฐ
1.
New
2.
HTTP Request
3.
4.
Send
New
HTTP Request
Request ์์ฑ
1.
์์ฒญ ๋ฉ์๋ : GET
2.
URL : https://httpbin.org/get
Send
์๋ต ๋ฉ์์ง
{
"args": {},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate, br",
"Host": "httpbin.org",
"Postman-Token": "86f7879d-21ba-425e-a061-4d640b5dd900",
"User-Agent": "PostmanRuntime/7.31.1",
"X-Amzn-Trace-Id": "Root=1-6540f7d5-3e6af9f251d571d0093f073f"
},
"origin": "114.201.106.211",
"url": "https://httpbin.org/get"
}
JSON
๋ณต์ฌ
Thunder Client ๋ก ์์ฒญ ๋ณด๋ด๋ณด๊ธฐ
1.
VS CODE ์คํ
2.
ํ์ฅ: ๋ง์ผํ๋ ์ด์ค (Extension)
3.
Thnder Client ๊ฒ์
4.
์ค์น
5.
Thnder Client ์์ด์ฝ ํด๋ฆญ
6.
New Request
7.
8.
Send (์์ฒญ-Requset)
9.
๊ฒฐ๊ณผ ํ์ธ (์๋ต-Response)
๋ ์์ธํ ์ฌ์ฉ๋ฒ
์ค์น
โข
VS CODE ์คํ
โข
ํ์ฅ: ๋ง์ผํ๋ ์ด์ค (Extension)
โข
Thunder Client ๊ฒ์
Thunder Client ์์ด์ฝ ํด๋ฆญ
New Request
Request ์์ฑ
1.
์์ฒญ ๋ฉ์๋ : GET
Send
์๋ต ํ์ธ
์คํ๋ง ๋ถํธ๋ก ์๋ฒ์์ ์์ฒญ ๋ฐ์๋ณด๊ธฐ
โข
ํ๋ก์ ํธ ๊ตฌ์กฐ
โข
ํ๋ก์ ํธ ํ๊ฒฝ
โข
์์
ํ์ผ
โข
์คํ ๊ฒฐ๊ณผ
โฆ
์์ฒญ ํ
์คํธ
โช
GET
โช
POST
โช
PUT
โช
DELETE
ํ๋ก์ ํธ ๊ตฌ์กฐ
spring-request/
โโโ src/
โ โโโ main/
โ โ โโโ java/
โ โ โ โโโ com/
โ โ โ โโโ joeun/
โ โ โ โโโ springrequest/
โ โ โ โโโ controller/
โ โ โ โ โโโ BoardController.java
โ โ โ โโโ dto/
โ โ โ โ โโโ Board.java
โ โ โ โโโ ServletInitializer.java
โ โ โ โโโ SpringRequestApplication.java
โ โโโ resources/
โ โ โโโ application.properties
โ โ โโโ static/
โ โ โโโ templates/
โโโ build.gradle
ํ๋ก์ ํธ ํ๊ฒฝ
โข
Spring boot version : 3.3.5
โข
Group Id : com.aloha
โข
Artifact Id : spring-request
โข
Java version : JDK 17
โข
Packaging : WAR
โข
Dependency
โฆ
Spring Web
โฆ
Spring Dev Tools
โฆ
Lombok
์์ ํ์ผ
โข
build.gradle
โข
Board.java
โข
BoardController.java
โข
build.gradle
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
annotationProcessor 'org.projectlombok:lombok'
providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
SQL
๋ณต์ฌ
โข
Board.java
/**
* Board
* - ๊ฒ์๊ธ ์ ๋ณด
*/
@Data
@NoArgsConstructor
public class Board {
private int boardNo;
private String title;
private String writer;
private String content;
private Date regDate;
private Date updDate;
private int views;
public Board(String title, String writer, String content) {
this.title = title;
this.writer = writer;
this.content = content;
}
}
Java
๋ณต์ฌ
โข
BoardController.java
/**
* ๊ฒ์ํ ์ปจํธ๋กค๋ฌ
* - ๊ฒ์๊ธ ๋ชฉ๋ก - [GET] - /board
* - ๊ฒ์๊ธ ์กฐํ - [GET] - /board/10
* - ๊ฒ์๊ธ ๋ฑ๋ก ์ฒ๋ฆฌ - [POST] - /board
* - ๊ฒ์๊ธ ์์ ์ฒ๋ฆฌ - [PUT] - /board
* - ๊ฒ์๊ธ ์ญ์ ์ฒ๋ฆฌ - [DELETE] - /board
*/
@Slf4j // ๋ก๊ทธ ์ฌ์ฉ ์ด๋
ธํ
์ด์
// @Controller // ํด๋น ํด๋์ค๋ฅผ ์ปจํธ๋กค๋ฌ ์ญํ ๋ก ๋น๋ฑ๋ก
@RestController // @ResponseBody+@Controller : ํด๋น ํด๋์ค๋ฅผ REST API ์ปจํธ๋กค๋ฌ๋ก ๋น๋ฑ๋ก
@RequestMapping("/board")
public class BoardController {
/**
* ๊ฒ์๊ธ ๋ชฉ๋ก
* [GET]
* /board
* - response : boardList
* @return
* @throws Exception
*/
@GetMapping(value="")
public ResponseEntity<List<Board>> list() throws Exception {
log.info("[GET] - /board");
List<Board> boardList = new ArrayList<>();
boardList.add(new Board("์ ๋ชฉ1", "์์ฑ์1", "๋ด์ฉ1"));
boardList.add(new Board("์ ๋ชฉ2", "์์ฑ์2", "๋ด์ฉ2"));
boardList.add(new Board("์ ๋ชฉ3", "์์ฑ์3", "๋ด์ฉ3"));
return new ResponseEntity<>(boardList, HttpStatus.OK);
}
/**
* ๊ฒ์๊ธ ์กฐํ
* [GET]
* /board
* - response : board
* @param model
* @param boardNo
* @return
* @throws Exception
*/
@GetMapping(value="/{boardNo}")
public ResponseEntity<Board> read(@PathVariable("boardNo") int boardNo) throws Exception {
log.info("[GET] - /board/read");
Board board = new Board("์ ๋ชฉ1", "์์ฑ์1", "๋ด์ฉ1");
return new ResponseEntity<>(board, HttpStatus.OK);
}
/**
* ๊ฒ์๊ธ ์ฐ๊ธฐ ์ฒ๋ฆฌ
* [POST]
* /board
* - response :
* โ
์์ฒญ ์ฑ๊ณต : 200 OK "SUCCESS"
* โ ์์ฒญ ์คํจ : 400 Bad Request "FAIL"
* @param board
* @return
* @throws Exception
*/
@PostMapping(value="")
public ResponseEntity<String> insertPro(Board board) throws Exception {
int result = new Random().nextInt(2);
if( result == 0 ) {
return new ResponseEntity<>("FAIL", HttpStatus.BAD_REQUEST);
}
return new ResponseEntity<>("SUCCESS", HttpStatus.OK);
}
/**
* ๊ฒ์๊ธ ์์ ์ฒ๋ฆฌ
* [PUT]
* /board
* - response :
* โ
์์ฒญ ์ฑ๊ณต : 200 OK "SUCCESS"
* โ ์์ฒญ ์คํจ : 400 Bad Request "FAIL"
* @param board
* @return
* @throws Exception
*/
@PutMapping(value="")
public ResponseEntity<String> updatePro(Board board) throws Exception {
int result = new Random().nextInt(2);
if( result == 0 ) {
return new ResponseEntity<>("FAIL", HttpStatus.BAD_REQUEST);
}
return new ResponseEntity<>("SUCCESS", HttpStatus.OK);
}
/**
* ๊ฒ์๊ธ ์ญ์ ์ฒ๋ฆฌ
* [DELETE]
* /board
* - response :
* โ
์์ฒญ ์ฑ๊ณต : 200 OK "SUCCESS"
* โ ์์ฒญ ์คํจ : 400 Bad Request "FAIL"
* @param boardNo
* @return
* @throws Exception
*/
@DeleteMapping(value="")
public ResponseEntity<String> deletePro(@RequestParam("boardNo") int boardNo) throws Exception {
log.info("boardNo : " + boardNo);
int result = new Random().nextInt(2);
if( result == 0 ) {
return new ResponseEntity<>("FAIL", HttpStatus.BAD_REQUEST);
}
return new ResponseEntity<>("SUCCESS", HttpStatus.OK);
}
}
Java
๋ณต์ฌ
์คํ ๊ฒฐ๊ณผ
์์ฒญ ํ ์คํธ
โข
Thunder Client ๋ก ์์ฒญ ํ
์คํธ
โข
HTML form ํ๊ทธ๋ก ์์ฒญ ํ
์คํธ
โข
โข
โข
POST : http://localhost:8080/board
โฆ
Body Form title, writer, content
โข
โฆ
Body Form boardNo, title, writer, content
โข
DELETE : http://localhost:8080/board/10
Thunder Client ๋ก ์์ฒญ ํ ์คํธ
POST : http://localhost:8080/board
โข
Body Form title, writer, content
โข
Body Form boardNo, title, writer, content
DELETE : http://localhost:8080/board/10
Run Collection
HTML form ํ๊ทธ๋ก ์์ฒญ ํ ์คํธ
โข
build.gradle
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
Plain Text
๋ณต์ฌ
build.gradle ์์ ํ, [ํ๋ก์ ํธ ์ฐํด๋ฆญ] > [ํ๋ก์ ํธ ๋ค์ ๋น๋] ํด์ผ ํ๋ก์ ํธ ๋ค์ ๋น๋
โข
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>HTML form ํ๊ทธ๋ก ์์ฒญ ํ
์คํธ</title>
</head>
<body>
<h1>HTML form ํ๊ทธ๋ก ์์ฒญ ํ
์คํธ</h1>
<p>
POST, PUT, DELETE ๋ ์ค์ DB ์ ์ฐ๊ฒฐ์ด ์ ๋์ด ์๊ณ , <br>
๋๋ค์ผ๋ก SUCCESS, FAIL ์๋ตํฉ๋๋ค.
</p>
<hr>
<ul>
<li>GET : <a href="http://localhost:8080/board">http://localhost:8080/board</a></li>
<li>GET : <a href="http://localhost:8080/board/10">http://localhost:8080/board/10</a></li>
<li>
POST : <a href="http://localhost:8080/board">http://localhost:8080/board</a>
<ul>
<li>Body โก Form โก title, writer, content</li>
</ul>
</li>
<li>
PUT : <a href="http://localhost:8080/board">http://localhost:8080/board</a>
<ul>
<li>Body โก Form โก boardNo, title, writer, content</li>
</ul>
</li>
<li>
DELETE : <a href="http://localhost:8080/board">http://localhost:8080/board/10</a>
<ul>
<li>Body โก Form โก boardNo</li>
</ul>
</li>
</ul>
<hr>
<h2>- GET : http://localhost:8080/board</h2>
<form action="/board" method="GET">
<input type="submit" value="์์ฒญ">
</form>
<hr>
<h2>- GET : http://localhost:8080/board/10</h2>
<form action="/board/10" method="GET">
<input type="submit" value="์์ฒญ">
</form>
<hr>
<h2>- POST : http://localhost:8080/board</h2>
<h3>- Body โก Form โก title, writer, content</h3>
<form action="/board" method="POST">
<input type="text" name="title" placeholder="title" value="์ ๋ชฉ"> <br>
<input type="text" name="writer" placeholder="writer" value="์์ฑ์"> <br>
<input type="text" name="content" placeholder="content" value="๋ด์ฉ"> <br>
<input type="submit" value="์์ฒญ">
</form>
<hr>
<h2>- PUT : http://localhost:8080/board</h2>
<h3>- Body โก Form โก boardNo, title, writer, content</h3>
<!-- form ํ๊ทธ์์๋ method: GET,POST ๋ง ์ง์๋จ -->
<form action="/board" method="POST" id="form-put">
<input type="text" name="boardNo" placeholder="boardNo" value="10"> <br>
<input type="text" name="title" placeholder="title" value="์ ๋ชฉ"> <br>
<input type="text" name="writer" placeholder="writer" value="์์ฑ์"> <br>
<input type="text" name="content" placeholder="content" value="๋ด์ฉ"> <br>
<input type="button" value="์์ฒญ" onclick="update()">
</form>
<hr>
<h2>- DELETE : http://localhost:8080/board</h2>
<h3>- Body โก Form โก boardNo</h3>
<!-- form ํ๊ทธ์์๋ method: GET,POST ๋ง ์ง์๋จ -->
<form action="/board" method="POST" id="form-delete">
<input type="text" name="boardNo" placeholder="boardNo" value="10"> <br>
<input type="button" value="์์ฒญ" onclick="remove()">
</form>
<hr>
<script>
// ๊ฒ์๊ธ ์์ ์์ฒญ - JSON
function update() {
let request = new XMLHttpRequest()
// ์
๋ ฅ ์ ๋ณด
let form = document.getElementById('form-put')
let boardNo = form.boardNo.value
let title = form.title.value
let writer = form.writer.value
let content = form.content.value
// JSON
let data = {
'boardNo' : boardNo,
'title' : title,
'writer' : writer,
'content' : content
}
// ์๋ต ํ์ธ
request.onreadystatechange = function() {
// ์์ฒญ ์ฑ๊ณต
if( request.readyState == request.DONE && request.status == 200 ) {
let response = request.responseText
alert(response)
}
// ์์ฒญ ์คํจ
if( request.readyState == request.DONE && request.status == 400 ) {
let response = request.responseText
alert(response)
}
// ์๋ฌ ๋ฐ์
if( request.readyState == request.DONE && request.status == 500 ) {
alert('์๋ฒ์ธก ์๋ฌ ๋ฐ์')
}
}
// ์์ฒญ ์ค์
let url = 'http://localhost:8080/board'
request.open("PUT", url, true)
request.setRequestHeader("Content-Type", "application/json")
// JSON.stringify() : JavaScript ์ ๊ฐ์ฒด๋ฅผ JSON ๋ฌธ์์ด๋ก ๋ณํํ๋ ๋ฉ์๋
request.send( JSON.stringify(data) )
}
// ๊ฒ์๊ธ ์ญ์ ์์ฒญ - JSON
function remove() {
let request = new XMLHttpRequest()
// ์
๋ ฅ ์ ๋ณด
let form = document.getElementById('form-put')
let boardNo = form.boardNo.value
// JSON
let data = {
'boardNo' : boardNo,
}
// ์๋ต ํ์ธ
request.onreadystatechange = function() {
// ์์ฒญ ์ฑ๊ณต
if( request.readyState == request.DONE && request.status == 200 ) {
let response = request.responseText
alert(response)
}
// ์์ฒญ ์คํจ
if( request.readyState == request.DONE && request.status == 400 ) {
let response = request.responseText
alert(response)
}
// ์๋ฌ ๋ฐ์
if( request.readyState == request.DONE && request.status == 500 ) {
alert('์๋ฒ์ธก ์๋ฌ ๋ฐ์')
}
}
// ์์ฒญ ์ค์
let url = 'http://localhost:8080/board/' + boardNo
request.open("DELETE", url, true)
// JSON.stringify() : JavaScript ์ ๊ฐ์ฒด๋ฅผ JSON ๋ฌธ์์ด๋ก ๋ณํํ๋ ๋ฉ์๋
request.send()
}
</script>
</body>
</html>
HTML
๋ณต์ฌ