
아래의 글은 BOOSTER 서포터즈로 활동하고 진오(jin***)님이
작성한 부스트코스 후기입니다.
여러분들의 성원에 더 노력하는 부스트코스가 되겠습니다.
감사합니다.
******************************************
1)링크: https://blog.naver.com/jinn_o/221815550758
2)작성날짜: 20/02/19
(본문 내용)
먼저, 웹 브라우저는 도메인과 포트번호를 이용해서 서버에 접속한다.
그리고 IP 주소라던지, Path 정보라든지 ... 하는 다양한 정보들을 포함한 요청 정보를 서버에 보낸다.
이 때 나오는 것이 HttpServletRequest 객체이다.
JAVA 공부를 해봤던 사람이라면, 객체지향방식이 뭔지 알 것이다.
HttpServletReqeust 객체와 HttpServletResponse 객체는,
각각 요청정보와 응답정보를 지닌 객체이다.
이렇게 전달된 객체는 doGet(), doPost(), Service() 같은 메서드에 파라미터로 전달이 된다.
(이전 포스팅 중에, 이와 관련된 내용을 미리 예고한 적이 있다.)
HTTP 동작방식 알아보기 : https://blog.naver.com/jinn_o/221777814303
위 포스팅에서, HTTP 요청객체와 응답객체는 각각 헤더와 바디로 나뉘고,
각각의 헤더와 바디에 어떤 내용들이 포함되어 있는지 자세하게 풀어 작성했다.
위 이미지와 같은 방식으로, 웹 브라우저와 웹 서버는 소통한다.
요청객체, 응답객체를 이용하여 소통하는 것이다.
이제, 요청 객체가 어떤 정보들로 어떻게 이루어져있는지 실습을 통해서 알아보자!
먼저, 요청 객체는 어떤 정보들로 구성되어 있을까?
항상 했던 데로 서블릿을 만들고 doGet() 메서드를 다음과 같이 바꾸어보자.
( 웹 어플리케이션 만드는방법? : https://blog.naver.com/jinn_o/221806593077 )
Enumeration 은 JAVA 에서 쓰이는 연속 배열 클래스 중 하나이다. 여기서는 헤더 정보를 끄집어내기 위한 수단으로 쓰이고 있다. 위에 해당하는 소스코드에 대해서 더 자세히 설명하지는 않겠지만,(JAVA의 영역이다.) 쉽게 설명하자면, 요청 객체의 정보들을 끄집어내기 위한 소스 코드이다.
< 결과화면 >
":" 이전 내용들은 요청 헤더에 해당하는 내용들이고
":" 이후 내용들은 해당되는 요청 헤더에 해당하는 요청 정보들이다.
정말 다양한 정보가 들어있다. 이러한 정보들을 가지고 요청에 대한 처리를 할 수 있는 것이다.
이번에는 이런 내용으로 소스코드를 작성해보겠다.
GET 방식으로 요청이 들어가는 방식중에서도, URL 파라미터를 이용해서 접속하는 방식이다.
<결과화면>
보면 URL 주소가
http://localhost:8080/firstweb/param?name=kim&age=5 라고 되어있다.
여기서 주목할 부분은 param?name=kim&age=5 이 부분이다.
param 파라미터로 name 이 kim 이고 age 가 5 인 파라미터가 GET방식으로 요청되었다는 의미이다.
+) 참고로, 앞 주소에 대한 의미는 다음과 같다.
http://localhost:8080/firstweb/param?name=kim&age=5
(해당 내용은 위에 링크해놓은 이전 포스팅에서 설명한 바 있다.)
이번에는 이런 소스코드를 작성해보자.
<결과화면>
이것 말고도 request.get 만 치면 그 뒤에 나오는 메서드들이 상당히 많다.
이를 이용해서 요청 정보의 다양한 정보들을 다 빼올 수 있다!
*********************************************