[SB] 2. Servlet

최재원's avatar
Mar 19, 2025
[SB] 2. Servlet
Servlet(서블릿)자바(Java) 기반의 웹 애플리케이션을 개발할 때 사용되는 서버 측 프로그램으로,
클라이언트의 요청(HTTP 요청)을 처리하고 동적인 웹 페이지를 생성하는 역할을 합니다.
notion image

GET

notion image
  • postman으로 get요청을 한 결과
  • 어떤 데이터를 달라고 요청
  • 200 상태코드를 받을 수 있다
    • 200은 요청이 성공했다는 코드
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("doGet"); resp.setHeader("Content-Type", "text/html"); PrintWriter out = resp.getWriter(); out.println(""" <html> <body> <h1>do get</h1> </body> </html> """); }
  • servlet코드
  • 버퍼에 html을 담아서 보낸다
  • 헤더에 입력하는 Content-Type은 이 내용이 어떤 형식의 내용 인지를 설명하는 것이다
    • text/html → 보내는 문자열이 html이라는 것을 알려준다
  • 요청의 결과
    • 브라우저
      • notion image
    • postman
      • notion image

POST

notion image
  • postman으로 post요청을 한 결과
  • 어떤 데이터를 추가 하겠다는 요청
  • body데이터가 필요하다
  • 201 상태코드를 받을 수 있다
    • 201은 생성이 성공했다는 코드다
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("doPost"); resp.setStatus(201); // http 상태코드 }
  • servlet코드
  • 버퍼에 상태 코드 넣는 법

PUT

notion image
  • postman으로 put요청을 한 결과
  • 어떤 데이터를 수정해 달라는 요청
protected void doPut(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("doPut"); Cookie cookie = new Cookie("c03", "apple"); Cookie cookie2 = new Cookie("c04", "banana"); resp.addCookie(cookie); resp.addCookie(cookie2); // Set-Cookie : c03=apple;c04=banana }
  • 응답 버퍼에 쿠키를 추가하는 방법
    • 쿠키는 서버에서 클라이언트에 정보를 저장하는 방법
    • notion image
    • postman으로 요청 시 쿠키가 추가된 것을 볼 수 있다

DELETE

notion image
  • postman으로 delete를 요청한 결과
  • 어떤 데이터를 삭제해 달라는 요청
protected void doDelete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("doDelete"); resp.setHeader("Location", "http://www.naver.com"); resp.setStatus(302); // 해당 Location으로 이동 }
  • 리다이렉션 하는 방법
    • 리다이렉션 : 다른 url로 재요청을 하라
  • 리다이렉션에 필요한 것
    • 302 상태코드
    • Location 값
  • 클라이언트가 해당 응답을 받으면 Location주소로 재요청을 시도한다

전체 코드

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") // was가 이 깃발이 있는 servlet을 찾는다 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"); PrintWriter out = resp.getWriter(); out.println(""" <html> <body> <h1>do get</h1> </body> </html> """); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("doPost"); resp.setStatus(201); // http 상태코드 } @Override protected void doPut(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("doPut"); Cookie cookie = new Cookie("c03", "apple"); Cookie cookie2 = new Cookie("c04", "banana"); resp.addCookie(cookie); resp.addCookie(cookie2); // Set-Cookie : c03=apple;c04=banana } @Override protected void doDelete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("doDelete"); resp.setHeader("Location", "http://www.naver.com"); resp.setStatus(302); // 해당 Location으로 이동 } }
 
Share article

jjack1