- HttpServletRequest
- HttpServletRequset의 메서드
1. HttpServletRequset
브라우저에 URL을 입력하고 요청하면 톰캣이 객체를 생성하고 요청한 데이터를 담는다. 데이터는 main 메서드의 매개변수로 제공된다.
1. URL 요청
2. 톰캣 객체 생성
3. 데이터를 객체에 담음
4. 메서드의 매개변수에 데이터 전달
5. request 객체 사용
main 메서드의 매개변수를 원하는대로 적을 수 있다. Servlet을 단독으로 사용할 때는 HttpServletRequest 써야 했지만 Spring에서는 쓰지 않아도 자동으로 객체에 담는다. 지금은 Servlet이기 때문에 HttpServletRequest request를 매개변수로 사용해야 한다. 이 결과로 메서드 안에서 request.*(request의 모든 메서드) 객체를 사용해서 원하는 정보를 이용할 수 있다.
2. HttpServletRequset의 메서드
HttpServletRequest에는 많은 메서드가 있다. getServerName(), getServerPort( ) 등... 전부 외울 필요는 없고 필요할 때 찾아서 쓰면 된다. 이 중에 기억해야 할 메서드는 getQueryString( )이다. '?'뒤 붙는 추가 데이터를 QueryString이라 한다.
QueryString은 name, value가 한 쌍으로 돼있다. 구분자는 '&'를 사용한다. QueryString의 value를 다루기 위해서 getParameter를 이용해야한다. QueryString에서 name "year"의 value "2021"를 갖고오기 위해서는 request.getParmeter("year")를 입력한다. 따라서 year 변수에 "2021"값이 들어간다. 변수 year는 String이기 때문에 int yyyy = Integer.parseInt(year);로 형변환 한다.
request.getParameterMap( );은 아래와 같이 QueryString의 모든 값을 map에 담아서 출력한다.
* 참고
request.getParameterNames( );를 이용해서 QueryString의 모든 값을 출력할 수 있다. Enumeration(셈, 열거)은 Iteration의 구버전이다.
QueryString의 name이 "year"로 모두 같으면 어떻게 될까? name이 같으면 request.getParameterValues( );를 이용해 배열로 받을 수 있다. Values에 's'가 붙어있으므로 배열임을 알 수 있다.
'스프링의 정석 > Ch. 02 Spring MVC' 카테고리의 다른 글
ch2_05. 클라이언트와 서버(3) (0) | 2023.04.12 |
---|---|
ch2_04. HTTP 요청과 응답 - 예제 (0) | 2023.04.10 |
ch2_03. HTTP 요청과 응답 - 실습 (0) | 2023.04.10 |
ch2_01. 원격 프로그램 실행 (0) | 2023.04.08 |
ch2_05. 클라이언트와 서버(2) (0) | 2023.04.03 |