โข
doGet()
โข
doPost()
โข
doPut()
โข
doDelete()
HTTP ๋ฉ์๋ ์์ธ ์ค๋ช
๋ฉ์๋ | ์๋ธ๋ฆฟ ๋ฉ์๋ | ์ฉ๋ | ๋ฐ์ดํฐ ์ ๋ฌ | ๋ณธ๋ฌธ(body) | ํน์ง |
GET | doGet() | ์กฐํ | URL ํ๋ผ๋ฏธํฐ | X | URL ๊ธธ์ด์ ํ, ๋ฏผ๊ฐํ ์ ๋ณด ์ ๋ฌ ๊ธ์ง |
POST | doPost() | ๋ฑ๋ก | ๋ณธ๋ฌธ์ ํฌํจ | O | form ์์ฒญ(๋ฑ๋ก ์์ฒญ), ๋ก๊ทธ์ธ |
PUT | doPut() | ์์ | ๋ณธ๋ฌธ์ ํฌํจ | O | ๋น๋๊ธฐ ์์ฒญ |
DELETE | doDelete() | ์ญ์ | URL ํ๋ผ๋ฏธํฐ | X (์ผ๋ถํ์ฉ) | ์ญ์ ์์ฒญ ์ ํ์ธ ์ ์ฐจ ํ์ |
MethodServlet ์ฝ๋ ์์
GET ๋ฉ์๋
URL ํ๋ผ๋ฏธํฐ๋ก ์ ๋ฌ๋ ๋ฐ์ดํฐ๋ฅผ ์กฐํํฉ๋๋ค.
// GET
// - /method?name=๊น์กฐ์&age=20
// - ์์ฒญ ํ๋ผ๋ฏธํฐ : name, age
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
// ์์ฒญ
String name = request.getParameter("name");
int age = Integer.parseInt(request.getParameter("age"));
System.out.println("name : " + name);
System.out.println("age : " + age);
// ์๋ต
response.setContentType("text/html; charset=UTF-8");
PrintWriter writer = response.getWriter();
writer.println("<h1>name : " + name + "</h1>");
writer.println("<h1>age : " + age + "</h1>");
writer.flush(); // ์ถ๋ ฅ ๋ฐ๋ก ๋ณด๋ด๊ธฐ
} catch (Exception e) {
System.err.println("ํ๋ผ๋ฏธํฐ๊ฐ ์ฌ๋ฐ๋ฅด์ง ์์ต๋๋ค.");
}
}
Java
๋ณต์ฌ
์ค๋ช
: request.getParameter()๋ฅผ ์ฌ์ฉํ์ฌ URL ์ฟผ๋ฆฌ ํ๋ผ๋ฏธํฐ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
POST ๋ฉ์๋
ํผ ๋ฐ์ดํฐ๋ฅผ ๋ณธ๋ฌธ(body)์ ํฌํจํ์ฌ ์ ์กํฉ๋๋ค.
// POST
// - /method
// - body : username, password
// *
// Content-Type : application/x-www-form-urlencoded ๊ฒฝ์ฐ ํผ์์ฒญ์ผ๋ก ์ธ์ํ๊ณ
// request.getParameter()๋ฅผ ํธ์ถํ๋ฉด ๋ณธ๋ฌธ(body)์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์จ๋ค.
// *
// Content-Type : multipart/form-data ์ ๊ฒฝ์ฐ๋
// request.getParameter() ๋ก ์ ๋ฌ๋ ํ๋ผ๋ฏธํฐ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋ค!!!
// request.getPart("file") ๋ก ์ ๋ฌ๋ ํ์ผ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์์ผํ๋ค.
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// ์์ฒญ
String username = request.getParameter("username");
String password = request.getParameter("password");
System.out.println("username : " + username);
System.out.println("password : " + password);
// ์๋ต
response.setContentType("text/html; charset=UTF-8");
PrintWriter writer = response.getWriter();
writer.println("<h1>์์ด๋ : " + username + "</h1>");
writer.println("<h1>๋น๋ฐ๋ฒํธ : " + password + "</h1>");
}
Java
๋ณต์ฌ
์ค๋ช
: Content-Type์ด application/x-www-form-urlencoded์ธ ๊ฒฝ์ฐ request.getParameter()๋ก ๋ณธ๋ฌธ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค. multipart/form-data์ ๊ฒฝ์ฐ์๋ request.getPart()๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
PUT ๋ฉ์๋
JSON ํ์์ ๋ฐ์ดํฐ๋ฅผ ๋ณธ๋ฌธ์ ํฌํจํ์ฌ ์์ ์์ฒญ์ ์ฒ๋ฆฌํฉ๋๋ค.
// PUT
// - /method
// - ์ปจํ
์ธ ํ์
: JSON
// - ์์ฒญ ๋ณธ๋ฌธ(body)
// {"no" : "1", "title" : "์ ๋ชฉ", "content" : "๋ด์ฉ"}
protected void doPut(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// ์์ฒญ (JSON -> Map)
ObjectMapper mapper = new ObjectMapper();
ServletInputStream sis = request.getInputStream();
Map<String, Object> map = mapper.readValue(sis, new TypeReference<Map<String, Object>>() {});
String no = (String) map.get("no");
String title = (String) map.get("title");
String content = (String) map.get("content");
System.out.println("no : " + no);
System.out.println("title : " + title);
System.out.println("content : " + content);
// ์๋ต
response.setContentType("text/html; charset=UTF-8");
PrintWriter writer = response.getWriter();
writer.println("<h1>no : " + no + "</h1>");
writer.println("<h1>title : " + title + "</h1>");
writer.println("<h1>content : " + content + "</h1>");
}
Java
๋ณต์ฌ
์ค๋ช
: JSON ๋ฐ์ดํฐ๋ฅผ ํ์ฑํ๊ธฐ ์ํด Jackson ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ObjectMapper๋ฅผ ์ฌ์ฉํฉ๋๋ค. request.getInputStream()์ผ๋ก ๋ณธ๋ฌธ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ต๋๋ค.
DELETE ๋ฉ์๋
URL ํ๋ผ๋ฏธํฐ๋ก ์ ๋ฌ๋ ์๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ์ญ์ ์์ฒญ์ ์ฒ๋ฆฌํฉ๋๋ค.
// DELETE
// - /method?no=10
protected void doDelete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String noString = request.getParameter("no");
int no = 0;
try {
no = Integer.parseInt(noString);
} catch (Exception e) {
System.err.println("์ ํจํ์ง ์์ ๋ฒํธ์
๋๋ค.");
}
response.setContentType("text/plain; charset=UTF-8");
PrintWriter writer = response.getWriter();
writer.println(no + "๋ฒ ๊ธ์ ์ญ์ ํ์์ต๋๋ค.");
}
Java
๋ณต์ฌ
์ค๋ช
: URL ํ๋ผ๋ฏธํฐ๋ก ์ญ์ ํ ๋์์ ๋ฒํธ๋ฅผ ๋ฐ์ ์ฒ๋ฆฌํฉ๋๋ค. ์ญ์ ์์ฒญ ์ ์ฌ์ฉ์์๊ฒ ํ์ธ ์ ์ฐจ๋ฅผ ๊ฑฐ์น๋ ๊ฒ์ด ๊ถ์ฅ๋ฉ๋๋ค.
์ ์ฒด ์๋ธ๋ฆฟ ํด๋์ค
package method;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Map;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletInputStream;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
@WebServlet("/method")
public class MethodServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
// GET
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
String name = request.getParameter("name");
int age = Integer.parseInt(request.getParameter("age"));
System.out.println("name : " + name);
System.out.println("age : " + age);
response.setContentType("text/html; charset=UTF-8");
PrintWriter writer = response.getWriter();
writer.println("<h1>name : " + name + "</h1>");
writer.println("<h1>age : " + age + "</h1>");
writer.flush();
} catch (Exception e) {
System.err.println("ํ๋ผ๋ฏธํฐ๊ฐ ์ฌ๋ฐ๋ฅด์ง ์์ต๋๋ค.");
}
}
// POST
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
System.out.println("username : " + username);
System.out.println("password : " + password);
response.setContentType("text/html; charset=UTF-8");
PrintWriter writer = response.getWriter();
writer.println("<h1>์์ด๋ : " + username + "</h1>");
writer.println("<h1>๋น๋ฐ๋ฒํธ : " + password + "</h1>");
}
// PUT
protected void doPut(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ObjectMapper mapper = new ObjectMapper();
ServletInputStream sis = request.getInputStream();
Map<String, Object> map = mapper.readValue(sis, new TypeReference<Map<String, Object>>() {});
String no = (String) map.get("no");
String title = (String) map.get("title");
String content = (String) map.get("content");
System.out.println("no : " + no);
System.out.println("title : " + title);
System.out.println("content : " + content);
response.setContentType("text/html; charset=UTF-8");
PrintWriter writer = response.getWriter();
writer.println("<h1>no : " + no + "</h1>");
writer.println("<h1>title : " + title + "</h1>");
writer.println("<h1>content : " + content + "</h1>");
}
// DELETE
protected void doDelete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String noString = request.getParameter("no");
int no = 0;
try {
no = Integer.parseInt(noString);
} catch (Exception e) {
System.err.println("์ ํจํ์ง ์์ ๋ฒํธ์
๋๋ค.");
}
response.setContentType("text/plain; charset=UTF-8");
PrintWriter writer = response.getWriter();
writer.println(no + "๋ฒ ๊ธ์ ์ญ์ ํ์์ต๋๋ค.");
}
}
Java
๋ณต์ฌ


