Servlet post接收form-data参数值java

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/z740852294/article/details/78288040

编写接口的时候,使用“multipart/form-data”传输时,如果使用request.getParameter()接收参数,数值会为null,可以使用下面方法接受数据:

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 针对post请求,设置允许接收中文
        request.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");
        System.out.println("添加任务");
        PrintWriter out = response.getWriter();

        try {
            DiskFileItemFactory factory = new DiskFileItemFactory();   
            ServletFileUpload upload = new ServletFileUpload(factory);   
            upload.setHeaderEncoding("UTF-8");  
            List items = upload.parseRequest(request);  
            Map params = new HashMap();   
            for(Object object:items){  
                FileItem fileItem = (FileItem) object;   
                if (fileItem.isFormField()) {   
                    params.put(fileItem.getFieldName(), fileItem.getString("utf-8"));//如果你页面编码是utf-8的   
                }  
            }   
            //使用params.get获取参数值
            String send_time = (String) params.get("send_time");
             。。。。。。。。

            // 输出数据
            out.println("1");   

        } catch (FileUploadException e1) {
            e1.printStackTrace();
        }   
        out.close();
    }

前提是需要导入commons-fileupload-1.3.jar 和 commons-io-2.5.jar 包
jar包下载:
http://download.csdn.net/download/z740852294/10030503

猜你喜欢

转载自blog.csdn.net/z740852294/article/details/78288040