getParameterMap()方法具有什么功能呢?

欢喜 Servlet 发布时间:2025-05-27 16:05:28 阅读数:16138 1

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);
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/Servlet/202505/317.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者