HttpServletResponse

 

Java Servlet API에서 제공하는 인터페이스 중 하나로, 클라이언트에게 HTTP 응답을 보내는데 사용된다.

HttpServlet 클래스에서 상속 받아 사용할 수 있다.


HttpServletResponse 인터페이스는 다음과 같은 메서드를 제공한다.

 

  1. setContentType(String type): 응답의 컨텐츠 타입을 설정
    • 예를 들어 "text/html", "application/json" 등을 설정할 수 있다.
  2. setStatus(int sc): 응답의 HTTP 상태 코드를 설정
    • 200, 404, 500 등을 설정할 수 있다.
  3. setHeader(String name, String value): 응답 헤더를 설정
    • 예를 들어 "Content-Disposition", "Location" 등을 설정할 수 있다.
  4. getWriter(): 응답의 출력 스트림을 전달
    • 이 스트림을 사용하여 클라이언트에게 전송할 데이터를 작성한다.
  5. sendRedirect(String location): 클라이언트를 다른 URL로 리다이렉트한다.
  6. sendError(int sc, String msg): 에러를 보내고, 에러 페이지로 리다이렉트한다.
  7. addCookie(Cookie cookie): 응답에 쿠키를 추가한다.

또한, HttpServletResponse 인터페이스는 HTTP 응답의 속성(attribute)을 저장하고 가져올 수 있는 메서드를 제공한다.

이는 다른 서블릿에서 이 속성에 접근하여 값을 가져올 수 있고 이를 통해 서블릿 간의 데이터를 공유할 수 있다.

HttpServletResponse는 Servlet API의 핵심 요소 중 하나이며, 웹 응용 프로그램에서 클라이언트에게 응답을 보내는 데 사용된다.

 


아래 코드를 작성한 후 http://localhost:8080/response-header를 호출하면 다음과 같이 응답정보에 상태값과 헤더에 설정한 값이 들어가 있는 것을 확인할 수 있다.

package hello.servlet.basic.response;

import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

import java.io.IOException;
import java.io.PrintWriter;

@WebServlet(name="responseHeaderServlet", urlPatterns = "/response-header")
public class ResponseHeaderServlet extends HttpServlet {

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //[status-line] -- 응답의 첫번째는 status-line 이다.
       resp.setStatus(HttpServletResponse.SC_OK);

       //[response-header]
        resp.setHeader("Content-Type", "text/plain; charset=utf-8");
        resp.setHeader("Cache-control","no-cache, no-store, must-revalidate");
        resp.setHeader("Progma","no-cache");
        resp.setHeader("my-header","hello");

        PrintWriter writer = resp.getWriter();
        writer.println("ok");
    }
}

 

 

Git : https://github.com/ShinHenry/Basic-Servlet-Project.git

 

출처 : 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

 

+ Recent posts