1、form表单提交,encrypt= “application/x-www-form-urlencoded” ,即常规的表单提交 , 使用POST请求,则请求头中的content-type指定值就是该值
Map<String,String> paramsMap = new HashMap<String,String>() ; Enumeration<String> parameterNames = request.getParameterNames(); while(parameterNames.hasMoreElements()) { String name = parameterNames.nextElement(); String value = request.getParameter(name); paramsMap.put(name, value) ; } log.info("paramsMap :" + paramsMap) ;
2、post方式提交, Content-Type 为 : application/json
需要用io流的方式接收参数, 一般为HttpClient请求
StringBuffer buf = new StringBuffer() ; BufferedReader bfr = new BufferedReader(new InputStreamReader(request.getInputStream())) ; String line = null ; while((line = bfr.readLine()) != null) { buf.append(line) ; } bfr.close(); log.info("params:" + buf.toString()) ;
3、form表单提交,encrypt= “multipart/form-data” , 其中可以上传文件。
需要导入apache 的 common.fileupload 相关jar包
request.setCharacterEncoding("UTF-8") ; DiskFileItemFactory factory = new DiskFileItemFactory () ; ServletFileUpload upload = new ServletFileUpload(factory ); upload.setHeaderEncoding("UTF-8") ; List items = upload.parseRequest(request) ; Map<String,String> params = new HashMap<String,String>(); for(Object obj : items){ FileItem fileItem = (FileItem)obj ; if(fileItem.isFormField()){ params.put(fileItem.getFieldName(),fileItem.getString("UTF-8")) ;//页面编码是UTF-8 } } log.info("params:" + params) ;