Servlet后台获取取表单数据

本文介绍了在Servlet中如何获取页面提交的表单数据,包括三种不同的接收方法:常规方式,以及使用InputStream流的方式,适合不同场景下对数据量和类型的需求。特别提到,InputStream流主要用于文件上传下载的情景。

撰写时间:2019年06月28日
Servlet获取页面提交过来的表单数据有多种,根据需要与提交的数据量选择
方法一:
以登录为例,提交的数据量不多,也没什么特殊的数据
在这里插入图片描述
页面代码:

<form id="formLogin" class="form-radius" method="post"  action="${ctx}/servlet/loginServlet?fun=userLogin">
	<h4 class="no-margins">登录:</h4>
    <p class="m-t-md">登录到小象在线借贷平台</p>
    <input name="username" type="text" class="form-control uname" placeholder="用户名" />
    <input name="enterpassword" type="password" class="form-control pword m-b" placeholder="密码" />   			
    <input name="identityKey" type="text" class="form-control pword m-b" placeholder="验证码" />
    <img class="" id="imgIdentity" src="${ctx}/servlet/loginServlet?fun=identity" onclick="resetIdentity()">    		
    <button type="button" class="btn btn-primary btn-block btn-radius" onclick="login()">登录</button>    		
	<div class="alink">
		<a href="${ctx}/servlet/mainServlet?fun=register">免费注册</a>
		<a href="JavaScript:;">忘记密码</a>
		<a href="JavaScript:;">忘记用户名</a>
	</div>
</form>

接收方法一:

private void userLogin(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String userName=request.getParameter("username");//获取用户名
		String enterpassword=request.getParameter("enterpassword");//获取密码
		String identityKey=request.getParameter("identityKey");//获取验证码
		System.out.println("用户名:"+userName+"登录密码:"+enterpassword+"验证码:"+identityKey);		
	}

在这里插入图片描述
接收方法二:

private void userLogin(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");
	          }
		}	
}

接收方法三: 使用inputStream流来进行接收
(一般字符串啥的不用这个方法,一般是文件上传下载时候才会使用这种方法)
例子:比如填写个人信息带头像的那种就用这个

//获取请求fileItems:参数和文件都在里面
List<FileItem>fileItems=upload.parseRequest(request);
for (FileItem fileItem : fileItems) {//遍历一个的取
	if (fileItem.isFormField()) {//判断fileItem是不是表单元素(非文件)
	InputStream in=fileItem.getInputStream();//只能拿到流
	InputStreamReader reader=new InputStreamReader(in,"utf-8");
	BufferedReader bfReader=new BufferedReader(reader);
	String strValue=bfReader.readLine();//获取字段值
	String fieldName=fileItem.getFieldName();//获取字段名称
	}
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值