org.apache.struts.upload
Class MultipartRequestWrapper

java.lang.Object
  |
  +--org.apache.struts.upload.MultipartRequestWrapper
All Implemented Interfaces:
javax.servlet.http.HttpServletRequest, javax.servlet.ServletRequest

public class MultipartRequestWrapper
extends java.lang.Object
implements javax.servlet.http.HttpServletRequest

This class functions as a wrapper around HttpServletRequest to provide working getParameter methods for multipart requests. Once Struts requires Servlet 2.3, this class will definately be changed to extend javax.servlet.http.HttpServletRequestWrapper instead of implementing HttpServletRequest. Servlet 2.3 methods are implemented to return null or do nothing if called on. Use getRequest to retrieve the underlying HttpServletRequest object and call on the 2.3 method there, the empty methods are here only so that this will compile with the Servlet 2.3 jar. This class exists temporarily in the process() method of ActionServlet, just before the ActionForward is processed and just after the Action is performed, the request is set back to the original HttpServletRequest object.


Field Summary
private static org.apache.commons.logging.Log log
          Logging instance
protected  java.util.Map parameters
          The parameters for this multipart request
protected  javax.servlet.http.HttpServletRequest request
          The underlying HttpServletRequest
 
Constructor Summary
MultipartRequestWrapper(javax.servlet.http.HttpServletRequest request)
           
 
Method Summary
 java.lang.Object getAttribute(java.lang.String name)
           
 java.util.Enumeration getAttributeNames()
           
 java.lang.String getAuthType()
           
 java.lang.String getCharacterEncoding()
           
 int getContentLength()
           
 java.lang.String getContentType()
           
 java.lang.String getContextPath()
           
 javax.servlet.http.Cookie[] getCookies()
           
 long getDateHeader(java.lang.String name)
           
 java.lang.String getHeader(java.lang.String name)
           
 java.util.Enumeration getHeaderNames()
           
 java.util.Enumeration getHeaders(java.lang.String name)
           
 javax.servlet.ServletInputStream getInputStream()
           
 int getIntHeader(java.lang.String name)
           
 java.lang.String getLocalAddr()
          Use Reflection to invoke Servlet 2.4 getLocalAddr method on the wrapped Request.
 java.util.Locale getLocale()
           
 java.util.Enumeration getLocales()
           
 java.lang.String getLocalName()
          Use Reflection to invoke Servlet 2.4 getLocalName method on the wrapped Request.
 int getLocalPort()
          Use Reflection to invoke Servlet 2.4 getLocalPort method on the wrapped Request.
 java.lang.String getMethod()
           
 java.lang.String getParameter(java.lang.String name)
          Attempts to get a parameter for this request.
 java.util.Map getParameterMap()
          Implements the Servlet 2.3 getParameterMap method.
 java.util.Enumeration getParameterNames()
          Returns the names of the parameters for this request.
 java.lang.String[] getParameterValues(java.lang.String name)
           
 java.lang.String getPathInfo()
           
 java.lang.String getPathTranslated()
           
 java.lang.String getProtocol()
           
 java.lang.String getQueryString()
           
 java.io.BufferedReader getReader()
           
 java.lang.String getRealPath(java.lang.String path)
           
 java.lang.String getRemoteAddr()
           
 java.lang.String getRemoteHost()
           
 int getRemotePort()
          Use Reflection to invoke Servlet 2.4 getRemotePort method on the wrapped Request.
 java.lang.String getRemoteUser()
           
 javax.servlet.http.HttpServletRequest getRequest()
          Returns the underlying HttpServletRequest for this wrapper
 javax.servlet.RequestDispatcher getRequestDispatcher(java.lang.String path)
           
 java.lang.String getRequestedSessionId()
           
 java.lang.String getRequestURI()
           
 java.lang.StringBuffer getRequestURL()
          Use Reflection to invoke Servlet 2.3 getRequestURL method on the wrapped Request.
 java.lang.String getScheme()
           
 java.lang.String getServerName()
           
 int getServerPort()
           
 java.lang.String getServletPath()
           
 javax.servlet.http.HttpSession getSession()
           
 javax.servlet.http.HttpSession getSession(boolean create)
           
 java.security.Principal getUserPrincipal()
           
private  java.lang.Object invokeRequestMethod(java.lang.String name, java.lang.Object[] args)
          Convenience method which uses reflection to invoke a method on the Request.
 boolean isRequestedSessionIdFromCookie()
          Use Reflection to invoke Servlet 2.3 isRequestedSessionIdFromCookie method on the wrapped Request.
 boolean isRequestedSessionIdFromUrl()
           
 boolean isRequestedSessionIdFromURL()
           
 boolean isRequestedSessionIdValid()
           
 boolean isSecure()
           
 boolean isUserInRole(java.lang.String user)
           
 void removeAttribute(java.lang.String name)
           
 void setAttribute(java.lang.String name, java.lang.Object o)
           
 void setCharacterEncoding(java.lang.String encoding)
          Use Reflection to invoke Servlet 2.3 setCharacterEncoding method on the wrapped Request.
 void setParameter(java.lang.String name, java.lang.String value)
          Sets a parameter for this request.
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Field Detail

