@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야돼.......(ㅋ)
'✍ 따뜻한 개발 공부' 카테고리의 다른 글
[Spring] DI의 장점이 무엇일까? / 인터페이스의 장점 (0) | 2022.08.03 |
---|---|
[JS] 자바 스크립트 연산자엔 어떤 게 있을까? / js의 비교 연산자 == 와 ===의 차이 (0) | 2022.07.31 |
[Servlet] 3.0 이전 버전에서는 서블릿 mapping을 어떻게 해야할까? / WEB.xml에서 서블릿 맵핑하는 방법 (0) | 2022.07.29 |
[CSS] float가 정확히 어떤 역할을 하는 걸까? (0) | 2022.07.28 |
[Servlet] 서블릿이란? / 서블릿, JSP 의 차이를 알아보자 🔍 (0) | 2022.07.27 |
댓글