JavaWeb学习笔记——获取表单数据
来源:互联网 发布:加微信群软件 编辑:程序博客网 时间:2024/05/16 00:50
总结整理后台获取前台表单的值的方法:
前端代码的例子:
<body> <form action="demo1" method="post"> 用户名:<input type="text" name="username"><br> 密码:<input type="password" name="password"><br> 爱好:<input type="checkbox" name="hobby" value="篮球">篮球<br> <input type="checkbox" name="hobby" value="编程">编程 <input type="checkbox" name="hobby" value="乒乓球">乒乓球<br> 验证码:<input type="text" name="vcode"><img src="/validate/validatee" onclick="changeImg()" /><a href="javascript:changeImg()">看不清,换一张</a><br> <input type="submit" value="提交"> </form> </body>
下面是几种后台获取前台表单的值的方法:
1.request.getParameter()
该方法是根据前台表单name属性的名,获取value属性值的方法,对于像用户名、密码、验证码这样的单属性值可以这样获取:
后台代码:
String username = request.getParameter("username");String password = request.getParameter("password");String vcode = request.getParameter("vcode");
2.request.getParameterValues()
对于像hobby这样有复选框,可以选中多值的表单,后台可以这样获取前台传来的值:
String[] hobby = request.getParameterValues();
这种方法一般是获取复选框的值所用到的方法。
3.request.getParameterNames()
获取表单提交的所有的name方法。
Enumeration names = request.getParameterNames(); while (names.hasMoreElements()) { // 获取前端name值 String name = (String)names.nextElement(); // 将值以数组形式保存 String[] values = request.getParameterValues(name); // 遍历 for (int i = 0; values != null && i < values.length; i ++) { System.out.println(name + "\t" + values[i]); } }
4.request.getParameterMap()
得到表单提交的所有的值。
我们可以先将要获取的属性值进行封装:
package com.zrxjuly.validate;import java.util.Arrays;public class User { private String username; private String password; private String[] hobby; private String vcode; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String[] getHobby() { return hobby; } public void setHobby(String[] hobby) { this.hobby = hobby; } public String getVcode() { return vcode; } public void setVcode(String vcode) { this.vcode = vcode; } @Override public String toString() { return "User [username=" + username + ", password=" + password + ", hobby=" + Arrays.toString(hobby) + ", vcode=" + vcode + "]"; }}
然后再获取:
User user = new User(); System.out.println("封装数据前:" + user); // 得到表单提交的所有的值. Map<String, String[]> map = request.getParameterMap(); for (Map.Entry<String, String[]> m : map.entrySet()) { // 得到map中的键 String name = m.getKey(); // 得到map中的值 String[] value = m.getValue(); // 创建一个属性描述器 try { PropertyDescriptor pd = new PropertyDescriptor(name, User.class); // 得到setter属性 Method setter = pd.getWriteMethod(); if (value.length == 1) { //给单个变量赋值 setter.invoke(user, value[0]); // 给一个值的变量赋值 } else { setter.invoke(user, (Object)value); // 给复选框赋值 } } catch (Exception e) { e.printStackTrace(); } } System.out.println(request.getSession().getAttribute("vcode") + "验证码"); if (user.getVcode() != null && user.getVcode().equalsIgnoreCase((String) request.getSession().getAttribute("vcode"))) { System.out.println("验证码正确!"); } else { System.out.println("验证码错误!"); } System.out.println("封装数据后:" + user);
5.使用框架
需要导入的jar包:commons-beanutils-XXX.jar(用于封装数据)和commons-logging.jar(用于输出日志)。导入jar包后,
try { User user = new User(); System.out.println("封装数据前:" + user); BeanUtils.populate(user, request.getParameterMap()); System.out.println("封装数据后:" + user); } catch (Exception e) { e.printStackTrace(); }
有问题欢迎交流讨论^.^
本案例源码链接:validate.rar
阅读全文
0 0
- JavaWeb学习笔记——获取表单数据
- PHP学习笔记——表单数据获取,Session,Cookie
- javaWeb之servlet获取表单数据
- JavaWeb学习笔记之表单数据处理类
- PHP 学习笔记——接受表单数据。
- Javaweb获取表单数据的几种方式
- Bootstrap—表单学习笔记
- JavaWeb学习笔记——servlet
- JavaWeb学习笔记——JSP
- JavaWeb学习笔记——Session
- JavaWeb学习笔记——HttpSession
- 学习笔记——JavaWeb过滤器
- 学习笔记——JavaWeb Servelt
- JavaWeb学习笔记——servlet
- JavaWeb学习笔记——Servlet编程
- JavaWeb学习笔记——XML
- JavaWeb学习笔记——Servlet生命周期
- Javaweb学习笔记3—Serverlet
- (ros/catkin) ××/××.h: No such file or directory
- python:优雅的退出程序或重启服务
- Java基础知识扫盲点
- 字符串排序(冒泡排序法模拟)
- 17.通用的页面跳转逻辑
- JavaWeb学习笔记——获取表单数据
- 航天科工智慧产业
- php笔记2
- NOIP2017游记
- windows安装mongoDB
- 57.笔记 MySQL学习——查询扩展全文搜索
- recyclerview网络获取图片展示瀑布流MVP
- Druid记录
- hdu2092