JAVA获取表单参数的几种方式
来源:互联网 发布:初中数学网络研讨 编辑:程序博客网 时间:2024/06/06 02:41
好记性不如赖笔头…………
java代码
@Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("UTF-8");//针对的post方式提交的乱码问题 getParamter4(req); getParamter3(req); getParamter2(req); getParamter1(req); } /** * @描述:通过流的方式获取表单参数 * @时间:2017年6月22日03:59:51 * @注意: * @作者:Ckinghan * @param req * @throws IOException * @throws UnsupportedEncodingException */ private void getParamterInputStream(HttpServletRequest req) throws IOException, UnsupportedEncodingException { ServletInputStream inputStream = req.getInputStream(); int i = 1; byte[] bs = new byte[1024]; while((i = inputStream.read(bs)) != -1){ System.out.println(new String(new String(bs, 0, i).getBytes(),"UTF-8")); } } /** * @描述:获取参数的方法三四:使用的方法与方法三是相同的,只是这里是别人封装好的,只须要几句代码就可以完成 * @时间:2017年6月22日02:59:48 * @注意:需要导入如下两个JAR包:commons-beanutils-1.8.3、commons-logging-1.1.1 * @作者:Ckinghan * @param req */ private void getParamter4(HttpServletRequest req) { //创建实体对象 User user = new User(); try { //通过封装好的工具类将表单中的数据写入到实体对象对应的属性中 BeanUtils.populate(user, req.getParameterMap()); } catch (Exception e) { e.printStackTrace(); } //输出实体对象 System.out.println("新的方法"+user); } /** * @描述:获取参数的方法三:通过getParameterMap()返回参数的名称及对应的值,并保存在Map中 * 遍历Map,通过属性描述器获取对应 的set方法,并利用反射将数据写入对应实体的属性中,框架中常用 * @时间:2017年6月22日02:50:54 * @注意: * @作者:Ckinghan * @param req */ private void getParamter3(HttpServletRequest req) { //获取所有的参数名及参数值,以Map接收 Map<String, String[]> parameterMap = req.getParameterMap(); //创建User实例对象,用以保存表单提交的数据 User user = new User(); //遍历Map的数据 for (Map.Entry<String, String[]> paramter : parameterMap.entrySet()) { //获取参数名 String name = paramter.getKey(); //获取参数值,因为有可能参数是checkbox类型的,所以统一使用数组接收 String[] value = paramter.getValue(); try { //创建一个属性描述器,用以通过参数名获取对应的set 、 get方法 PropertyDescriptor propertyDescriptor = new PropertyDescriptor(name,user.getClass()); //获取与name对应的set方法 Method setMethod = propertyDescriptor.getWriteMethod(); //判断接收的值是否为null或值的个数是大于0 if(value != null && value.length > 0){ //如果长度为1,说明只有一个参数 if(value.length == 1){ //利用反射,调用set方法将对应的值写入到实体类中 setMethod.invoke(user, value[0]); }else{ //利用反射将值写入实体中。注意:在JDK1.5之前,数组在传值时是被拆分开的, //这是会报错的,为了防止这种情况,使用强转为Object来避免 setMethod.invoke(user, (Object)value); } } } catch (Exception e) { e.printStackTrace(); } } //输出实体值 System.out.println(user); } /** * @描述:获取参数的方法二 * @时间:2017年6月22日02:06:46 * @注意: * @作者:Ckinghan * @param req */ private void getParamter2(HttpServletRequest req) { //通过.getParameterNames()获取所有的参数名称 Enumeration<String> parameterNames = req.getParameterNames(); //遍历参数名称 while(parameterNames.hasMoreElements()){ //获取当前循环的参数名称 String nextElement = parameterNames.nextElement(); //根据当前的参数名称获取对应的值,因考虑到会接收checkbox类型的,所以使用了getParameterValues()方法返回数组 String[] parameterValues = req.getParameterValues(nextElement); //将对应的参数值遍历输出 for (int i = 0;parameterValues != null && i < parameterValues.length; i++) { System.out.println(nextElement+"\t"+parameterValues[i]); } } } /** * @描述:获取参数的方法一 * @时间:2017年6月22日02:00:40 * @注意: * @作者:Ckinghan * @param req */ private void getParamter1(HttpServletRequest req) { //获取参数 String name = req.getParameter("userName"); String pwd = req.getParameter("pwd"); String sex = req.getParameter("sex"); String[] hobby = req.getParameterValues("hobby"); String city = req.getParameter("city"); System.out.println(name); System.out.println(pwd); System.out.println(sex); System.out.println(city); for (int i = 0;hobby != null && i < hobby.length; i++) { System.out.print(hobby[i]+","); } }
html代码:
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>注册</title></head><body> <form action="/httpServletRequest/index2" method="post" enctype="application/x-www-form-urlencoded"> 用户名:<input name="userName" type="text"/><br/> 密码:<input name="pwd" type="password"/><br/> 性别: <input name="sex" type="radio" value="男" checked="true">男 <input name="sex" type="radio" value="女">女<br/> 爱好: <input name="hobby" type="checkbox" value="羽毛球"/>羽毛球 <input name="hobby" type="checkbox" value="蓝球"/>蓝球 <input name="hobby" type="checkbox" value="钓鱼"/>钓鱼 <input name="hobby" type="checkbox" value="看书"/>看书<br/> 城市: <select name="city"> <option value="">---请选择---</option> <option value="郑州">郑州</option> <option value="周口">周口</option> <option value="漯河">漯河</option> <option value="许昌">许昌</option> </select><br/> <input type="submit" value="提交"/> </form></body></html>
阅读全文
2 0
- JAVA获取表单参数的几种方式
- struts2中 Action获取表单参数的几种方式
- struts2中 Action获取表单参数的几种方式
- struts2中 Action获取表单参数的几种方式
- struts2中 Action获取表单参数的几种方式
- 获取url参数的几种方式
- 获取URL参数的几种方式
- struts2 的Action获取表单的几种方式
- struts Action获取表单的几种方式
- Javaweb获取表单数据的几种方式
- servlet处理表单获取参数的4种方式
- java获取properties的几种方式
- java获取路径的几种方式
- Java获取键盘输入的几种方式
- Java获取路径的几种方式
- spring mvc获取请求的参数的几种方式
- php获取post参数的几种方式
- php获取post参数的几种方式
- 如何快速转载CSDN中的博客【转】
- VPS安装LAMP和WordPress
- 给中小型运维团队的建议
- spark yarn /bin/bash: /bin/java: is a directory
- java插件的在线安装、卸载、使用:WindowBuilder
- JAVA获取表单参数的几种方式
- 基本常识
- 1204 糖果大战
- 学习笔记:MySQL基准测试之Benchmark Suite
- Android Kotlin资源整理
- Android Studio插件整理
- Andoird控件收集
- Android一些开源第三方
- assets、raw(文件夹、作用,区别) 、 SharedPreference(存放配置信息)