以下是一个简单的jsp注册页面,从前端提交的数据

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>注册页面</title></head><body><center><fieldset><legend>注册页面</legend><form name="frm" action="regAction01.jsp" method="post">            <input type="hidden" name="cardNo" value="12345"/><table><tr><td><label for="userName">请输入用户名:</label></td><td><input type="text" name="userName" id="userName" value="admin"></td></tr><tr><td><label for="pwd">请输入密码:</label></td><td><input type="password" name="pwd" id="pwd"></td></tr><tr><td><label for="gender">请选择你的性别:</label></td><td><!-- 对于单项按钮如果想实现多选一的效果,则控件的name属性值必须相同,表明是同一组。--><input type="radio" name="gender" id="male" value="男" checked="checked"><label for="male">男</label><input type="radio" name="gender" id="female" value="女"><label for="female">女</label></td></tr><tr><td><label for="hobby">请选择你的爱好:</label></td><td><!-- 对于复选按钮,要求处于同一组的所有复选按钮的name值相同,这样提供到后台的数据是以字符串数组的形式统一发送的,方便管理 --><input type="checkbox" name="hobby" id="hobby" value="爬山" >爬山<input type="checkbox" name="hobby" value="打游戏" checked="checked">打游戏<input type="checkbox" name="hobby"  value="打篮球" >打篮球<br/><input type="checkbox" name="hobby"  value="唱歌" checked="checked">唱歌<input type="checkbox" name="hobby"  value="跳舞" >跳舞<input type="checkbox" name="hobby"  value="敲代码" >敲代码</td></tr><tr><td>请选择你所处的省份:</td><td><select name="province"><option value="河北">河北</option><option value="河南">河南</option><option value="山东">山东</option><option value="山西" selected="selected">山西</option><option value="湖北">湖北</option><option value="湖南">湖南</option></select></td></tr><tr><td>请选择你喜欢的职业:</td><td><!-- multiple="multiple" :使当前选择框变成多项列表框,按住shift键可以选择连续的选项,按住ctrl键可以选择任意位置的选项size="5":指定默认情况下显示几项内容 --><select name="professor" multiple="multiple" size="5"><optgroup label="温柔型职业"><option value="程序员">程序员</option><option value="歌手">歌手</option><option value="医生" selected="selected">医生</option><option value="护士" selected="selected">护士</option><option value="教师">教师</option></optgroup><optgroup label="暴力型职业"><option value="警察" >警察</option><option value="城管" selected="selected">城管</option><option value="保镖" >保镖</option></optgroup></select></td></tr><tr><td><label for="introduct">个人简介:</label></td><td><textarea rows="5" cols="20" name="introduct" id="introduct">我是一个程序员,敲代码如同数人民币,感觉帅呆了!</textarea></td></tr><tr><td colspan="2" align="center"><input type="submit" value="注册"/><!-- 重置是将控件的值还原成默认value属性的值 --><input type="reset" value="重置"/></td></tr></table></form></fieldset></center></body>
</html>

注册界面运行效果图

1.利用getParameter和getParameterValues方式获取数据
为了方便理解,我们新建一个regAction01.jsp页面(regAction01.jsp页面名称对应reg01.jsp中的form表单的action值)从reg01.jsp中获取提交过来的数据

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>注册处理页面</title></head><body><%//解决post提交的中文乱码问题request.setCharacterEncoding("utf-8");//得到客户端提交过了的值使用JSP隐式对象中的request对象//注意:这里是getParameter的用法,直接使用Jsp内置的request隐式对象调用getParameter方法。//这里只讲解第一个String cardNo=request.getParameter("cardNo")其他同理。getParameter("cardNo")中的cardNo与reg01.jsp中name="xxxx"中的值对应,也就是通过cardNo得到reg01.jsp提交过来的与之对应的值,所以reuest.getParameter("cardNo")就等于(<input type="hidden" name="cardNo" value="12345"/>)12345String cardNo=request.getParameter("cardNo");String userName=request.getParameter("userName");String pwd=request.getParameter("pwd");String gender=request.getParameter("gender");//由于爱好可以是多个,但使用request.getParameter("hobby")方法只能获取一个值,如果想获取多个值咋办?这里就需要用到getParameterValues()//以下是getParameterValues()的用法,其他类似与多选框的情况同理String[] hobbies=request.getParameterValues("hobby");String hobby=Arrays.toString(hobbies);String province = request.getParameter("province");String[] professors=request.getParameterValues("professor");String professor=Arrays.toString(professors);String introduct=request.getParameter("introduct");%><center><table><tr><td>身份证号:</td><td><%=cardNo %></td><!-- <%=cardNo>等同于<% out.print(cardNo);%>--></tr><tr><td>用户名:</td><td><%=userName %></td></tr><tr><td>密码:</td><td><%=pwd %></td></tr><tr><td> 性别:</td><td><%=gender %></td></tr><tr><td>  爱好:</td><td> <%=hobby %></td></tr><tr><td>    省份:</td><td><%=province %></td></tr><tr><td> 职业:</td><td><%=professor %></td></tr><tr><td>  个人简介:</td><td><%=introduct %></td></tr></table></center></body>
</html>

