본문 바로가기
Framework & Library/Spring Boot

[Spring Boot] : HttpServletResponse 기본 사용법과 응답 코드

by 오주현 2022. 1. 20.
반응형

HttpServletResponse 기본 사용법과 응답 코드

HttpServletResponse는 인터페이스이며 ServletRequest를 상속받는다.

public interface HttpServletRequest extends ServletRequest {
}

실제로 확인해 보면 이렇게 인터페이스로 구현되어 있는 것을 확인할 수 있다.

추가로 공식 문서를 참고하면 이렇다.

 

Extends the ServletResponse interface to provide HTTP-specific functionality in sending a response. For example, it has methods to access HTTP headers and cookies.

The servlet container creates an HttpServletResponse object and passes it as an argument to the servlet's service methods (doGet, doPost, etc).

ServletResponse응답을 보낼 때 HTTP 관련 기능을 제공하도록 인터페이스를 확장하는 역할을 한다. HTTP 응답 코드 지정이나 헤더 생성 및 바디 생성을 한다고 보면 된다. 또, Servlet Container는 HttpServletResponse 객체를 생성하고 서블릿 서비스 메서드(doGet, doPost 등)에 인수로 전달한다.

 

Content-Type, 쿠키, Redirect 등 편의 기능도 제공한다.

HttpServletResponse 공식 문서 참고.)

 

response.setStatus(HttpServletResponse.SC_OK);//Http 응답 코드를 넣을 수 있다. 기본은 200이다.

이런 형식으로 Http 응답 코드 또한 넣을 수 있는데 SC_OK 값을 넣어줬다.

 

공식 문서에서 제공하는 필드 세부 정보를 참고하면 SC_OK는 static final int SC_OK 형식으로 되어 있고 정상적으로 요청에 성공했을 때 나타나는 응답 코드라고 하며 200으로 설정되어 있다고 한다.

SC_OK 공식 문서 참고

 

response.setHeader("Content-Type", "text/plain;charset=utf-8");

setHeader를 통해 주어진 키,벨류로 응답 헤더를 설정할 수 있다.

 

Content-Type의 인코딩을 utf-8로 바꿔주었다.

 

PrintWriter writer = response.getWriter();

getWriter()는 IOException를 발생시킨다. IOException는 입출력 예외처리라고 보면 된다.

 

getWriter()는 클라이언트에 문자를 보낼 수 있는 PrintWriter 개체를 반환하며 getCharacterEncoding()에 의해 반환된 문자 인코딩을 사용한다.

getWriter 공식 문서 참고

 

response.setContentType("text/plain");
        response.setCharacterEncoding("utf-8");

Content 편의 메서드이다.

getCharacterEncoding()는 응답이 아직 커밋되지 않은 경우 클라이언트에 보내는 응답의 컨텐츠 유형을 설정해 준다. getCharacterEncoding()를 통해 클라이언트로 보내는 응답의 문자 인코딩을 utf-8로 설정해 줬다.

setContentType 공식 문서 참고

setCharacterEncoding 공식 문서 참고

 

Cookie cookie = new Cookie("myCookie", "good");
        cookie.setMaxAge(600);
        response.addCookie(cookie);

쿠키 편의 메서드이다.

 

public class Cookie implements Cloneable, Serializable {
}

쿠키는 class로 Cloneable, Serializable 두 인터페이스를 구현한다. ( 인터페이스를 상속 받는다고 안 쓰는 것 같은데 구현한다라고 표현하는 것 같아 구현한다라고 표현하겠다. )

Class Cookie 공식 문서 참고

 

response.sendRedirect("/basic/hello-form.html");

redirect 편의 메서드이다.

지정된 리다이렉션 위치 URL을 통해 클라이언트에 임시 응답을 보내주고 버퍼를 지워준다.

[sendRedirect 공식 문서 참고](https://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletResponse.html#:~:text=    Sends a temporary redirect response to the client using the specified redirect location URL and clears the buffer.)

반응형

댓글