HttpServletResponse 기본 사용법

SHByun·2023년 1월 21일

강의 chap2-10


HttpServletResponse 기본 사용법

1. HttpServletResponse 역할

  • HTTP 응답 메시지 생성(HTTP 응답코드 지정(400,401,404..), 헤더 생성, 바디 생성)
  • 편의 기능 제공(Content-Type, 쿠키, Redirect)

2. 코드

@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(200); // 성공(기본)
        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"); // 사용자 커스텀

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

  • SC.XXXX으로 미리 정해져 있는 상수를 사용할 수 있다.

3. Header 편의 메서드

private void content(HttpServletResponse response) {
//Content-Type: text/plain;charset=utf-8
//Content-Length: 2
//response.setHeader("Content-Type", "text/plain;charset=utf-8");
    response.setContentType("text/plain");
    response.setCharacterEncoding("utf-8");
//response.setContentLength(2); //(생략시 자동 생성)
}

  • 위처럼 일일이 하는 것이 아니라 메서드를 통해 만들 수 있다.

4. 쿠키 편의 메서드

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); //600초
    response.addCookie(cookie);
}


  • Cookie라는 객체를 만들고 세팅을 한 후 addCookie를 하면 세팅이 된다.

5. Redirect 편의 메서드

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");
}

  • sendRedirect로 간편하게 지정할 수 있다.

출처

인프런 강의 - 김영한
스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1/dashboard

profile
안녕하세요

0개의 댓글