[Web] ์น ๊ฐ๋ฐ์์ ๋๊ธฐ ์์ฒญ๊ณผ ๋น๋๊ธฐ ์์ฒญ: GET, POST, ๊ทธ๋ฆฌ๊ณ jQuery ํ์ฉ๋ฒ
1. ๋๊ธฐ ์์ฒญ vs ๋น๋๊ธฐ ์์ฒญ
โด๏ธ ๋๊ธฐ ์์ฒญ(GET)
: ํ์ด์ง๋ฅผ ์๋ก ๋ก๋ํ๋ฉด์ ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๋ ๋ฐฉ์
:์์ฒญ์ด ์๋ฃ๋ ๋๊น์ง ํ์ด์ง๊ฐ ๋ฉ์ถ๋ฉฐ, ์๋ฃ ํ ํ๋ฉด์ด ์๋ก ๋๋๋ง ๋จ
Ex) ์นํฐ ํ์ด์ง ์ด๋
โด๏ธ ๋น๋๊ธฐ ์์ฒญ(POST)
: ํ์ด์ง๋ฅผ ์๋ก ๋ก๋ํ์ง ์๊ณ , ์๋ฒ์ ๋ฐ์ดํฐ ํต์ ์ ํ๋ฉด์๋ ํ๋ฉด์ ์ ์งํ๋ ๋ฐฉ์
: ๋ฐ์ดํฐ๋ฅผ ๋น๋๊ธฐ์ ์ผ๋ก ์๋ฒ์ ์ ์กํ๊ณ ๊ทธ์ ๋ํ ์๋ต์ ๋ฐ์์ค๋ ๋ฐฉ์
Ex) ํ์๊ฐ์ , ์ค์๊ฐ ์ง๋ ๊ฒ์, ํฐ ๊ฒ์
2. GET๊ณผ POST์ ์ฌ์ฉ ์ํฉ
โด๏ธ GET : URL์ ํตํด ๋ฐ์ดํฐ๋ฅผ ์๋ฒ๋ก ์์ฒญ. ํ์ด์ง ์ด๋์ด ํ์ํ ๋ ์ฌ์ฉ
โด๏ธ POST : ์๋ฒ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ๋ ์ฌ์ฉ๋๋ฉฐ, ํ์ด์ง ์ด๋ ์์ด ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ณ ์๋ต์ ๋ฐ์
Ex) ํ์๊ฐ์ ํผ์ ์ ์ถ ํ ๋, ๋น๋๊ธฐ์ ์ผ๋ก ์๋ฒ์์
3. jQuery๋ฅผ ํ์ฉํ ๋น๋๊ธฐ ์ฒ๋ฆฌ
โด๏ธ $.ajax{} ๋ฉ์๋๋ฅผ ํตํด ๋น๋๊ธฐ ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์์ผ๋ฉฐ, ํ์ด์ง๋ฅผ ์๋ก๊ณ ์นจํ์ง ์๊ณ , ๋ฐ์ดํฐ๋ฅผ ์๋ฒ์์ ๋ฐ์์จ ํ UI๋ฅผ ๊ฐฑ์ ๊ฐ๋ฅ
โด๏ธ jQuery๋ JavaScript์ ๊ฐ๊ฒฐํ ๋ฌธ๋ฒ์ ์ ๊ณตํ์ฌ ๋น๋๊ธฐ ์์ฒญ์ ๊ฐํธํ๊ฒ ๊ตฌํํ ์ ์๊ฒ ๋์
4. ์น ์๋ฒ์ ๋น๋๊ธฐ ์ฒ๋ฆฌ
โด๏ธ Backend์์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ๋ @WebServlet์ ์ฌ์ฉํ์ฌ ์์ฒญ์ ์ฒ๋ฆฌ ๊ฐ๋ฅ
โด๏ธ ์๋ฒ์ ํด๋ผ์ด์ธํธ ๊ฐ์ ๋ฐ์ดํฐ ํต์ ์ ํจ์จ์ ์ผ๋ก ๊ตฌํ ๊ฐ๋ฅ
Ex) ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ์์ด๋๋ฅผ ์๋ฒ์์ ๋น๋๊ธฐ์ ์ผ๋ก ํ์ธํ์ฌ "์์ด๋ ์ฌ์ฉ ๊ฐ๋ฅ/๋ถ๊ฐ"๋ฅผ ์ค์๊ฐ์ผ๋ก ๋ณด์ฌ์ฃผ๋ ๊ธฐ๋ฅ
5. ๋น๋๊ธฐ ์์ฒญ์ ํ์ฉํ ๋ฐ์ดํฐ ์ ๋ ฌ
โด๏ธ ๋น๋๊ธฐ ์์ฒญ์ ์ด์ฉํ์ฌ ์ค์๊ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฌํ๊ฑฐ๋ ํ์ด์ง๋ฅผ ์๋ก๊ณ ์นจํ์ง ์๊ณ ๋ค๋ฅธ ์กฐ๊ฑด์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๋ ๊ธฐ๋ฅ์ ๊ตฌํ ๊ฐ๋ฅ
Ex) ๊ธฐ๋ณธ SELECTALL ์ ์ ์ธํ ๋ค๋ฅธ ์กฐ๊ฑด์ ํตํด ๋ฐ์ดํฐ๋ฅผ ๋น๋๊ธฐ์ ์ผ๋ก ์กฐํํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ํ๋ฉด์ ํ์
์์
$.ajax({
type: "POST",
url: "/day034/check",
data: { mid: mid },
dataType: "text",
success: function(response) {
console.log("๋น๋๊ธฐ ์ฒ๋ฆฌ ์ฑ๊ณต[" + response + "]");
if (response == "true") {
result.text("์์ด๋ ์ฌ์ฉ ๊ฐ๋ฅ");
result.css("color", "green");
} else {
result.text("์์ด๋ ์ฌ์ฉ ๋ถ๊ฐ");
}
},
error: function() {
console.error("๋น๋๊ธฐ ์ฒ๋ฆฌ ์คํจ");
}
});