继续来做HttpServletRequest获取请求正文的方法练习,本篇就学习一个方法getParameterNames(),也就是获取表单中所有name属性的值的一个方法,例如我们注册表单中的userName,pwd,hobby等。
1.register.html内容
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Register Page</title>
</head>
<body>
<form action="/Servlet01/demo4" method="post">
用户名:<input type="text" name="userName" /><br/>
密码:<input type="password" name="pwd" /><br/>
性别:<input type="radio" name="gender" value="男" checked="checked"/>男
<input type="radio" name="gender" value="女" />女<br/>
爱好:
<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="gz">广州</option>
</select><br/>
<input type="submit" value="注册"/>
</form>
</body>
</html>
2.ServletDemo4.java
package com.anthony.servlet;
import java.io.IOException;
import java.util.Enumeration;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ServletDemo4 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
//获取表单中全部name的值
Enumeration<String> names = req.getParameterNames();
while(names.hasMoreElements()) {
String name = names.nextElement();
//考虑到hobby下有多个值
String[] values = req.getParameterValues(name);
for (int i = 0; values != null && i < values.length; i++) {
System.out.println(name +"\t"+ values[i]);
}
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
测试结果
userName AnthonyLiu
pwd dfewfewf
gender 男
hobby 篮球
hobby 编码
city SH