log

private static final org.apache.commons.logging.Log log
Logging instance

parameters

protected java.util.Map parameters
The parameters for this multipart request

request

protected javax.servlet.http.HttpServletRequest request
The underlying HttpServletRequest
Constructor Detail

MultipartRequestWrapper

public MultipartRequestWrapper(javax.servlet.http.HttpServletRequest request)
Method Detail

setParameter

public void setParameter(java.lang.String name,
                         java.lang.String value)
Sets a parameter for this request. The parameter is actually separate from the request parameters, but calling on the getParameter() methods of this class will work as if they weren't.

getParameter

public java.lang.String getParameter(java.lang.String name)
Attempts to get a parameter for this request. It first looks in the underlying HttpServletRequest object for the parameter, and if that doesn't exist it looks for the parameters retrieved from the multipart request
Specified by:
getParameter in interface javax.servlet.ServletRequest

getParameterNames

public java.util.Enumeration getParameterNames()
Returns the names of the parameters for this request. The enumeration consists of the normal request parameter names plus the parameters read from the multipart request
Specified by:
getParameterNames in interface javax.servlet.ServletRequest

getParameterValues

public java.lang.String[] getParameterValues(java.lang.String name)
Specified by:
getParameterValues in interface javax.servlet.ServletRequest

getRequest

public javax.servlet.http.HttpServletRequest getRequest()
Returns the underlying HttpServletRequest for this wrapper

getAttribute

public java.lang.Object getAttribute(java.lang.String name)
Specified by:
getAttribute in interface javax.servlet.ServletRequest

getAttributeNames

public java.util.Enumeration getAttributeNames()
Specified by:
getAttributeNames in interface javax.servlet.ServletRequest

getCharacterEncoding

public java.lang.String getCharacterEncoding()
Specified by:
getCharacterEncoding in interface javax.servlet.ServletRequest

getContentLength

public int getContentLength()
Specified by:
getContentLength in interface javax.servlet.ServletRequest

getContentType

public java.lang.String getContentType()
Specified by:
getContentType in interface javax.servlet.ServletRequest

getInputStream

public javax.servlet.ServletInputStream getInputStream()
                                                throws java.io.IOException
Specified by:
getInputStream in interface javax.servlet.ServletRequest

getProtocol

public java.lang.String getProtocol()
Specified by:
getProtocol in interface javax.servlet.ServletRequest

getScheme

public java.lang.String getScheme()
Specified by:
getScheme in interface javax.servlet.ServletRequest

getServerName

public java.lang.String getServerName()
Specified by:
getServerName in interface javax.servlet.ServletRequest

getServerPort

public int getServerPort()
Specified by:
getServerPort in interface javax.servlet.ServletRequest

getReader

public java.io.BufferedReader getReader()
                                 throws java.io.IOException
Specified by:
getReader in interface javax.servlet.ServletRequest

getRemoteAddr

public java.lang.String getRemoteAddr()
Specified by:
getRemoteAddr in interface javax.servlet.ServletRequest

getRemoteHost

public java.lang.String getRemoteHost()
Specified by:
getRemoteHost in interface javax.servlet.ServletRequest

setAttribute

public void setAttribute(java.lang.String name,
                         java.lang.Object o)
Specified by:
setAttribute in interface javax.servlet.ServletRequest

removeAttribute

public void removeAttribute(java.lang.String name)
Specified by:
removeAttribute in interface javax.servlet.ServletRequest

getLocale

public java.util.Locale getLocale()
Specified by:
getLocale in interface javax.servlet.ServletRequest

getLocales

public java.util.Enumeration getLocales()
Specified by:
getLocales in interface javax.servlet.ServletRequest

isSecure

public boolean isSecure()
Specified by:
isSecure in interface javax.servlet.ServletRequest

getRequestDispatcher

public javax.servlet.RequestDispatcher getRequestDispatcher(java.lang.String path)
Specified by:
getRequestDispatcher in interface javax.servlet.ServletRequest

getRealPath

public java.lang.String getRealPath(java.lang.String path)
Specified by:
getRealPath in interface javax.servlet.ServletRequest

getAuthType

public java.lang.String getAuthType()
Specified by:
getAuthType in interface javax.servlet.http.HttpServletRequest

getCookies

public javax.servlet.http.Cookie[] getCookies()
Specified by:
getCookies in interface javax.servlet.http.HttpServletRequest

