servlet 获取表单数据
来源:互联网 发布:社交网络 评论音轨 编辑:程序博客网 时间:2024/05/21 11:34
html注册表单
<!DOCTYPE html><html> <head> <title>Login.html</title> <meta name="keywords" content="keyword1,keyword2,keyword3"> <meta name="description" content="this is my page"> <meta name="content-type" content="text/html; charset=UTF-8"> <!--<link rel="stylesheet" type="text/css" href="./styles.css">--> </head> <body> <form action="/M1/demo1" method="post"> 用户名<input type="text" name="user"><br> 密码:<input type="password" name="pass"><br> 性别:<input type="radio" value="男" name="sex" checked="checked">男 <input type="radio" value="女" name="sex">女<br> 爱好:<input type="checkbox" value="打球" name="like">打球 <input type="checkbox" value="打代码" name="like">打代码 <input type="checkbox" value="打游戏" name="like">打游戏<br> 去过的城市:<select name="select"> <option>请选择</option> <option value ="北京">北京</option> <option value ="上海">上海</option> <option value ="广州">广州</option> </select><br> <input type="submit" value="提交"> </form> </body></html>
第一种接受数据方法
直接通过找名字来获取值
import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class Demo1 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //接受到表单的数据, 先使用request设置服务器应该使用的字符编码,否则字符不统一会出现乱码 request.setCharacterEncoding("UTF-8"); //获取请求的数据 String user = request.getParameter("user"); String pass = request.getParameter("pass"); String sex = request.getParameter("sex"); String[] like = request.getParameterValues("like"); String to = request.getParameter("select"); System.out.println(user+pass+sex+to); for (int i=0; like!=null && i<like.length; i++){ System.out.println(like[i]); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); }}
第二种方法
上一种是通过请求对象一个一个的获取其值,而这种法子是先将名字全部获取到,在通过循环获取取出表单类型的值
request.setCharacterEncoding("UTF-8"); Enumeration<String> names = request.getParameterNames(); while (names.hasMoreElements()){ String name = (String)names.nextElement(); // 得到名字 String[] values = request.getParameterValues(name); for (int i=0; values!=null&&i<values.length; i++){ System.out.println(values[i]); } }
第三种方法
将数据封装到类中
创建用户类(字段要和表单名一致)
import java.util.Arrays;public class User { private String user; private String pass; private String sex; private String[] like; private String select; public String getUser() { return user; } public void setUser(String user) { this.user = user; } public String getPass() { return pass; } public void setPass(String pass) { this.pass = pass; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String[] getLike() { return like; } public void setLike(String[] like) { this.like = like; } public String getSelect() { return select; } public void setSelect(String select) { this.select = select; } @Override public String toString() { return "User [userName=" + user + ", pass=" + pass + ", sex=" + sex + ", like=" + Arrays.toString(like) + ", select=" + select + "]"; }}
接受数据的servlet代码
request.setCharacterEncoding("UTF-8"); User u = new User(); //获得所有名和值 Map<String, String[]> map = request.getParameterMap(); for (Map.Entry<String, String[]> m : map.entrySet()){ String name = m.getKey(); String[] value = m.getValue(); try { //创建属性描述器 PropertyDescriptor pd = new PropertyDescriptor(name, User.class); //得到属性 Method set = pd.getWriteMethod(); if(value.length == 1){ set.invoke(u, value[0]); }else{ set.invoke(u, (Object)value); } } catch (Exception e) { e.printStackTrace(); } } System.out.println(u.toString());
第四种方法
需要导入两个jar包
request.setCharacterEncoding("UTF-8"); User u = new User(); try { BeanUtils.populate(u, request.getParameterMap()); System.out.println(u); } catch (Exception e) { e.printStackTrace(); }
积累
对表单数据类型的不同,获取的方法不同, 像文本框和密码框或者单选框直接用getParameter(名)方法获取数据, 像多选框使用getParameterValues(名)获取多组数据
作用是在后来getParmeter()获取数据后不会出现乱码, 字符集统一的作用
阅读全文
0 0
- Servlet获取表单数据
- servlet获取表单数据
- servlet获取表单数据
- Servlet获取表单数据
- servlet获取表单数据
- servlet 获取表单数据
- Servlet获取表单数据
- 用Servlet获取表单数据
- 传统Servlet获取表单数据
- 用Servlet获取表单数据
- Servlet获取表单数据和路径跳转。
- Servlet获取表单提交过来的数据
- javaWeb之servlet获取表单数据
- Servlet -获取表单数据的相关方法
- servlet获取表单数据的源码
- Servlet获取表单数据-实例讲解
- servlet获取HTML表单的数据
- JSP简单练习-用Servlet获取表单数据
- 了解ASCII、gb系列、Unicode、UTF-8的区别
- 引用&指针和引用&const的关系
- POJ 1004--Financial Management
- 【简记】Java Web 内幕——NIO例程
- Python的Django框架应用(1)
- servlet 获取表单数据
- matplotlib时间坐标设置
- android 用户引导页实现
- C++中一个空类的大小为什么是1?
- 希尔排序
- 单片机实验一
- [机器学习入门] 李宏毅机器学习笔记-23(Support Vector Machine;支持向量机)
- API设计的基本工作流程及需求分析
- TUST的抓包之旅(1)----- 一键登录校园网