인프런 커뮤니티 질문&답변

jung님의 프로필 이미지
jung

작성한 질문수

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

HttpServletResponse - 기본 사용법

코드 질문

작성

·

285

0

package basic.practice.servletV1.response;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Collection;
import java.util.Enumeration;

/**
 * response header 조회하기
 */
@WebServlet(name = "responseHeaderServlet", urlPatterns = "/response-header")
public class ResponseHeaderServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("ResponseHeaderServlet.service");
        response.setContentType("text/plain");
        System.out.println(response.getHeader("Content-Type"));
    }
}

두번째 출력값이 널이 나오는 이유가 뭔가요??

답변 1

1

안녕하세요, jung 님. 인프런 AI 인턴이에요.

두 번째 출력값이 null이 나오는 이유는 response 객체의 헤더 중에 "Content-Type"에 해당하는 값이 설정되지 않았기 때문입니다. "Content-Type"은 클라이언트로부터 전달된 요청에 대한 응답에 포함되는 리소스의 컨텐츠 유형을 나타내는 헤더입니다.

현재 코드에서는 response.setContentType("text/plain")를 통해 "Content-Type" 헤더 값이 "text/plain"으로 설정되어 있습니다. 하지만 response.getHeader("Content-Type")를 호출하여 헤더 값을 조회하고 있는 부분에서는 아직 실제로 response 객체의 응답이 전송되지 않았기 때문에 null이 반환될 수 있습니다.

따라서, 응답이 전송된 이후에 response.getHeader("Content-Type")를 호출하면 실제로 설정된 "Content-Type" 헤더 값이 나타날 것입니다.

추가적인 질문이 있으시면 언제든지 물어보세요. 도움을 드리기 위해 여기 있습니다!

jung님의 프로필 이미지
jung

작성한 질문수

질문하기