获取request中的参数

本文介绍了一个简单的Servlet示例,展示了如何使用HttpServletRequest对象的getParameterMap方法来获取请求中的参数,并解释了为何参数值会以String[]形式返回,特别是当存在多个同名参数时。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下面的例子是获取request中的参数,一个简单的servlet

package com.yydone.web;

import java.io.IOException;
import java.util.Map;
import java.util.Map.Entry;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/TestServlet")
public class TestServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    public TestServlet() {
        super();
    }

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request, response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		Map<String,String[]> parameterMap = request.getParameterMap();
		if(parameterMap!=null) {
			for(Entry<String, String[]> entry:parameterMap.entrySet()) {
				String [] values = entry.getValue();
				String value = "";
				if(values!=null){
					for(String s:values){
						value += s+ ","; 
					}
					if(!"".equals(value)){
						value = value.substring(0, value.length()-1);
					}
				}
				System.out.println(entry.getKey().toString()+":"+value);
			}
		}
	}

}

 request.getParameterMap()返回的是Map<String,String[]>,而不是Map<String,String>。

为什么要String[]呢,经过测试,当参数名同名时,String[]就会用到了。

如name=n1&name=n2&name=n3时,String[0]=n1,String[1]=n2,String[2]=n3。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值