Enumeration<String> e = request.getParameterNames();
while(e.hasMoreElements()){
e.nextElement();
}
※ Iterator 인터페이스 (반복자)
: 반복자, 배열 등의 내부 요소를 순회하는 객체① Map
Map<String, Object> map = new HashMap<>(); map.put("red","apple"); map.put("yellow","bannana"); Iterator keys = map.keySet().iterator(); while(keys.hasNext()){ String key = (String)keys.next(); String value = map.get(key).toString(); System.out.println(key+", "+value); } //////////////// 결과 red, apple yellow, bannana
② List
List<String> list = new ArrayList<>(); list.add("apple"); list.add("bannana"); Iterator values = list.iterator(); while(values.hasNext()){ System.out.println(values.next()); } /////////// 결과 apple bannana
웹 브라우저가 인코딩할 때 사용한 캐릭터 셋과 웹 서버가 디코딩할 때 사용한 캐릭터 셋이 같아야 한다.
웹 브라우저는 요청을 보내는 입력 폼 페이지의 캐릭터 셋을 사용해 인코딩한다.
request.setCharacterEncoding("utf-8"); //name 파라미터 값을 utf-8로 디코딩해서 가져온다.
- http 프로토콜의 데이터 영역을 인코딩할 때 사용할 캐릭터 셋을 지정한다.
- post 방식은 파라미터를 데이터 영역으로 통해 전달하므로 위 메소드가 적용된다.
- 하지만 get 방식은 요청라인에 url과 함께 쿼리 문자열로 파라미터를 전달하기 때문에 적용되지 않는 것이 원칙이다.
① URIEncoding="UTF-8"
② useBodyEncodingForURI="true" & request.setCharacterEncoding("utf-8");