Spring

[참고] 1-4. HttpServletRequest 객체의 메서드

지지 2022. 2. 6. 18:03

HttpServletRequest에는 여러 메서드가 있다. 그 중 자주 쓰이는 메서드들을 살펴보자.

 

<들어가기 전에>

  • 우리가 주소창에 정보를 요청할 때 물음표 뒤에 추가데이터가 오는데, 이를 QueryString(쿼리스트링)이라고 한다.
    • 쿼리스트링은 말 그대로 String 이기 때문에 값을 받을 때 String타입으로 받아줘야한다.
    • 쿼리스트링은 name, value한 쌍으로 이루어져 있다. ex) year, month, day는 name이고 2021, 10, 1은 value이다.

<1,2,3번 예제에 사용될 주소>

http://localhost:9000/ch2/requestInfo?year=2022&month=2&day=6

 

<4번 예제에 사용될 주소>

http://localhost:9000/ch2/requestInfo?year=2022&year=2023&year=2024

1. getParameter()

  • name에 해당하는 데이터를 넣어주면 그 데이터에 해당하는 value값을 얻을 수 있다.
String year = request.getParameter("year");
String month = request.getParameter("month");
String day = request.getParameter("day");

System.out.println(year); //2022
System.out.println(month); //2
System.out.println(day); //6

 

  • 만약 이렇게 문자열로 저장된 숫자 데이터를 int 타입으로 바꾸고 싶다면 Integer.parseInt() 메서드를 통해 바꿔주면 된다.
//위 문자열을 숫자로 바꿔준다.
int yyyy = Integer.parseInt(year);
int mm = Integer.parseInt(month);
int dd = Integer.parseInt(day);

 

2. getParameterNames()

  • 쿼리스트링 중 name값을 받을 수 있다.
Enumeration<String> enumeration = request.getParameterNames();
while ( enumeration.hasMoreElements()){
	String name = (String) enumeration.nextElement();
	System.out.println(name);
}

//출력결과
/* 
* year
* month
* day
*/

 

3. getParameterMap()

  • 쿼리스트링을 key, value형식의 Map으로 반환한다.
Set<String> keySet = request.getParameterMap().keySet();
for(String key: keySet) {
	System.out.println(key + ": " + request.getParameter(key));
}

//출력 결과
/*
* year: 2022
* month : 2
* day : 6
*/

 

4. getParameterValues()

  • 받고자 하는 쿼리스트링의 name이 같을 때 배열로 받을 수 있다.
String[] names = request.getParameterValues("year");
for(String name : names) {
	System.out.println(name);
}

//출력결과
/*
* 2022
* 2023
* 2024
*/

 

반응형