一、获取请求参数方法
前台页面
代码
<html lang="en">
<head>
<meta charset="UTF-8">
</head>
<body>
<form action="/req1" method="post">
<input type="text" name = "username"><br>
<input type = "password" name="password">
<br>
<input type = "checkbox" value = "1" name = "hobby">羽毛球
<input type = "checkbox" value = "2" name = "hobby">跑步<br>
男<Input type ="radio" name = "gender" value="boy">
女<Input type ="radio" name = "gender" value="girl"><br>
<input type="submit">
</form>
</body>
</html>
编写测试servlet
package com.brrbaii.controller;
import javax.servlet.Servlet;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedReader;
import java.io.IOException;
import java.util.Map;
@WebServlet("/req1")
public class requestDemo extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doGet(req,resp);
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//1,获取所有请求参数
Map<String, String[]> parameterMap = req.getParameterMap();
for(String key : parameterMap.keySet()){
System.out.print(key+':');
String values[] = parameterMap.get(key);
for(String value : values){
System.out.print(value + " ");
}
System.out.println();
}
System.out.println("--------------------------------");
//2,根据key获取参数值,数组
String[] hobbies = req.getParameterValues("hobby");
for(String hobby : hobbies){
System.out.println(hobby);
}
System.out.println("--------------------------------");
//3,根据key获取单个值
final String password = req.getParameter("password");
System.out.println(password);
}
}
输出结果
二、中文乱码
POST //解决乱码:POST getReader() //设置字符输入流的编码 request.setCharacterEncoding("UTF-8");GET
String username = req.getParameter("username"); byte[] bytes = username.getBytes(StandardCharsets.ISO_8859_1); username = new String(bytes,StandardCharsets.UTF_8);