jodd.servlet
Class MultipartRequest

java.lang.Object
  extended byjodd.servlet.MultipartRequest

public class MultipartRequest
extends java.lang.Object

Handles multipart requests and extract uploaded files and parameters from it. Multipart forms should be defined as:

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

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

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


Constructor Summary
MultipartRequest()
          Default constructor, for using MultipartRequest in steps.
MultipartRequest(javax.servlet.http.HttpServletRequest request)
          Constructor that loads request and extracts all uploaded files and parameters without encoding.
MultipartRequest(javax.servlet.http.HttpServletRequest request, java.lang.String encoding)
          Constructor that loads request and extracts all uploaded files and parameters using specified encoding.
 
Method Summary
static java.util.Hashtable[] extractParameters(byte[] binArray)
          Extracts uploaded files and parameters from the request data, not using any encoding.
static java.util.Hashtable[] extractParameters(byte[] binArray, java.lang.String encoding)
          Extracts uploaded files and parameters from the request data.
static java.lang.String getDataFieldValue(java.lang.String dataHeader, java.lang.String fieldName)
          Gets value of data field
 java.lang.String getParameter(java.lang.String paramName)
          Returns value of a parameter.
 java.util.Enumeration getParameterNames()
          Returns names of all availiable parameters.
 java.lang.String[] getParameterValues(java.lang.String paramName)
           
static byte[] getRequestData(javax.servlet.http.HttpServletRequest request)
          Loads request data into a byte array.
 UploadedFile getUploadedFile(java.lang.String paramName)
          Returns uploaded file.
 java.util.Enumeration getUploadedFileNames()
          Returns parameter names of all uploaded files.
 void load(javax.servlet.http.HttpServletRequest request)
          Loads http request manually without encoding.
 void load(javax.servlet.http.HttpServletRequest request, java.lang.String encoding)
          Loads http request manually, with susing of specific encoding.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MultipartRequest

public MultipartRequest()
Default constructor, for using MultipartRequest in steps.


MultipartRequest

public MultipartRequest(javax.servlet.http.HttpServletRequest request,
                        java.lang.String encoding)
                 throws java.io.IOException
Constructor that loads request and extracts all uploaded files and parameters using specified encoding. If request is not multipart, all parameters will be read, anyway.

Parameters:
request - http request
encoding - encoding
Throws:
java.io.IOException

MultipartRequest

public MultipartRequest(javax.servlet.http.HttpServletRequest request)
                 throws java.io.IOException
Constructor that loads request and extracts all uploaded files and parameters without encoding.

Parameters:
request - http request
Throws:
java.io.IOException
See Also:
MultipartRequest(HttpServletRequest, String)
Method Detail

load

public void load(javax.servlet.http.HttpServletRequest request)
          throws java.io.IOException
Loads http request manually without encoding.

Parameters:
request - http request.
Throws:
java.io.IOException
See Also:
load(HttpServletRequest, String)

load

public void load(javax.servlet.http.HttpServletRequest request,
                 java.lang.String encoding)
          throws java.io.IOException
Loads http request manually, with susing of specific encoding. If request is not multipart, all parameters will be read, anyway.

Parameters:
request - http request.
encoding - encoding that will be used during extracting
Throws:
java.io.IOException

getParameter

public java.lang.String getParameter(java.lang.String paramName)
Returns value of a parameter.

Parameters:
paramName - parameter name
Returns:
parameer value, or null if not found

getParameterNames

public java.util.Enumeration getParameterNames()
Returns names of all availiable parameters.

Returns:
enumeration of all parameters names

getParameterValues

public java.lang.String[] getParameterValues(java.lang.String paramName)

getUploadedFile

public UploadedFile getUploadedFile(java.lang.String paramName)
Returns uploaded file.

Parameters:
paramName - parameter name of the uploaded file
Returns:
uploaded file or null if parameter name not found

getUploadedFileNames

public java.util.Enumeration getUploadedFileNames()
Returns parameter names of all uploaded files.

Returns:
enumeration of all uploaded files parameter names

getRequestData

public static byte[] getRequestData(javax.servlet.http.HttpServletRequest request)
                             throws java.io.IOException
Loads request data into a byte array.

Parameters:
request - http request
Returns:
byte array containing request data
Throws:
java.io.IOException

extractParameters

public static java.util.Hashtable[] extractParameters(byte[] binArray)
Extracts uploaded files and parameters from the request data, not using any encoding.

Parameters:
binArray - binarry array of loaded request data
Returns:
array with two Hashtables that contains parameters and uploaded files
See Also:
getRequestData(javax.servlet.http.HttpServletRequest), extractParameters(byte[], String)

extractParameters

public static java.util.Hashtable[] extractParameters(byte[] binArray,
                                                      java.lang.String encoding)
Extracts uploaded files and parameters from the request data. The result is returned as array of two Hashtables. The first one contains parameter data, and the second one contains uploaded file data.

Parameters:
binArray - binarry array of loaded request data
encoding - encoding for parameters, if null encoding will not be used
Returns:
array with two Hashtables that contains parameters and uploaded files
See Also:
getRequestData(javax.servlet.http.HttpServletRequest)

getDataFieldValue

public static java.lang.String getDataFieldValue(java.lang.String dataHeader,
                                                 java.lang.String fieldName)
Gets value of data field

Parameters:
dataHeader - header
fieldName - field's name
Returns:
value or empty string if not founded


Jodd v0.24.5 Javadoc