HttpServletResponse의 역할
기능을 알아보기 전에, 해당 객체가 어떤 역할을 하는지부터 알아야한다.
- HTTP 응답 메시지 생성 -> 응답 코드, 헤더, 바디 생성
- 편의 기능 제공 -> Cookie 나 Redirection
HttpServletResponse 가 제공하는 기능
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(name = "responseHeaderServlet", urlPatterns = "/response-header")
public class ResponseHeaderServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// [status-line]
response.setStatus(HttpServletResponse.SC_OK);
//[response-headers]
response.setHeader("Content-Type", "text/plain;charset=utf-8");
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // 캐시 무효화
response.setHeader("Pragma", "no-cache"); // 과거 캐시 무효화
response.setHeader("my-header", "hello");
// [Header 편의 메서드]
content(response);
cookie(response);
//redirect(response); -> 302 리다이렉트
// [message body]
PrintWriter writer = response.getWriter();
writer.println("OK");
}
private void content(HttpServletResponse response) {
response.setContentType("text/plain");
response.setCharacterEncoding("utf-8");
// response.setContentLength(2); // 생략시 자동 생성
}
private void cookie(HttpServletResponse response) {
//Set-Cookie: myCookie=good; Max-Age=600;
//response.setHeader("Set-Cookie", "myCookie=good; Max-Age=600");
Cookie cookie = new Cookie("myCookie", "good");
cookie.setMaxAge(600);
response.addCookie(cookie);
}
private void redirect(HttpServletResponse response) throws IOException {
//Status Code 302
//Location: /basic/hello-form.html
//response.setStatus(HttpServletResponse.SC_FOUND); //302
//response.setHeader("Location", "/basic/hello-form.html");
response.sendRedirect("/basic/hello-form.html");
}
}
참고로 리다이렉션 코드는 주석으로 설정해두었다.
HTTP 응답 메시지의 형태를 생각해보면 크게 어려운 내용은 없다. 단순하게 응답 메시지를 어떻게 만드는지만 잘 작성하면 된다.
마지막 body에 writer로 웹 페이지에 단순 텍스트 응답을 작성할 수도 있다.
'Spring > MVC' 카테고리의 다른 글
| [Spring] 회원관리 웹 애플리케이션 요구 사항 및 Servlet 구현 (A.K.A 타자연습) (0) | 2025.06.21 |
|---|---|
| [Spring] HTTP Response 데이터 처리하기 (0) | 2025.06.21 |
| [Spring] HTTP Request 데이터를 처리하는 3가지 방법 (0) | 2025.06.21 |
| [Spring] HttpServletRequest과 제공 메서드 (0) | 2025.06.20 |
| [Spring] Servlet - 서블릿이란? (0) | 2025.06.20 |