jsp中request经常是的获取参数的方法总结

我的个人博客开通了,地址:https://timewentby.com 欢迎访问

下面将获取参数的方法都列出来说一说:

request.getParameter(String name) //获取指定name的值,若name有多个相同值则获取第一个value值
request.getParameterNames()//获得表单中name的Enumeration<String>
request.getParameterValues(String name)//获得表单中所有的value数组String[]
request.getParameterMap();//获得表单中所有的name和value

先把案例页面上的表单代码贴出:
说明:为了方便测试,这里没有配置servlet,只是将表单提交到一个jsp页面;

<form action="TestName.jsp" method="post">
		<input type="text" value="我是香蕉1" name="banana"/><br>
		<input type="text" value="我是香蕉2" name="banana"/><br>
		<input type="text" value="我是梨子a" name="pear"/><br>
		<input type="text" value="我是梨子b" name="pear"/><br>
		<input type="text" value="我是苹果" name="apple"/><br>
		<input type="submit" value="提交">
	</form>

知识点一:request.getParameter(String name)
这个是没有使用框架的时候,最常用的一个了;

下面贴出在TestName.jsp页面这个案例的代码:

<%
		//这里要指定一下编码,否则会乱码
		request.setCharacterEncoding("UTF-8");
  	
		String banana = request.getParameter("banana");
		out.print("banana:"+banana+"<br/>");
		
		String pear = request.getParameter("pear");
		out.print("pear:"+pear+"<br/>");
		
		String apple = request.getParameter("apple");
		out.print("apple:"+apple+"<br/>");
 
  	
  	%>

结果为:
banana:我是香蕉1
pear:我是梨子a
apple:我是苹果

总结:可以看出request.getParameter(String name)这个方法只会获取相同name的第
一个值。

知识点二:request.getParameterNames()

下面贴出在TestName.jsp页面这个案例的代码:

	<%
		//这里要指定一下编码,否则会乱码
		request.setCharacterEncoding("UTF-8");
		//获取页面上所有name的值
		Enumeration<String>  enums = request.getParameterNames();
		while(enums.hasMoreElements()){
			out.print(enums.nextElement()+"<br/>");
		} 
  			
  		%>

结果为:
banana
apple
pear

总结:这个方法会得到表单中name的值,如果那么的值相同,则保留一个或者说交覆盖以前的值。

知识点三:request.getParameterValues(String name)

下面贴出在TestName.jsp页面这个案例的代码:

<%	
    		
		    	//这里要指定一下编码,否则会乱码
				request.setCharacterEncoding("UTF-8");
    			//获取页面上所有相同name对应的值得数组
	    		String[] bananas = request.getParameterValues("banana");
	    		for(String str : bananas){
	    			out.print(str+"  	");
	    		}
	    		out.print("<br/>");
	    		String[] pears = request.getParameterValues("pear");
	    		for(String str : pears){
	    			out.print(str+"  	");
	    		}
	    		out.print("<br/>");
	    		String[] apples = request.getParameterValues("apple");
	    		for(String str : apples){
	    			out.print(str+"  	");
	    		}
    		
    		
    	%>

结果为:
我是香蕉1 我是香蕉2
我是梨子a 我是梨子b
我是苹果

总结:这个方法可以获取的指定name的所有的值放进一个Stirng[]返回,我们可以b遍历这个数组得到该name所有的值。

知识点四:request.getParameterMap()

下面贴出在TestName.jsp页面这个案例的代码:

	<%
	
	request.setCharacterEncoding("UTF-8");
	Map<String, String[]>  map = request.getParameterMap();
	 Set<String> keySet = map.keySet();  		 		
		
		 Iterator<String> it =  keySet.iterator();
	 if(it != null){
		 while(it.hasNext()){
			String key =  it.next();
			out.print("key:"+key); 
			//out.print("key:"+it.next()); 这个地方不能怎么写,往下看就知道了
			//因为不能一次判断取两次值,可能会抛出NoSuchElementExcetion异常
			String[]  value = map.get(key);
			for(String str : value){
				out.print(" value :"+str);
			}
			 out.print("<br/>");
		 }
	 }
 %>	 

结果为:
key:banana value :我是香蕉1 value :我是香蕉2
key:apple value :我是苹果
key:pear value :我是梨子a value :我是梨子b

总结:request.getParameterMap()这个方法会将form表单中所有的name和其对应的
value封装到Map<String,String[]>返回,我们可以通过边里得到所有的参数。

  • 6
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值