servlet中获取XMLHttpRequest提交的FormData参数
2017-05-11 17:39
405 查看
js代码
java代码
function SaveProgress(data) { var fd = new FormData(), xhr = new XMLHttpRequest(); fd.append('data', data); xhr.open('post', '/zkvos', true); xhr.onreadystatechange = function() { if (xhr.status == 200) { if (xhr.readyState == 4) { console.log(xhr.responseText); } } else { console.log('server error'); } } xhr.send(fd); }
java代码
package com.study; import java.io.IOException; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; 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 org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; @WebServlet("/zkvos") public class StudyOnlineServlet extends HttpServlet { private static final long serialVersionUID = 1L; public StudyOnlineServlet() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.getWriter().append("parameter error").append(request.getContextPath()); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Map<String, String> params = this.getParameters(request); String status = ""; if (this.checkParam(params)) { String data = params.get("data");//通过参数名拿到参数值 System.out.print(data); } else { status = "参数错误"; } response.getWriter().print(status); } /** * 获取FormData携带参数 * * @param request * @return */ @SuppressWarnings("unchecked") private Map<String, String> getParameters(HttpServletRequest request) { Map<String, String> params = new HashMap<>(); try { DiskFileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); List<FileItem> items; items = upload.parseRequest(request); for (FileItem item : items) { if (item.isFormField()) { // item.getFieldName();// 参数名 // item.getString();// 参数值 params.put(item.getFieldName(), item.getString()); } } } catch (FileUploadException e) { e.printStackTrace(); } return params; } /** * 检查参数是否完整 * * @param params * @return */ @SuppressWarnings("rawtypes") private Boolean checkParam(Map params) { String[] paramNames = { "d", "u", "c", "h", "e", "t", "f" }; for (String paramName : paramNames) { if (params.containsKey(paramName)) { if (params.get(paramName) == null) return false; } else { return false; } } return true; } }
相关文章推荐
- springMvc 完美解决 multipart/form-data 方式提交请求 在 Filter 中 ServletRequest.getParameter方法 获取不到参数的问题
- springMvc 完美解决 multipart/form-data 方式提交请求 在 Filter 中 ServletRequest.getParameter方法 获取不到参数的问题
- HTTP AJAX POST请求中参数以form data和request payload形式在servlet中的获取方式
- springMvc 完美解决 multipart/form-data 方式提交请求 在 Filter 中 ServletRequest.getParameter方法 获取不到参数的问题
- AJAX POST请求中参数以form data和request payload形式在servlet中的获取方式
- 如何使用Ajax(XMLHttpRequest)发送带参数的请求,以及如何在Servlet中获取请求中的参数
- AJAX POST请求中参数以form data和request payload形式在servlet中的获取方式
- AJAX POST请求中参数以form data和request payload形式在servlet中的获取方式
- AJAX POST请求中参数以form data和request payload形式在servlet中的获取方式
- AJAX POST请求中参数以form data和request payload形式在servlet中的获取方式
- [转]AJAX POST请求中参数以form data和request payload形式在servlet中的获取方式
- AJAX POST请求中参数以form data和request payload形式在servlet中的获取方式
- ajax上传文件,提交表单,使用FormData和XMLHttpRequest提交表单
- AJAX POST请求中参数以form data和request payload形式在servlet中的获取方式
- HttpServletRequest request 获取form参数的两种方式
- AJAX POST请求中参数以form data和request payload形式在servlet中的获取方式
- AJAX POST请求中参数以form data和request payload形式在servlet中的获取方式
- ajax上传文件,提交表单,使用FormData和XMLHttpRequest提交表单
- AJAX POST请求中参数以form data和request payload形式在servlet中的获取方式
- AJAX POST请求中参数以form data和request payload形式在servlet中的获取方式