Servlet(서블릿)은 자바(Java) 기반의 웹 애플리케이션을 개발할 때 사용되는 서버 측 프로그램으로,
클라이언트의 요청(HTTP 요청)을 처리하고 동적인 웹 페이지를 생성하는 역할을 합니다.

GET

- 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이라는 것을 알려준다
- 요청의 결과
- 브라우저
- postman


POST

- 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

- 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
}
- 응답 버퍼에 쿠키를 추가하는 방법
- 쿠키는 서버에서 클라이언트에 정보를 저장하는 방법
- postman으로 요청 시 쿠키가 추가된 것을 볼 수 있다

DELETE

- 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