request获取请求参数共有四个方法,都是需要知道的。
1. getParameter(name) --- String 通过name获得值
public String getParameter(String name);
根据请求参数名称获取对应的值。例如登录窗口,提交后,可以通过此方法获取用户名和密码的值。
2. getParameterValues --- String[] 通过name获得多值CheckBox
public String[] getParameterValues(String name);
对于值不是一个的控件,如CheckBox,在获取时,应该getParameterValues这样的方法。
3. getParameterNames --- Enumeration<String> 获得所有name
public Enumeration getParameterNames();
它获取的是表单中所有的name值。
4. getParameterMap --- Map<String, String[]> key:name value:多值
public Map<String, String[]> getParameterMap();
这个方法必须要会,大量应用于框架中。这个方法把表单里面的数据都封装到了map里面,用表单里面每个控件的name作为key,把表单的控件的值作为value,value是一个维数组,string类型的数组。
代码如下:
reg.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>
<form action="/day8_2/registerServlet" method="get">
username:<input type="text" name="username"><br>
password:<input type="password" name="password"><br>
sex:<input type="radio" name="sex" checked="checked" value="male">男
<input type="radio" name="sex" value="female">女<br>
hobby:<input type="checkbox" name="hobby" value="piano">钢琴
<input type="checkbox" name="hobby" value="basketball">篮球
<input type="checkbox" name="hobby" value="football">足球<br>
<input type="submit" value="register">
</form>
</body>
</html>
RegisterServlet
package com.il.servlet.request;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.Enumeration;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class RegisterServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取请求参数 1. getParameter()
/*
//获得用户名:
String username = request.getParameter("username");//参数要与JSP中的name值对应。
System.out.println(username);
//获取密码
String password = request.getParameter("password");
System.out.println(password);
//获取性别
String sex = request.getParameter("sex");
System.out.println(sex);
//获取爱好
String[] hobbies = request.getParameterValues("hobby");
System.out.println(Arrays.toString(hobbies));
*/
/*
//获取表单中的所有name值
Enumeration<String> names = request.getParameterNames();
while(names.hasMoreElements()) {
System.out.println(names.nextElement());
}
*/
Map<String, String[]> map = request.getParameterMap();
for(String key : map.keySet()) {
System.out.println(key + " " + Arrays.toString(map.get(key)));
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}