작성
·
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"
헤더 값이 나타날 것입니다.
추가적인 질문이 있으시면 언제든지 물어보세요. 도움을 드리기 위해 여기 있습니다!