在实际开发中,经常需要获取表单提交的表单数据,如用户名、密码、电子邮件等。
获取请求参数的方法
String getParameter(String name)
该方法用于获取指定名称的参数值,如指定名称的参数含有多个,则方法返回第一个出现的参数值。
String [] getParameterValues(String name)
HTTP请求消息中含有多个相同名称的参数,如要获取HTTP请求消息中的同一个参数所对应的所有参数值,那么就应该使用String [] getParameterValues(String name),该方法用于返回一个String类型的数组。
Enumeration getParameterNames()
用于返回一个包含请求消息中的所有参数。
Map getParameterMap()
该方法用于将请求消息中的所有参数名和值装进一个Map对象中返回。
案例
form.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="/Test4/RequestParamsServlet" method="post">
用户名:<input type="text" name = "username"></br>
密码:<input type="password" name="password"></br>
爱好:
<input type="checkbox" name="hobby" value="sing">唱歌
<input type="checkbox" name="hobby" value="dance">跳舞
<input type="checkbox" name="hobby" value="football">足球</br>
<input type="submit" value="提交">
</form>
</body>
</html>
RequestParameterServlet.java
package Test;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class RequestParamsServlet
*/
public class RequestParamsServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
System.out.println("用户名"+username);
System.out.println("密码"+password);
//获取参数名为“hobby”的值
String []hobbys = request.getParameterValues("hobby");
System.out.println("爱好:");
for(int i = 0 ; i<hobbys.length;i++) {
System.out.println(hobbys[i]);
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
实验结果:
总结:
获取指定名称的一个参数值就用request.getParameter(String name)方法,获取指定名称的多个参数值就用request.getParameterValues(String name)方法,返回多个参数值。