/**
* 获取所有请求参数键值对:
* key:String类型;
* value:共3种:
* 1.文件是文件本身;
* 2.String;(String[]长度为1的,就为String类型;>1就是String[]类型)
* 3.String[];
* @return
*/
@SuppressWarnings("unchecked")
public HashMap getAllParams(){
if (null == request){
return null;
}
Map<String,String[]> paramNames = request.getParameterMap();//请求参数原始数据
HashMap params = new HashMap();//返回的参数键值对
//普通参数
Iterator<Map.Entry<String,String[]>> it=paramNames.entrySet().iterator();
Map.Entry<String,String[]> entry =null;
String key = null;
String[] value = null;
Integer intValue = null;
while(it.hasNext()) {
entry = it.next();
key = entry.getKey();
value = entry.getValue();
if(Tool.processNull(value).length == 0){
params.put(key, "");
} else if (Tool.processNull(value).length == 1) {
params.put(key, value[0]);
} else {
params.put(key, value);
}
}
parseMultipartPost();
if (null == requestItems || requestItems.isEmpty())
return params;
for(int i=0;i<requestItems.size();i++){
FileItem item = (FileItem) requestItems.get(i);
if (!item.isFormField()) {//信息为文件
params.put(item.getFieldName(), item);
}
}
return params;
}
private void parseMultipartPost(){
try{
// 是否为multipart(文件上传)类型
if (!ServletFileUpload.isMultipartContent(request)){
return;
}
// 文件上传处理工厂
FileItemFactory factory = new DiskFileItemFactory();
// 创建文件上传处理器
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setHeaderEncoding("utf-8");
requestItems = upload.parseRequest(request);
}catch(Exception e){
e.printStackTrace();
}
return;
}
网友评论