오봉이와 함께하는 개발 블로그

스프링 MVC 1 - HttpServletResponse 사용법 본문

BE/Servlet

스프링 MVC 1 - HttpServletResponse 사용법

오봉봉이 2022. 8. 10. 21:59
728x90

HttpServletResponse - 기본 사용법

  • 역할
    • HTTP 응답 메시지 생성
      • HTTP 응답 코드 지정
      • 헤더 생성
      • 바디 생성
  • 편의 기능 제공
    • Content-type 편리하게 지정
    • 쿠키 편리하게 생성
    • Redirect

코드

@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); // 200

        // response header
        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");

    }

  • 작성한 헤더 정보가 모두 들어있다.

편의 메서드

편의 메서드를 만들어서 설정하면 반복적으로 작성하는 작업을 줄여줄 수 있다.

Content 편의 메서드

@Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      content(response);
    }

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); //(생략시 자동 생성)
    }

쿠키 편의 메서드

@Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      cookie(response);
    }

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

Redirect 편의 메서드

@Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      redirect(response);
    }

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");
    }
출처 : 인프런 김영한 지식 공유자님 강의 - 스프링 MVC 1편 백엔드 웹 개발 핵심 기술
728x90
Comments