Java Servlet 获取 multipart/form-data 请求参数 - AccessControlFilter 示例
您可以使用HttpServletRequest的getParameterMap()方法来获取multipart/form-data类型的请求中的所有参数值。这个方法返回一个Map<String, String[]>对象,其中键是参数名,值是参数值的字符串数组。
以下是一个示例代码:
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.IOException;
import java.util.Map;
@WebServlet("/upload")
public class UploadServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 设置请求的编码格式为UTF-8,防止中文乱码
request.setCharacterEncoding("UTF-8");
// 检查请求是否为multipart/form-data类型
if (ServletFileUpload.isMultipartContent(request)) {
// 创建一个ServletFileUpload对象
ServletFileUpload upload = new ServletFileUpload();
try {
// 解析请求,获取所有参数值
Map<String, String[]> parameterMap = request.getParameterMap();
// 遍历参数值
for (String paramName : parameterMap.keySet()) {
String[] paramValues = parameterMap.get(paramName);
for (String paramValue : paramValues) {
System.out.println(paramName + " = " + paramValue);
}
}
// 其他处理逻辑...
} catch (FileUploadException e) {
e.printStackTrace();
}
}
}
}
在上面的示例中,我们首先使用ServletFileUpload.isMultipartContent(request)方法检查请求是否为multipart/form-data类型。然后使用request.getParameterMap()方法获取所有参数值的映射。最后,我们遍历映射,并打印参数名和参数值。
请注意,上述代码中使用了Apache Commons FileUpload库来处理multipart/form-data类型的请求。如果您还没有添加该库的依赖,请确保在您的项目中添加该库。
原文地址: https://www.cveoy.top/t/topic/quHi 著作权归作者所有。请勿转载和采集!