본문 바로가기
✍ 따뜻한 개발 공부

[Servlet] Header의 정보는 어떻게 가져올까~?

by 따따시 2022. 7. 30.

@WebServlet("/header")
public class HeaderServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    public HeaderServlet() {
        super();
    }


	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html"); //응답을 어던 타입으로 할 건지 정해주기
		PrintWriter out = response.getWriter(); //응답 통로를 열어주는 작업. getWriter()는 출력스트림에 텍스트를 보내겠다는 뜻
		out.println("<html>");
		out.println("<head><title>form</title></head>");
		out.println("<body>");

		Enumeration<String> headerNames = request.getHeaderNames(); // HTTP 헤더 이름을 문자열로 반환
		while(headerNames.hasMoreElements()) {
			String name = headerNames.nextElement();
			String value = request.getHeader(headerName);
			out.println(name + " : " + value + " <br> ");
		}		
		
		out.println("</body>");
		out.println("</html>");
	}


	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		doGet(request, response); // doGet이 실행될 수 있도록
	}

}

 

 <코드 분석> 

 

1. PrintWriter out = response.getWriter();

 

PrintWriter 클래스는 바이트를 문자 형태 객체로 바꾸는 클래스

PrintWriter 클래스 객체 out을 생성하여 getWriter() 메소드를 통해 인스턴스를 얻기

 

2. request의 getHeaderNames() 메소드를 사용하여 HTTP Header의 이름들을 Enumeration 객체로 얻어오기

 

🔍 Enumeration (단어 뜻 말그대로 '열거')

데이터를 순차적으로 접근할 수 있게 해주어 데이터를 집합체 형태로 관리할 수 있게 해주는 기능

 

 

3. String name = (String)headerNames.nextElement();

nextElement(); 로 String타입 객체 name에 가져온 headerNames들을 순차적으로 넣어주기(값 추출중)

 

4. out.println(name + " : " + value + " <br> ");

name 과 value 값 추출하기

 

 

 

 

오늘의 코드 복습 후기

 

자바는 역시 중요해

자바를 계속 java야돼.......(ㅋ)

 

 

댓글