演示结果regAction01.jsp

2.利用getParameterNames获取提交过来的数据
这次我们新建一个regAction02.jsp页面,注意与之对应我们只需修改reg01.jsp中的action,让action=”regAction02.jsp”

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>注册处理页面</title></head><body><%//解决post提交的中文乱码问题,这行代码必须写在request.getParameter(key)的方法前面,否则无效request.setCharacterEncoding("utf-8");//request.getParameterNames():返回客户端所有控件的name属性值组成的枚举器对象Enumeration<String> enu=request.getParameterNames(); //enu为自定义的枚举对象while(enu.hasMoreElements()){ //hasMoreElements():如果且仅当这个枚举对象包含至少一个元素返回true,否则返回falseString name=enu.nextElement();  //如果这个枚举对象至少有一个元素,那么返回这个枚举的下一个元素,否则抛出异常//out.println("name="+name);String value=null; //初始化自定义的valueif(name.endsWith("*")){ //endsWith():判断前端提交过来的name的值的最后一位是否有"*" ,根据这个特征判断用getparameterValues()还是getparameter()String[] values=request.getParameterValues(name);value=Arrays.toString(values);//这里把数组转换成字符串}else{value=request.getParameter(name);}out.println(name+"="+value+"<br/>");//统一打印输出}%></body>
</html>

演示结果regAction02

利用getParameterNames的优点在于,我们不需要关心前端提交的数据如何变幻,我们只需要这么一套处理代码即可应付大多数的情况。

3.getParameterMap方式
同样我们新建regAction03.jsp,同样修改reg02.jsp中的action(action=”r egAction03.jsp”)。

<%@ page language="java" import="java.util.*" import="java.util.Map.Entry" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>注册处理页面</title></head><body><%//解决post提交的中文乱码问题,这行代码必须写在request.getParameter(key)的方法前面,否则无效request.setCharacterEncoding("utf-8");Map<String, String[]> map=request.getParameterMap();//利用getParameterMap()方式获取数据Set<Entry<String, String[]>> sets=map.entrySet();//entryset:这个map中包含的映射的集合视图,这个知识点不会的请回去复习java知识for(Entry<String, String[]> entry:sets){String key= entry.getKey(); //获得键String[] values=entry.getValue(); //获得值out.print(key+"="+Arrays.toString(values)+"<br>");//打印输出结果集}%></body>
</html>

演示结果regAction03

具体区别也不是三言两语能讲的清楚明白的,请大家参考代码,结合自己所学的知识会有更好的理解,欢迎各位留言评论!!!

