HttpServletRequest 获取 multipart/form-data 请求所有参数值
要获取 multipart/form-data 请求中的所有参数值,您可以使用 HttpServletRequest 的 getParts() 方法来获取请求中的所有部分(包括文件和参数)。然后,您可以遍历所有部分,并使用 Part 的 getInputStream() 方法来读取参数值。
以下是一个示例代码:
import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
import java.io.IOException;
import java.io.InputStream;
@WebServlet("/upload")
@MultipartConfig
public class UploadServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 获取所有部分(包括文件和参数)
for (Part part : request.getParts()) {
// 检查是否为参数部分
if (part.getContentType() == null) {
// 获取参数值
InputStream inputStream = part.getInputStream();
String value = new String(inputStream.readAllBytes());
System.out.println('参数值:' + value);
}
}
}
}
在上面的代码中,我们使用 getParts() 方法获取请求中的所有部分。然后,我们通过检查 part 的 contentType 是否为空来确定是否为参数部分。如果是参数部分,我们可以使用 part.getInputStream() 方法获取参数值的输入流,并将其读取为字符串。
请注意,上面的示例代码使用了 @WebServlet 和 @MultipartConfig 注解,这些注解可以帮助您配置 servlet 以处理 multipart/form-data 请求。
原文地址: https://www.cveoy.top/t/topic/quG7 著作权归作者所有。请勿转载和采集!