
Body Data는 Put과 Post만 있다
Get
package org.example.demo5;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.Cookie;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet("*.do")
public class DemoServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("doGet");
//
resp.setHeader("Content-Type", "text/html"); // header
PrintWriter out = resp.getWriter(); // auto flush 적용되어 있음
out.print("<html>");
out.print("<body>");
out.print("<h1>doGet</h1>");
out.print("</body>");
out.println("</html>"); // buffer에 들어감
}
}
➡
Servlet
가 데이터를 요청받는데➡
Servlet
의 HttpServletRequest
가 요청받은 파싱해서 데이터를 객체화한다➡
HttpServletResponse
에 보낼 데이터를 담는다⚠ 보낼 데이터를 담을 때 Header에 어떤 타입의 어떤 데이터인지 넣어서 함께 보내야한다 (❗컴퓨터는 어떤 타입의 어떤 데이터를 받게 될지 모르니까)
⬇ 데이터를 전송하게 되면?


➡ 잘 전송된 것을 확인할 수 있다
Post
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("doPost");
resp.setStatus(201); // http 상태코드
}

Put
@Override
protected void doPut(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("doPut");
Cookie cookie = new Cookie("c03", "apple");
resp.addCookie(cookie); // 기존에 있던 쿠키 건들지 않고 추가
Cookie cookie2 = new Cookie("c03", "banana");
resp.addCookie(cookie2);
// Set-Cookie : c03=apple;c03=banana
}

Delete
@Override
protected void doDelete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("doDelete");
resp.setStatus(302); // 해당 로케이션으로 이동하라
resp.setHeader("Location", "http://www.naver.com");
}
Location
만 줬을때
➡ value에 "http://www.naver.com" 가 들어감

Status(302)
상태 코드를 주면?
➡
Redirection
되서 Location
키 값인 "http://www.naver.com”로 이동하게 됨
Share article