<a href="https://exam.com">Example</ a>
ํ์ฌ ์ผ๋ก
์๋ฌด๋ฐ ์๊ฐ ์์ด ์ฌ์ฉํ๋ HTML์ ํ๊ทธ์ ๋ํด ์ข ์์ ๋ดค๋ค.
์์ฒญ ๊ฐ๋จํ๊ฑฐ์ง๋ง
<a href="https://exam.com">Example</ a>
์ด๋ฌํ ํํ๋ก ๋ค๋ฅธ ํ์ด์ง๋ก ์ด๋ํ๋ฉด method ๋ ์๋์ผ๋ก get ์์ฒญ์ผ๋ก ๋ณด๋ด๋ ๊ฒ์ธ๊ฐ ? ๋ผ๋ ์๋ฌธ์ด์๋ค.
๊ทธ๋์ ์์๋ณธ ๊ฒฐ๊ณผ
ใ ใ ใ ใ ์ด๋ ๊ฒ ๊ฐ๋จํ๊ฒ GPT๊ฐ ๋ต๋ณ์ ํด์คฌ๋ค.. ใ ใ
POST ์์ฒญ ๊ฐ์ ๊ฒฝ์ฐ๋ "form ํ๊ทธ" ๋ฅผ ์ด์ฉํ๋ฉด ๋๋ค.
JSP๋ก ์ ์ฒด์ ์ธ ์์๋ฅผ ๋ณด๋ฉด,
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.io.*" %>
<!DOCTYPE html>
<html>
<head>
<title>GET๊ณผ POST ์์ฒญ ์ฒ๋ฆฌ</title>
</head>
<body>
<%
// ์์ฒญ ๋ฐฉ์ ํ์ธ (GET ๋๋ POST)
String method = request.getMethod();
if (method.equalsIgnoreCase("GET")) {
// GET ์์ฒญ ์ฒ๋ฆฌ
out.println("<h1>GET ์์ฒญ์ด ๋์ฐฉํ์ต๋๋ค!</h1>");
String param1 = request.getParameter("param1");
if (param1 != null) {
out.println("<p>GET ํ๋ผ๋ฏธํฐ: " + param1 + "</p>");
}
} else if (method.equalsIgnoreCase("POST")) {
// POST ์์ฒญ ์ฒ๋ฆฌ
out.println("<h1>POST ์์ฒญ์ด ๋์ฐฉํ์ต๋๋ค!</h1>");
String username = request.getParameter("username");
String password = request.getParameter("password");
if (username != null && password != null) {
out.println("<p>POST ๋ฐ์ดํฐ: ์ฌ์ฉ์ ์ด๋ฆ - " + username + ", ๋น๋ฐ๋ฒํธ - " + password + "</p>");
}
}
%>
<h2>GET ์์ฒญ ์์</h2>
<!-- GET ์์ฒญ์ ๋ณด๋ด๋ ๋งํฌ -->
<a href="example.jsp?param1=exampleValue">GET ์์ฒญ ๋ณด๋ด๊ธฐ</a>
<h2>POST ์์ฒญ ์์</h2>
<!-- POST ์์ฒญ์ ๋ณด๋ด๋ form -->
<form action="example.jsp" method="post">
<label for="username">Username:</label>
<input type="text" id="username" name="username"><br>
<label for="password">Password:</label>
<input type="password" id="password" name="password"><br>
<button type="submit">Submit</button>
</form>
</body>
</html>
์ด๋ ๊ฒ ์ฌ์ฉํ๋ค.
POST ๊ฐ์ ๊ฒฝ์ฐ button์ ํด๋ฆญํ๋ฉด action ์์ฑ์ url๋ก POST ์์ฒญ์ด ๊ฐ๊ฒ ๋๋ค.
๋ด๊ฐ ํท๊ฐ๋ ธ๋ "ํฌ์ธํธ" ๋ฅผ ์ง์ด ๋ณด์๋ฉด,
๋ฆฌ์กํธ๋ฅผ ์ฌ์ฉํ ๋์ด๋ค.
๋ฆฌ์กํธ ๊ฐ์ ๊ฒฝ์ฐ๋ ์ผ๋ฐ์ ์ผ๋ก axios(์ธ๋ถ๋ผ์ด๋ธ๋ฌ๋ฆฌ) ๋๋ fetch(๋ด๋ถ๋ผ์ด๋ธ๋ฌ๋ฆฌ) api๋ฅผ ํ์ฉํด์ ์งํ์ ํ๋๋ฐ,
์ด๋ฅผ ํ์ฉํ์ฌ jsp์ ๋ค๋ฅด๊ฒ form ํ๊ทธ ๋๋ a ํ๊ทธ์ ๊ธฐ๋ฅ์ ๋ค๋ฅด๊ฒ ์ฌ์ฉํ๋ค.
Fetch๋ฅผ ํ์ฉํ ์ ์ฒด์ ์ธ ์์๋ฅผ ๋ณธ๋ค๋ฉด,
GET ์์ฒญ
import React, { useEffect, useState } from "react";
function MyComponent() {
const [data, setData] = useState(null);
useEffect(() => {
// ์ปดํฌ๋ํธ๊ฐ ๋ง์ดํธ๋ ๋ GET ์์ฒญ์ ๋ณด๋
fetch("/api/data")
.then((response) => response.json())
.then((data) => {
console.log("์๋ฒ๋ก๋ถํฐ ๋ฐ์ ๋ฐ์ดํฐ:", data);
setData(data);
})
.catch((error) => {
console.error("์๋ฌ ๋ฐ์:", error);
});
}, []); // ๋น ๋ฐฐ์ด์ด๋ฏ๋ก ์ปดํฌ๋ํธ๊ฐ ๋ง์ดํธ๋ ๋ ํ ๋ฒ๋ง ์คํ๋จ
return (
<div>
<h1>์๋ฒ ๋ฐ์ดํฐ</h1>
{data ? (
<pre>{JSON.stringify(data, null, 2)}</pre>
) : (
<p>๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ค๋ ์ค...</p>
)}
</div>
);
}
export default MyComponent;
POST ์์ฒญ
import React, { useState } from "react";
import axios from "axios";
function MyForm() {
const [username, setUsername] = useState("");
const [password, setPassword] = useState("");
const handleSubmit = (e) => {
e.preventDefault(); // form์ ๊ธฐ๋ณธ ๋์์ ๋ง์ (ํ์ด์ง ์๋ก๊ณ ์นจ ๋ฐฉ์ง)
// axios๋ฅผ ์ด์ฉํด POST ์์ฒญ์ ๋ณด๋
axios.post("/submit", { username, password })
.then(response => {
console.log("์๋ฒ ์๋ต:", response.data);
})
.catch(error => {
console.error("์๋ฌ ๋ฐ์:", error);
});
};
return (
<form onSubmit={handleSubmit}>
<label>
Username:
<input
type="text"
value={username}
onChange={(e) => setUsername(e.target.value)}
/>
</label>
<br />
<label>
Password:
<input
type="password"
value={password}
onChange={(e) => setPassword(e.target.value)}
/>
</label>
<br />
<button type="submit">Submit</button>
</form>
);
}
export default MyForm;
์ด๋ ๊ฒ ๋ณด์ฌ์ค ์ ์๋๋ฐ POST ๊ฐ์ ๊ฒฝ์ฐ form ํ๊ทธ๋ฅผ ํ์ฉํ์ง๋ง JSP์ฒ๋ผ ๋ฐ๋ก ์๋ฒ๋ก ์์ฒญ์ด ๊ฐ์ง ์๊ณ Fetch๋ฅผ ํตํด ์๋ฒ๋ก ์ด๋ํ๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
์ด๋ ๊ฒ ์ฝ๊ฐ์ ์ฐจ์ด๊ฐ ์๋ค.
์ด ์ฝ๊ฐ์ ์ฐจ์ด๋ฅผ ์ ๋๋ก ํ์ ํด๋์ง ๋ชปํ๋ฉด ์์ด๊ณ ์์ฌ ํฐ ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ์๋ ์๋ค๊ณ ์๊ฐํ๋ค.
์ด๋ฒ์๋ ๊ทธ๋ ๋ ์์ผ๋ก๋ ์ฌ์ํ ๊ฐ๋ ์ด๋ผ๋
"ํ์ค"
ํ๊ฒ ํ์ ํ๊ณ ๋ด ๊ฒ์ผ๋ก ๋ง๋ค์!!