X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2Fmir%2Futil%2FHTTPParsedRequest.java;h=3d9d96ff3e4c7afb99f2193dd888e01d2b6eafec;hb=63e0ee1fb8038eb6d8f0190cf38c3b3ab2727216;hp=961a40fb7cd741131817a6f5bb596f6ae16160b2;hpb=5f5f4f42baee0c4dce93a3ad63bb6bb5a1ea9850;p=mir.git diff --git a/source/mir/util/HTTPParsedRequest.java b/source/mir/util/HTTPParsedRequest.java index 961a40fb..3d9d96ff 100755 --- a/source/mir/util/HTTPParsedRequest.java +++ b/source/mir/util/HTTPParsedRequest.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2001, 2002 The Mir-coders group + * Copyright (C) 2001, 2002 The Mir-coders group * * This file is part of Mir. * @@ -18,31 +18,23 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * In addition, as a special exception, The Mir-coders gives permission to link - * the code of this program with the com.oreilly.servlet library, any library - * licensed under the Apache Software License, The Sun (tm) Java Advanced - * Imaging library (JAI), The Sun JIMI library (or with modified versions of - * the above that use the same license as the above), and distribute linked - * combinations including the two. You must obey the GNU General Public - * License in all respects for all of the code used other than the above - * mentioned libraries. If you modify this file, you may extend this exception - * to your version of the file, but you are not obligated to do so. If you do - * not wish to do so, delete this exception statement from your version. + * the code of this program with any library licensed under the Apache Software License, + * The Sun (tm) Java Advanced Imaging library (JAI), The Sun JIMI library + * (or with modified versions of the above that use the same license as the above), + * and distribute linked combinations including the two. You must obey the + * GNU General Public License in all respects for all of the code used other than + * the above mentioned libraries. If you modify this file, you may extend this + * exception to your version of the file, but you are not obligated to do so. + * If you do not wish to do so, delete this exception statement from your version. */ - package mir.util; -import java.util.Arrays; -import java.util.Enumeration; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Vector; -import javax.servlet.http.HttpServletRequest; - -import org.apache.commons.fileupload.FileItem; -import org.apache.commons.fileupload.FileUpload; import mir.log.LoggerWrapper; +import org.apache.commons.fileupload.DiskFileUpload; +import org.apache.commons.fileupload.FileItem; + +import javax.servlet.http.HttpServletRequest; +import java.util.*; public class HTTPParsedRequest { static final String MULTIPART_FORMDATA_CONTENTTYPE = "multipart/form-data"; @@ -52,23 +44,21 @@ public class HTTPParsedRequest { private int maxUploadSize; private String tempDir; - private Map stringValues; - private Map listValues; + private Map parameterStringValues; + private Map parameterListValues; private List files; - private LoggerWrapper logger; + private LoggerWrapper logger = new LoggerWrapper("Utility.HTTPParsedRequest"); public HTTPParsedRequest(HttpServletRequest aRequest, String anEncoding, int aMaxUploadSize, String aTempDir) throws UtilExc, UtilFailure { - logger = new LoggerWrapper("Utility,HTTPParsedRequest"); - request = aRequest; encoding = anEncoding; maxUploadSize = aMaxUploadSize; tempDir = aTempDir; - stringValues = new HashMap(); - listValues = new HashMap(); - files = new Vector(); + parameterStringValues = new HashMap(); + parameterListValues = new HashMap(); + files = new ArrayList(); parseRequest(aRequest); } @@ -82,7 +72,15 @@ public class HTTPParsedRequest { } public String getParameter(String aName) { - return (String) stringValues.get(aName); + return (String) parameterStringValues.get(aName); + } + + public Collection getParameterNames() { + return parameterStringValues.keySet(); + } + + public String getHeader(String aName) { + return request.getHeader(aName); } public List getFiles() { @@ -90,10 +88,10 @@ public class HTTPParsedRequest { } public List getParameterList(String aName) { - if (listValues.containsKey(aName)) - return (List) listValues.get(aName); + if (parameterListValues.containsKey(aName)) + return (List) parameterListValues.get(aName); else - return new Vector(); + return Collections.EMPTY_LIST; } protected void parseRequest(HttpServletRequest aRequest) throws UtilExc, UtilFailure { @@ -107,9 +105,9 @@ public class HTTPParsedRequest { while (e.hasMoreElements()) { String name = (String) e.nextElement(); - stringValues.put(name, aRequest.getParameter(name)); - List listValue = new Vector(Arrays.asList(aRequest.getParameterValues(name))); - listValues.put(name, listValue); + parameterStringValues.put(name, aRequest.getParameter(name)); + List listValue = new ArrayList(Arrays.asList(aRequest.getParameterValues(name))); + parameterListValues.put(name, listValue); } if (parts.size()>0 && ((String) parts.get(0)).trim().toLowerCase().equals(MULTIPART_FORMDATA_CONTENTTYPE)) { @@ -125,10 +123,11 @@ public class HTTPParsedRequest { protected void parseMultipartRequest() throws UtilExc, UtilFailure { try { - FileUpload upload = new FileUpload(); + DiskFileUpload upload = new DiskFileUpload(); + upload.setSizeThreshold(100000); upload.setSizeMax(maxUploadSize); - upload.setSizeThreshold(4096); + upload.setHeaderEncoding(encoding); upload.setRepositoryPath(tempDir); List items = upload.parseRequest(request); @@ -138,14 +137,14 @@ public class HTTPParsedRequest { FileItem item = (FileItem) i.next(); if (item.isFormField()) { - if (!stringValues.containsKey(item.getName())) { - stringValues.put(item.getFieldName(), item.getString(encoding)); + if (!parameterStringValues.containsKey(item.getName())) { + parameterStringValues.put(item.getFieldName(), item.getString(encoding)); } - List listValue = (List) listValues.get(item.getFieldName()); + List listValue = (List) parameterListValues.get(item.getFieldName()); if (listValue == null) { - listValue = new Vector(); - listValues.put(item.getFieldName(), listValue); + listValue = new ArrayList(); + parameterListValues.put(item.getFieldName(), listValue); } listValue.add(item.getString(encoding)); }