Jsp中getParameter、getParameterValues、getParameterNames和getParameterMap用法详解相关推荐

  1. oracle中的exists 和 not exists 用法详解

    from:http://blog.sina.com.cn/s/blog_601d1ce30100cyrb.html oracle中的exists 和 not exists 用法详解 (2009-05- ...

  2. python多个strip_python 格式化多个Python3中strip()、lstrip()、rstrip()用法详解

    Python中有三个去除头尾字符.空白符的函数,它们依次为: strip: 用来去除头尾字符.空白符(包括n.r.t.' ',即:换行.回车.制表符.空格) lstrip:用来去除开头字符.空白符(包 ...

  3. linux cp -r 参数,Linux系统中cp命令的参数及用法详解

    Linux系统中cp命令主要是用来复制文件或者目录.下面由学习啦小编为大家整理了Linux系统中cp命令的参数及用法详解的相关知识,希望对大家有帮助! Linux系统中cp命令的参数及用法详解:参数说 ...

  4. linux 移动剪切命令,Linux中vi的复制命令的用法详解

    在Linux系统中,使用VI编辑的时候经常用到的操作就是复制粘贴,那么下面由学习啦小编为大家整理了linux中vi的复制命令的用法详解的相关知识,希望对大家有帮助! Linux中vi的复制命令的用法详 ...

  5. python中rstrip用法_浅谈Python3中strip()、lstrip()、rstrip()用法详解

    简单来说,三种方法是为了删除字符串中不同位置的指定字符.其中,strip()用于去除字符串的首尾字符,同理,lstrip()用于去除左边的字符,rstrip()用于去除右边的字符 Python中有三个 ...

  6. linux中替换命令详解,linux中sed命令字符串替换的用法详解

    Linux系统中sed命令可以将字符串批量替换,省去了很多麻烦,下面由学习啦小编为大家整理了linux系统中sed命令字符串替换的用法详解,希望对大家有帮助! linux中sed命令字符串替换的用法详 ...

  7. java return返回值_java中关于return返回值的用法详解

    我们输入一个条件时,系统就会对这个条件进行判断,然后给出一个返回时的结论,我们把这个结果看做是返回值.在java里可以使用return语句来进行返回,从字面意思就能很好的理解它的用法了.下面我们就re ...

  8. python中isinstance怎么用_pythonisinstance函数用法详解

    这篇文章主要介绍了python isinstance函数用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 isinstance() 函数来判断 ...

  9. mysql中函数mid_MySQL MID()函数的用法详解(代码示例)

    在MySQL中,MID()函数返回从指定位置开始的子字符串. MID()和SUBSTR()都是SUBSTRING()的同义词. 基本语法是这样的:MID(str,pos,len) 这里,str是字符串 ...

  10. matlab中采样函数,matlab采样相关函数用法详解

    matlab采样函数(降采样,过采样,减采样函数)用法详解 dyaddown 功能:对时间序列进行二元采样,每隔一个元素提取一个元素,得到一个降采样时间序列. 格式: 1.y = dyaddown(x ...

最新文章

  1. [转]LIB和DLL的区别与使用
  2. js处理时间的那些事
  3. java创建链表成绩管理系统_成绩管理系统 链表版
  4. “unauthorized: authentication required” -- openshift3.9 docker push 报错
  5. 前端 -- jQuery
  6. 常用的Java开发工具
  7. u盘 计算机管理 没有就绪,U盘插上电脑显示驱动器未准备就绪。怎么办?
  8. 计算机电源大小怎么看,怎么看电脑电源多少w
  9. 使用Django创建一份在线简历
  10. 传统产业要向数字化转型发力
  11. C++ yaml解析实战暨yaml-cpp库使用(1)认识yaml格式
  12. 直流电机正反转电路(mutilsim)
  13. 炉石传说强化机器人,炉石传说:这6张机械卡是最强势的,奇利亚斯只排在了最后一名...
  14. python基础教程(第三版)学习笔记(十八)
  15. 数据库关系模型不合理会带来什么问题?
  16. 一套基于增强型8051内核的应用裸机框架
  17. Python_玩转多线程_一蓑烟雨任平生
  18. 电器单位怎样使用自动化软件降低员工流失率
  19. android词典论文,基于Android的电子词典软件的设计与实现(毕业论文doc)资料.doc...
  20. unity 协程特点

热门文章

  1. sql查询日期格式化
  2. 解决windows 7双网卡分别接内外网冲突
  3. 微信小程序保存图片到相册
  4. (附源码)Springboot小型仪器公司生产管理系统 毕业设计 031853
  5. python数学公式编辑工具_也许是目前最好的数学公式编辑神器——Mathpix Snipping Tool...
  6. 单页面动画 html5,9款惊艳的HTML5/CSS3动画应用赏析
  7. html实训大作业《基于HTML+CSS+JavaScript红色文化传媒网站(20页)》
  8. 单节1A锂电池充电芯片
  9. Microsoft Remote Desktop 10 - 微软官方免费远程桌面控制 Windows 的软件 APP
  10. Snipaste操作指南