jodd.servlet.upload
Class MultipartRequest

java.lang.Object
  extended by jodd.servlet.upload.MultipartStreamParser
      extended by jodd.servlet.upload.MultipartRequest

public class MultipartRequest
extends MultipartStreamParser

Handles multi-part requests and extract uploaded files and parameters from it. Multi-part forms should be defined as:

<form method="post" enctype="multipart/form-data" accept-charset="charset"...

"accept-charset" may be used in case when jsp page uses specific encoding. If default encoding is used, this attribute is not required.

MultipleRequest class may be created in two ways:
1) with the constructors, when user must prevent instantiating more than once;
2) using static factory methods, which always return valid MultipleRequest instance.

This class loads complete request. To prevent big uploads (and potential DoS attacks) check content length before loading.


Field Summary
 
Fields inherited from class jodd.servlet.upload.MultipartStreamParser
fileUploadFactory, requestFiles, requestParameters
 
Constructor Summary
MultipartRequest(javax.servlet.http.HttpServletRequest request)
           
MultipartRequest(javax.servlet.http.HttpServletRequest request, FileUploadFactory fileUploadFactory)
           
MultipartRequest(javax.servlet.http.HttpServletRequest request, FileUploadFactory fileUploadFactory, java.lang.String encoding)
          Creates new multi-part request with form encoding and file upload factory.
MultipartRequest(javax.servlet.http.HttpServletRequest request, java.lang.String encoding)
           
 
Method Summary
 java.lang.String getCharacterEncoding()
          Returns current encoding.
 int getContentLength()
          Returns request content length.
static MultipartRequest getInstance(javax.servlet.http.HttpServletRequest request)
           
static MultipartRequest getInstance(javax.servlet.http.HttpServletRequest request, FileUploadFactory fileUploadFactory)
           
static MultipartRequest getInstance(javax.servlet.http.HttpServletRequest request, FileUploadFactory fileUploadFactory, java.lang.String encoding)
          Returns a new instance of MultipleRequest if it was not created before during current request.
static MultipartRequest getInstance(javax.servlet.http.HttpServletRequest request, java.lang.String encoding)
           
static MultipartRequest getParsedInstance(javax.servlet.http.HttpServletRequest request)
           
static MultipartRequest getParsedInstance(javax.servlet.http.HttpServletRequest request, FileUploadFactory fileUploadFactory)
           
static MultipartRequest getParsedInstance(javax.servlet.http.HttpServletRequest request, FileUploadFactory fileUploadFactory, java.lang.String encoding)
          Returns parsed instance of MultipartRequest.
static MultipartRequest getParsedInstance(javax.servlet.http.HttpServletRequest request, java.lang.String encoding)
           
 javax.servlet.http.HttpServletRequest getServletRequest()
          Returns actual http servlet request instance.
 void parseMultipartRequest()
          Loads and parse multi-part request.
 void parseRequest()
          Checks if request if multi-part and parse it.
 
Methods inherited from class jodd.servlet.upload.MultipartStreamParser
getFile, getFileParameterNames, getFiles, getParameter, getParameterNames, getParameterValues, isLoaded, parseRequestStream, putFile, putParameter, putParameters, setLoaded
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MultipartRequest

public MultipartRequest(javax.servlet.http.HttpServletRequest request)
See Also:
MultipartRequest(javax.servlet.http.HttpServletRequest, FileUploadFactory, String)

MultipartRequest

public MultipartRequest(javax.servlet.http.HttpServletRequest request,
                        FileUploadFactory fileUploadFactory)
See Also:
MultipartRequest(javax.servlet.http.HttpServletRequest, FileUploadFactory, String)

MultipartRequest

public MultipartRequest(javax.servlet.http.HttpServletRequest request,
                        java.lang.String encoding)
See Also:
MultipartRequest(javax.servlet.http.HttpServletRequest, FileUploadFactory, String)

MultipartRequest

public MultipartRequest(javax.servlet.http.HttpServletRequest request,
                        FileUploadFactory fileUploadFactory,
                        java.lang.String encoding)
Creates new multi-part request with form encoding and file upload factory. After construction stream is not yet parsed! Use parseMultipartRequest() or parseRequest() to parse before further usage.

If not specified, character encoding is read from the request. If not specified there, default Jodd encoding is used.

Multiple instantiation doesn't work, since input stream can be parsed just once. Still, if it is needed, use getInstance(javax.servlet.http.HttpServletRequest, FileUploadFactory, String) instead.

Parameters:
request - http request
encoding - form encoding or null
fileUploadFactory - file factory, or null for default factory
Method Detail

getServletRequest

public javax.servlet.http.HttpServletRequest getServletRequest()
Returns actual http servlet request instance.


getContentLength

public int getContentLength()
Returns request content length. Usually used before loading, to check the upload size.


getCharacterEncoding

public java.lang.String getCharacterEncoding()
Returns current encoding.


getInstance

public static MultipartRequest getInstance(javax.servlet.http.HttpServletRequest request,
                                           FileUploadFactory fileUploadFactory,
                                           java.lang.String encoding)
Returns a new instance of MultipleRequest if it was not created before during current request.


getParsedInstance

public static MultipartRequest getParsedInstance(javax.servlet.http.HttpServletRequest request,
                                                 FileUploadFactory fileUploadFactory,
                                                 java.lang.String encoding)
                                          throws java.io.IOException
Returns parsed instance of MultipartRequest.

Throws:
java.io.IOException

getInstance

public static MultipartRequest getInstance(javax.servlet.http.HttpServletRequest request,
                                           java.lang.String encoding)

getParsedInstance

public static MultipartRequest getParsedInstance(javax.servlet.http.HttpServletRequest request,
                                                 java.lang.String encoding)
                                          throws java.io.IOException
Throws:
java.io.IOException

getInstance

public static MultipartRequest getInstance(javax.servlet.http.HttpServletRequest request,
                                           FileUploadFactory fileUploadFactory)

getParsedInstance

public static MultipartRequest getParsedInstance(javax.servlet.http.HttpServletRequest request,
                                                 FileUploadFactory fileUploadFactory)
                                          throws java.io.IOException
Throws:
java.io.IOException

getInstance

public static MultipartRequest getInstance(javax.servlet.http.HttpServletRequest request)

getParsedInstance

public static MultipartRequest getParsedInstance(javax.servlet.http.HttpServletRequest request)
                                          throws java.io.IOException
Throws:
java.io.IOException

parseMultipartRequest

public void parseMultipartRequest()
                           throws java.io.IOException
Loads and parse multi-part request. It doesn't check if request is multi-part. Must be called on same request at most once.

Throws:
java.io.IOException

parseRequest

public void parseRequest()
                  throws java.io.IOException
Checks if request if multi-part and parse it. If request is not multi-part it copies all parameters, to make usage the same in both cases.

Throws:
java.io.IOException
See Also:
MultipartRequestWrapper


Copyright © 2003-2012 Jodd Team