One thing to keep in mind, is that the brackets in the field names have no special meaning and are simply part of the name, so you'd have to include them when using ServletRequest::getParameter:
request.getParameter("user[name]");
It's only PHP (or another additional framework), that "automagically" treats names with brackets as an array (or in case of Java more likely a Map).
If you what such a map and you are not using a such framework you'd need to create it yourself, for example, by looping over ServletRequest::getParameterNames.
Example:
public static Map<String, String> getParameterMap(ServletRequest request, String mapName) {
Map<String, String> result = new HashMap<String, String>();
Enumeration<String> names = request.getParameterNames();
while (names.hasMoreElements()) {
String name = names.getNextElement();
if (name.startsWith(mapName + "[") && name.endsWith("]")) {
result.put(name.substring(mapName.length()+1, name.length() - 2), request.getParameter(name));
}
}
return result;
}
This is just a quick (untested) example. It doesn't support multiple level maps (user[name][last]) nor multiple values for one name (which need getParameterValues).