getDateHeader

public long getDateHeader(java.lang.String name)
Specified by:
getDateHeader in interface javax.servlet.http.HttpServletRequest

getHeader

public java.lang.String getHeader(java.lang.String name)
Specified by:
getHeader in interface javax.servlet.http.HttpServletRequest

getHeaders

public java.util.Enumeration getHeaders(java.lang.String name)
Specified by:
getHeaders in interface javax.servlet.http.HttpServletRequest

getHeaderNames

public java.util.Enumeration getHeaderNames()
Specified by:
getHeaderNames in interface javax.servlet.http.HttpServletRequest

getIntHeader

public int getIntHeader(java.lang.String name)
Specified by:
getIntHeader in interface javax.servlet.http.HttpServletRequest

getMethod

public java.lang.String getMethod()
Specified by:
getMethod in interface javax.servlet.http.HttpServletRequest

getPathInfo

public java.lang.String getPathInfo()
Specified by:
getPathInfo in interface javax.servlet.http.HttpServletRequest

getPathTranslated

public java.lang.String getPathTranslated()
Specified by:
getPathTranslated in interface javax.servlet.http.HttpServletRequest

getContextPath

public java.lang.String getContextPath()
Specified by:
getContextPath in interface javax.servlet.http.HttpServletRequest

getQueryString

public java.lang.String getQueryString()
Specified by:
getQueryString in interface javax.servlet.http.HttpServletRequest

getRemoteUser

public java.lang.String getRemoteUser()
Specified by:
getRemoteUser in interface javax.servlet.http.HttpServletRequest

isUserInRole

public boolean isUserInRole(java.lang.String user)
Specified by:
isUserInRole in interface javax.servlet.http.HttpServletRequest

getUserPrincipal

public java.security.Principal getUserPrincipal()
Specified by:
getUserPrincipal in interface javax.servlet.http.HttpServletRequest

getRequestedSessionId

public java.lang.String getRequestedSessionId()
Specified by:
getRequestedSessionId in interface javax.servlet.http.HttpServletRequest

getRequestURI

public java.lang.String getRequestURI()
Specified by:
getRequestURI in interface javax.servlet.http.HttpServletRequest

getServletPath

public java.lang.String getServletPath()
Specified by:
getServletPath in interface javax.servlet.http.HttpServletRequest

getSession

public javax.servlet.http.HttpSession getSession(boolean create)
Specified by:
getSession in interface javax.servlet.http.HttpServletRequest

getSession

public javax.servlet.http.HttpSession getSession()
Specified by:
getSession in interface javax.servlet.http.HttpServletRequest

isRequestedSessionIdValid

public boolean isRequestedSessionIdValid()
Specified by:
isRequestedSessionIdValid in interface javax.servlet.http.HttpServletRequest

isRequestedSessionIdFromURL

public boolean isRequestedSessionIdFromURL()
Specified by:
isRequestedSessionIdFromURL in interface javax.servlet.http.HttpServletRequest

isRequestedSessionIdFromUrl

public boolean isRequestedSessionIdFromUrl()
Specified by:
isRequestedSessionIdFromUrl in interface javax.servlet.http.HttpServletRequest

getParameterMap

public java.util.Map getParameterMap()
Implements the Servlet 2.3 getParameterMap method.

setCharacterEncoding

public void setCharacterEncoding(java.lang.String encoding)
Use Reflection to invoke Servlet 2.3 setCharacterEncoding method on the wrapped Request.

getRequestURL

public java.lang.StringBuffer getRequestURL()
Use Reflection to invoke Servlet 2.3 getRequestURL method on the wrapped Request.

isRequestedSessionIdFromCookie

public boolean isRequestedSessionIdFromCookie()
Use Reflection to invoke Servlet 2.3 isRequestedSessionIdFromCookie method on the wrapped Request.
Specified by:
isRequestedSessionIdFromCookie in interface javax.servlet.http.HttpServletRequest

getLocalAddr

public java.lang.String getLocalAddr()
Use Reflection to invoke Servlet 2.4 getLocalAddr method on the wrapped Request.

getLocalName

public java.lang.String getLocalName()
Use Reflection to invoke Servlet 2.4 getLocalName method on the wrapped Request.

getLocalPort

public int getLocalPort()
Use Reflection to invoke Servlet 2.4 getLocalPort method on the wrapped Request.

getRemotePort

public int getRemotePort()
Use Reflection to invoke Servlet 2.4 getRemotePort method on the wrapped Request.

invokeRequestMethod

private java.lang.Object invokeRequestMethod(java.lang.String name,
                                             java.lang.Object[] args)
Convenience method which uses reflection to invoke a method on the Request.


Copyright 2000-2006 - The Apache Software Foundation