枚举类遍历表单的请求参数

本文对比了普通方式与枚举类遍历表单请求参数的方法,指出当表单字段众多时,枚举类方式能减少代码量,提高可维护性。在1部分介绍了普通方式,2部分展示了枚举类方法,3部分讨论了两者优缺点。
摘要由CSDN通过智能技术生成

1 普通方式遍历提交表单

通过jsp来实现
编写一个html静态页面,把表单提交到 4_2.jsp页面上

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>欢迎注册</h1>
<form method="post" action="4_2.jsp">
请输入用户名:<input type="text" name="username"><br>
请输入密码:<input type="password" name="userpwd"><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="羽毛球">羽毛球
		<input type="checkbox" name=hobby value="橄榄球">橄榄球
		
<input type="submit" value="提交">
<input type="reset" value="重选">
		
</form>
</body>
</html>

4_2.jsp页面
后台接收

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

<%
	//设置编码格式
	request.setCharacterEncoding("utf-8");
	//接收表单提交的参数
	String name = request.getParameter("username");
	String password = request.getParameter("userpwd");
	
	String[] hobby = request.getParameterValues("hobby");
	
	//遍历输出
	out.print("username:"+name);
	out.print("password:"+password+"<br>");
	out.print("兴趣爱好:"+"<br>");
	for(String i : hobby){
		out.print(i);
		out.print("<br>");
	}
%>
</body>
</html>

运行结果
在这里插入图片描述
在这里插入图片描述

2 枚举类遍历表单的请求参数

同样的注册页面
只不过把页面提交到4_3.jsp页面上

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

<h1>欢迎注册</h1>

<form method="post" action="4_3.jsp">

请输入用户名:<input type="text" name="username"><br>
请输入密码:<input type="password" name="userpwd"><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="羽毛球">羽毛球
		<input type="checkbox" name=hobby value="橄榄球">橄榄球
		
<input type="submit" value="提交">
<input type="reset" value="重选">
		
</form>
</body>
</html>

4_3.jsp页面

<%@page import="java.util.Enumeration"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

<% 
//设置字符编码
request.setCharacterEncoding("utf-8");

//使用枚举来遍历
String pm = "";
Enumeration pms = request.getParameterNames();

while(pms.hasMoreElements()){
	pm = (String)pms.nextElement(); // 代表表单项
	out.print(pm);
	String num = request.getParameter(pm);
	out.print(num);
	
	if(pm.equals("hobby")){
		String[] hobby = request.getParameterValues("hobby");
		for(String i : hobby){
			out.print(i+"<br>");
		}
	}
	
}

%>
</body>
</html>

提交结果
在这里插入图片描述

3 两则之间的优缺点

如果要提交的表单项中有很多很多,那么通过普通方式来实现输出的话就需要写很多很多的request.getParameter(), request.getParameterValues() 方法来实现接收参数,而通过枚举的方式就可以避免这种复杂

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值