getParameterMap()方法具有什么功能呢?
getParameterMap()方法简介
`getParameterMap()`是`ServletRequest`接口中定义的一个方法
用于获取HTTP请求中所有的请求参数
并以`Map<String, String[]>`形式返回
它是处理表单提交、查询字符串等场景时非常有用的方法
尤其适用于需要 统一处理多个参数或不确定参数名称的情况
getParameterMap()方法功能
| 功能 | 描述 |
| 获取所有请求参数 | 包括 GET 的 URL 查询参数 和 POST 表单提交的参数 |
| 返回 Map 结构 | Key 为参数名(String),Value 为参数值数组(String[]) |
| 支持多值参数 | 如复选框(`<input type="checkbox">`)会返回多个值 |
| 便于遍历和日志记录 | 可用于统一处理、打印、验证参数 |
getParameterMap()方法定义
Map<String, String[]> getParameterMap()
- 返回值说明:
- `Map<String, String[]>`:
每个键对应一个参数名,
值是该参数的所有值(支持多选等多值情况)
例 1:获取所有参数并打印
当访问地址为:
http://localhost:8080/myapp/user?name=Tom&hobby=soccer&hobby=music
或
使用POST提交包含以下字段的表单:
```html
<input type="text" name="name" value="Tom">
<input type="checkbox" name="hobby" value="soccer"> 足球
<input type="checkbox" name="hobby" value="music"> 音乐
对应Servlet示例
@WebServlet("/user")
public class UserServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException {
// 获取所有参数
Map<String, String[]> parameterMap = request.getParameterMap();
// 输出响应
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("<h2>所有请求参数:</h2>");
out.println("<ul>");
for (Map.Entry<String, String[]> entry : parameterMap.entrySet()) {
String key = entry.getKey();
String[] values = entry.getValue();
out.print("<li>" + key + " = ");
out.print(String.join(", ", values));
out.println("</li>");
}
out.println("</ul>");
}
}
浏览器输出结果:
所有请求参数:
- name = Tom
- hobby = soccer, music
例 2:统一处理参数(如日志记录)
Map<String, String[]> params = request.getParameterMap();
StringBuilder logMsg = new StringBuilder("接收到请求参数:");
for (Map.Entry<String, String[]> entry : params.entrySet()) {
logMsg.append(entry.getKey()).append("=").append(Arrays.toString(entry.getValue())).append("; ");
}
System.out.println(logMsg);
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


