用servlet实现一个注册功能 ,后台获取数据
来源:互联网 发布:微信淘宝优惠群二维码 编辑:程序博客网 时间:2024/05/22 15:54
用servlet实现一个注册的小功能 ,后台获取数据。
注册页面:
注册页面代码 :
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title></head><body> <form action="/RequestDemo/RequestDemo3" method="post"> 用户名:<input type="text" name="userName"><br/> 密码:<input type="text" name="pwd"><br/> 性别:<input type="radio" name="sex" value="男" checked="checked">男 <input type="radio" name="sex" value="女">女<br/> 爱好:<input type="checkbox" name="hobby" value="足球">足球 <input type="checkbox" name="hobby" value="篮球">篮球 <input type="checkbox" name="hobby" value="排球">排球 <input type="checkbox" name="hobby" value="羽毛球">羽毛球<br/> 所在城市:<select name="city"> <option>---请选择---</option> <option value="bj">北京</option> <option value="sh">上海</option> <option value="sy">沈阳</option> </select> <br/> <input type="submit" value="点击注册"> </form></body></html>
人员实体类: 注意:人员实体类要与表单中的name一致,约定要优于编码
package com.chensi.bean;//实体类中的字段要与表单中的字段一致,约定优于编码public class User { private String userName; private String pwd; private String sex; private String[] hobby; private String city; public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String[] getHobby() { return hobby; } public void setHobby(String[] hobby) { this.hobby = hobby; } public String getCity() { return city; } public void setCity(String city) { this.city = city; } }
接收方法一: Servlet页面(后台接收数据方法一)
package com.chensi;import java.io.IOException;import java.util.Iterator;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/** * Servlet 获得填写的表单数据 */@WebServlet("/RequestDemo3")public class RequestDemo3 extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); //获取传过来的表单数据,根据表单中的name获取所填写的值 String userName = request.getParameter("userName"); String pwd = request.getParameter("pwd"); String sex = request.getParameter("sex"); String[] hobbys = request.getParameterValues("hobby"); System.out.println(userName); System.out.println(pwd); System.out.println(sex); for (int i = 0; hobbys!=null&&i < hobbys.length; i++) { System.out.println(hobbys[i]+"\t"); } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); }}
得到的数据:
接收方法二:
package com.chensi;import java.io.IOException;import java.util.Enumeration;import java.util.Iterator;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/** * Servlet 获得填写的表单数据 */@WebServlet("/RequestDemo3")public class RequestDemo3 extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); //获取传过来的表单数据,根据表单中的name获取所填写的值 Enumeration<String> names = request.getParameterNames(); while (names.hasMoreElements()) { String strings = (String) names.nextElement(); String[] parameterValues = request.getParameterValues(strings); for (int i = 0;parameterValues!=null&&i < parameterValues.length; i++) { System.out.println(strings+":"+parameterValues[i]+"\t"); } } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
得到的数据:
接收方法三: 利用反射赋值给User
package com.chensi;import java.beans.IntrospectionException;import java.beans.PropertyDescriptor;import java.io.IOException;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import java.util.Enumeration;import java.util.Iterator;import java.util.Map;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.chensi.bean.User;/** * Servlet 获得填写的表单数据 */@WebServlet("/RequestDemo3")public class RequestDemo3 extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); //获取传过来的表单数据,根据表单中的name获取所填写的值 try { User u = new User(); System.out.println("数据封装之前: "+u); //获取到表单数据 Map<String, String[]> map = request.getParameterMap(); for(Map.Entry<String,String[]> m:map.entrySet()){ String name = m.getKey(); String[] value = m.getValue(); //创建一个属性描述器 PropertyDescriptor pd = new PropertyDescriptor(name, User.class); //得到setter属性 Method setter = pd.getWriteMethod(); if(value.length==1){ setter.invoke(u, value[0]); }else{ setter.invoke(u, (Object)value); } } System.out.println("封装数据之后: "+u); } catch (IntrospectionException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { e.printStackTrace(); } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); }}
得到的结果:
接收方法四:使用apache 的 BeanUtils 工具来进行封装数据(ps:这个Benautils工具,Struts框架就是使用这个来获取表单数据的哦!)
package com.chensi;import java.beans.IntrospectionException;import java.beans.PropertyDescriptor;import java.io.IOException;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import java.util.Enumeration;import java.util.Iterator;import java.util.Map;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.commons.beanutils.BeanUtils;import com.chensi.bean.User;/** * Servlet 获得填写的表单数据 */@WebServlet("/RequestDemo3")public class RequestDemo3 extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); //获取传过来的表单数据,根据表单中的name获取所填写的值 //方法四:使用beanUtil来封装User类 User u = new User(); System.out.println("没有使用BeanUtil封装之前: "+u); try { BeanUtils.populate(u, request.getParameterMap()); System.out.println("使用BeanUtils封装之后: "+u); } catch (IllegalAccessException | InvocationTargetException e) { e.printStackTrace(); } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
得到的结果:
接收方法 方式五: 使用inputStream流来进行接收(一般字符串啥的不用这个方法,一般是文件上传下载时候才会使用这种方法)因为接收到的字符串各种乱码,编码问题解决不好
package com.chensi;import java.beans.IntrospectionException;import java.beans.PropertyDescriptor;import java.io.IOException;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import java.util.Enumeration;import java.util.Iterator;import java.util.Map;import javax.servlet.ServletException;import javax.servlet.ServletInputStream;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.commons.beanutils.BeanUtils;import com.chensi.bean.User;/** * Servlet 获得填写的表单数据 */@WebServlet("/RequestDemo3")public class RequestDemo3 extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); //获取传过来的表单数据,根据表单中的name获取所填写的值 response.setContentType("text/html;charset=UTF-8"); //获取表单数据 ServletInputStream sis = request.getInputStream(); int len = 0; byte[] b = new byte[1024]; while((len=sis.read(b))!=-1){ System.out.println(new String(b, 0, len, "UTF-8")); } sis.close(); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); }}
得到的结果:(各种乱码 。。。。)
阅读全文
1 0
- 用servlet实现一个注册功能 ,后台获取数据
- Servlet的5种方式实现表单提交(注册小功能),后台获取表单数据
- Servlet的5种方式实现表单提交(注册小功能),后台获取表单数据实例
- 用户注册功能用Servlet实现
- Servlet注册功能的实现
- servlet实现客户注册功能
- 实现用户注册功能:用servlet验证提交的数据是否合法,不合法返回注册页面,并提示出错。
- 动态获取后台最新数据的一个实现方法
- JSP+Servlet实现注册登录功能
- JSP+Servlet实现注册登录功能
- Servlet简单实现的注册登录功能
- Servlet的5种方式实现表单提交,后台获取表单数据
- ajax获取后台数据并插入到tr中 的功能实现
- C# 实现一个注册机功能
- ThinkPHP5开发(二)实现带后台验证的注册功能
- 用jquery实现ajax获取后台数据的示例
- 用servlet实现登录注册功能时遇到的问题和解决方法
- 【javaweb源码】JSP+Servlet+MySQL实现注册功能
- 金蝶EAS8.2,WAF2,F7数据过滤(单据头、分录均有F7字段)
- ANGULAR JS WATCH监听使用
- Git分支---3.2分支的新建与合并
- Linux Command Line and....ch4(更多的bash shell)
- 工作+Mybatis学习
- 用servlet实现一个注册功能 ,后台获取数据
- js---style添加样式方式
- ns3之使用Ipv4ListRouting在一个节点上插入不同的路由协议
- 【DP】【数论】17.6.3 计算器 题解
- 剪花布条 (KMP算法(模板))
- redis学习 基础篇(一)
- [LeetCode]190. Reverse Bits
- 【C语言】判断素数函数
- A problem is easy