Потому что он возвращает String[]
, а не String
.Javadoc getParameterMap()
также сообщает, что:
Возвращает:
неизменяемый java.util.Map, содержащий имена параметров в качестве ключей и значения параметров в виде картыценности.Ключи в карте параметров имеют тип String. Значения в карте параметров имеют тип String array.
Таким образом, вам нужно рассматривать его как массив.Если вы хотите получить одно (первое) значение параметра, используйте request.getParameter()
.Вот переписывание:
for (String name : Collections.<String>list(request.getParameterNames())) {
String value = request.getParameter(name);
logger.log(name + ": " + value);
}
Или, если вы действительно хотите проверить все возможные значения параметров, просто выполните итерацию по набору записей карты:
Map<String, String[]> map = request.getParameterMap();
for (Entry<String, String[]> entry : map.entrySet()) {
String name = entry.getKey();
String[] values = entry.getValue();
logger.log(name + ": " + Arrays.toString(values));
}