用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);
}
}
得到的结果:(各种乱码 。。。。)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# servlet提交表单
# 表单提交到servlet
# form表单提交servlet
# bootstrap Validator 模态框、jsp、表单验证 Ajax提交功能
# JSP中的FORM表单中只有一个input文本时
# 按回车键将会自动提交表单
# jsp中如何实现按下回车键自动提交表单
# JSP针对表单重复提交的处理方法
# JSP使用自定义标签防止表单重复提交的方法
# jquery ajax 如何向jsp提交表单数据
# JSP刷新页面表单重复提交问题解决办法分享
# jquery ajax提交表单从action传值到jsp实现小结
# 表单
# 才会
# 实体类
# 请选择
# 北京
# 上海
# 创建一个
# 使用这个
# 大家多多
# 类中
# 这种方法
# java
# IOException
# util
# package
# public
# bean
# chensi
# Iterator
# ServletException
相关文章:
javascript中对象的定义、使用以及对象和原型链操作小结
定制建站流程解析:需求评估与SEO优化功能开发指南
linux top下的 minerd 木马清除方法
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
枣阳网站制作,阳新火车站打的到仙岛湖多少钱?
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
如何在万网主机上快速搭建网站?
视频网站app制作软件,有什么好的视频聊天网站或者软件?
设计网站制作公司有哪些,制作网页教程?
如何通过网站建站时间优化SEO与用户体验?
如何在IIS7中新建站点?详细步骤解析
详解jQuery停止动画——stop()方法的使用
如何获取PHP WAP自助建站系统源码?
网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?
建站之星后台密码如何安全设置与找回?
如何选择服务器才能高效搭建专属网站?
建站之星3.0如何解决常见操作问题?
北京建设网站制作公司,北京古代建筑博物馆预约官网?
建站主机是什么?如何选择适合的建站主机?
如何通过虚拟主机空间快速建站?
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
三星网站视频制作教程下载,三星w23网页如何全屏?
实现点击下箭头变上箭头来回切换的两种方法【推荐】
建站之星如何一键生成手机站?
建站主机助手选型指南:2025年热门推荐与高效部署技巧
网页设计网站制作软件,microsoft office哪个可以创建网页?
建站之星上传入口如何快速找到?
教学网站制作软件,学习*后期制作的网站有哪些?
义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?
广州顶尖建站服务:企业官网建设与SEO优化一体化方案
c# 在ASP.NET Core中管理和取消后台任务
整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?
青浦网站制作公司有哪些,苹果官网发货地是哪里?
如何使用Golang table-driven基准测试_多组数据测量函数效率
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】
c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】
如何在万网自助建站中设置域名及备案?
平台云上自主建站:模板化设计与智能工具打造高效网站
兔展官网 在线制作,怎样制作微信请帖?
云南网站制作公司有哪些,云南最好的招聘网站是哪个?
免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?
建站主机默认首页配置指南:核心功能与访问路径优化
已有域名建站全流程解析:网站搭建步骤与建站工具选择
如何在景安服务器上快速搭建个人网站?
制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?
如何在Golang中使用replace替换模块_指定本地或远程路径
网站制作的软件有哪些,制作微信公众号除了秀米还有哪些比较好用的平台?
平台云上自助建站如何快速打造专业网站?
淘宝制作网站有哪些,淘宝网官网主页?
*请认真填写需求信息,我们会在24小时内与您取得联系。