您可以使用HttpServletRequestgetParameterMap()方法来获取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类型的请求。如果您还没有添加该库的依赖,请确保在您的项目中添加该库。

Java Servlet 获取 multipart/form-data 请求参数 - AccessControlFilter 示例

原文地址: https://www.cveoy.top/t/topic/quHi 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录