kr.co.hit.live.web.upload
Class MultipartRequestWrapper

java.lang.Object
  extended by kr.co.hit.live.web.upload.MultipartRequestWrapper
All Implemented Interfaces:
javax.servlet.http.HttpServletRequest, javax.servlet.ServletRequest

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

Multipart Request를 일반 HttpServletRequest 처럼 사용하기 위한 클래스이다.

Since:
4.0
Author:
김형도

Field Summary
protected  String characterEncoding
           
protected  Map<String,FormFile[]> files
          multipart request내 파일 데이터 저장을 위한 Map
protected  Map<String,String[]> parameters
          multipart request용 parameter 저장을 위한 Map
protected  javax.servlet.http.HttpServletRequest request
          wrapping되는 HttpServletRequest 객체
 
Fields inherited from interface javax.servlet.http.HttpServletRequest
BASIC_AUTH, CLIENT_CERT_AUTH, DIGEST_AUTH, FORM_AUTH
 
Constructor Summary
MultipartRequestWrapper(javax.servlet.http.HttpServletRequest request)
           
MultipartRequestWrapper(javax.servlet.http.HttpServletRequest request, String encoding)
          HttpServletReqeust를 감싸는 MultipartRequestWrapper 객체를 생성한다.
 
Method Summary
 Object getAttribute(String name)
           
 Enumeration<?> getAttributeNames()
           
 String getAuthType()
           
 String getCharacterEncoding()
           
 int getContentLength()
           
 String getContentType()
           
 String getContextPath()
           
 javax.servlet.http.Cookie[] getCookies()
           
 long getDateHeader(String name)
           
 Map<String,FormFile[]> getFileMap()
          Multipart request 내 file data가 담겨져 있는 Map 객체를 반환한다.
static Map<String,FormFile[]> getFileMap(javax.servlet.http.HttpServletRequest request)
          주어진 HttpServletRequest가 MultipartRequestWrapper 인 경우 해당 getFileMap()을 호출하여 그 결과로 얻어진 Map 객체를 반환한다.
 String getHeader(String name)
           
 Enumeration<?> getHeaderNames()
           
 Enumeration<?> getHeaders(String name)
           
 javax.servlet.ServletInputStream getInputStream()
           
 int getIntHeader(String name)
           
 String getLocalAddr()
           
 Locale getLocale()
           
 Enumeration<?> getLocales()
           
 String getLocalName()
           
 int getLocalPort()
           
 String getMethod()
           
 String getParameter(String name)
           
 Map<String,String[]> getParameterMap()
           
 Enumeration<String> getParameterNames()
          parameter들의 이름들을 반환한다.
 String[] getParameterValues(String name)
          내부 HttpServletRequest 객체와 setParameter()로 설정된 parameter들을 모두 포함하여 리턴한다.
 String getPathInfo()
           
 String getPathTranslated()
           
 String getProtocol()
           
 String getQueryString()
           
 BufferedReader getReader()
           
 String getRealPath(String path)
          Deprecated.  
 String getRemoteAddr()
           
 String getRemoteHost()
           
 int getRemotePort()
           
 String getRemoteUser()
           
 javax.servlet.http.HttpServletRequest getRequest()
          내부 HttpServletRequest 객체를 반환한다.
 javax.servlet.RequestDispatcher getRequestDispatcher(String path)
           
 String getRequestedSessionId()
           
 String getRequestURI()
           
 StringBuffer getRequestURL()
           
 String getScheme()
           
 String getServerName()
           
 int getServerPort()
           
 String getServletPath()
           
 javax.servlet.http.HttpSession getSession()
           
 javax.servlet.http.HttpSession getSession(boolean create)
           
 Principal getUserPrincipal()
           
static boolean isMultipart(javax.servlet.http.HttpServletRequest request)
           
 boolean isRequestedSessionIdFromCookie()
           
 boolean isRequestedSessionIdFromUrl()
          Deprecated.  
 boolean isRequestedSessionIdFromURL()
           
 boolean isRequestedSessionIdValid()
           
 boolean isSecure()
           
 boolean isUserInRole(String user)
           
 MultipartRequestWrapper parseMultipart()
           multipart내의 form field와 form file 들을 파싱하여 form field는 setParameter()로 저장하고 form file은 FileItem[] 형태로 files Map 객체에 저장한다.
 MultipartRequestWrapper parseMultipart(long sizeLimit)
           multipart내의 form field와 form file 들을 파싱하여 form field는 setParameter()로 저장하고 form file은 FileItem[] 형태로 files Map 객체에 저장한다.
 MultipartRequestWrapper parseMultipart(javax.servlet.ServletContext ctx, long sizeLimit)
           multipart내의 form field와 form file 들을 파싱하여 form field는 setParameter()로 저장하고 form file은 FileItem[] 형태로 files Map 객체에 저장한다.
 MultipartRequestWrapper parseMultipart(String tempDir, long sizeLimit)
           multipart내의 form field와 form file 들을 파싱하여 form field는 setParameter()로 저장하고 form file은 FileItem[] 형태로 files Map 객체에 저장한다.
 void removeAttribute(String name)
           
 void setAttribute(String name, Object obj)
           
 void setCharacterEncoding(String encoding)
           
 void setParameter(String name, String value)
          multipart request용 parameter를 세팅한다.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface javax.servlet.http.HttpServletRequest
authenticate, getPart, getParts, login, logout
 
Methods inherited from interface javax.servlet.ServletRequest
getAsyncContext, getDispatcherType, getServletContext, isAsyncStarted, isAsyncSupported, startAsync, startAsync
 

Field Detail

characterEncoding

protected String characterEncoding

parameters

protected Map<String,String[]> parameters
multipart request용 parameter 저장을 위한 Map


files

protected Map<String,FormFile[]> files
multipart request내 파일 데이터 저장을 위한 Map


request

protected javax.servlet.http.HttpServletRequest request
wrapping되는 HttpServletRequest 객체

Constructor Detail

MultipartRequestWrapper

public MultipartRequestWrapper(javax.servlet.http.HttpServletRequest request,
                               String encoding)
HttpServletReqeust를 감싸는 MultipartRequestWrapper 객체를 생성한다. encoding 값을 지정하지 않으면 "euc-kr"을 사용한다.

Parameters:
request -
encoding -

MultipartRequestWrapper

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

isMultipart

public static boolean isMultipart(javax.servlet.http.HttpServletRequest request)

getRequest

public javax.servlet.http.HttpServletRequest getRequest()
내부 HttpServletRequest 객체를 반환한다.

Returns:

setParameter

public void setParameter(String name,
                         String value)
multipart request용 parameter를 세팅한다. 내부 HttpServletRequest 객체의 parameter와는 별개이다.

Parameters:
name -
value -

getAuthType

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

getContextPath

public String getContextPath()
Specified by:
getContextPath 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(String name)
Specified by:
getDateHeader in interface javax.servlet.http.HttpServletRequest

getHeader

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

getHeaderNames

public Enumeration<?> getHeaderNames()
Specified by:
getHeaderNames in interface javax.servlet.http.HttpServletRequest

getHeaders

public Enumeration<?> getHeaders(String name)
Specified by:
getHeaders in interface javax.servlet.http.HttpServletRequest

getIntHeader

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

getMethod

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

getPathInfo

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

getPathTranslated

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

getQueryString

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

getRemoteUser

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

getRequestURI

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

getRequestURL

public StringBuffer getRequestURL()
Specified by:
getRequestURL in interface javax.servlet.http.HttpServletRequest

getRequestedSessionId

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

getServletPath

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

getSession

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

getSession

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

getUserPrincipal

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

isRequestedSessionIdFromCookie

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

isRequestedSessionIdFromURL

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

isRequestedSessionIdFromUrl

@Deprecated
public boolean isRequestedSessionIdFromUrl()
Deprecated. 

Specified by:
isRequestedSessionIdFromUrl in interface javax.servlet.http.HttpServletRequest

isRequestedSessionIdValid

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

isUserInRole

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

getAttribute

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

getAttributeNames

public Enumeration<?> getAttributeNames()
Specified by:
getAttributeNames in interface javax.servlet.ServletRequest

getCharacterEncoding

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

getContentLength

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

getContentType

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

getInputStream

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

getLocale

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

getLocales

public Enumeration<?> getLocales()
Specified by:
getLocales in interface javax.servlet.ServletRequest

getParameter

public String getParameter(String name)
Specified by:
getParameter in interface javax.servlet.ServletRequest

getParameterMap

public Map<String,String[]> getParameterMap()
Specified by:
getParameterMap in interface javax.servlet.ServletRequest

getParameterNames

public Enumeration<String> getParameterNames()
parameter들의 이름들을 반환한다. 반환되는 파라메터 이름들은 내부 HttpServletRequest 객체의 파라메터 이름들과 setParameter()로 설정된 파라메터 이름들을 모두 포함한다.

Specified by:
getParameterNames in interface javax.servlet.ServletRequest

getParameterValues

public String[] getParameterValues(String name)
내부 HttpServletRequest 객체와 setParameter()로 설정된 parameter들을 모두 포함하여 리턴한다.

Specified by:
getParameterValues in interface javax.servlet.ServletRequest

getProtocol

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

getReader

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

getRealPath

@Deprecated
public String getRealPath(String path)
Deprecated. 

Specified by:
getRealPath in interface javax.servlet.ServletRequest

getRemoteAddr

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

getRemoteHost

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

getRequestDispatcher

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

getScheme

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

getServerName

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

getServerPort

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

isSecure

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

removeAttribute

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

setAttribute

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

setCharacterEncoding

public void setCharacterEncoding(String encoding)
                          throws UnsupportedEncodingException
Specified by:
setCharacterEncoding in interface javax.servlet.ServletRequest
Throws:
UnsupportedEncodingException

getLocalAddr

public String getLocalAddr()
Specified by:
getLocalAddr in interface javax.servlet.ServletRequest

getLocalName

public String getLocalName()
Specified by:
getLocalName in interface javax.servlet.ServletRequest

getLocalPort

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

getRemotePort

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

parseMultipart

public MultipartRequestWrapper parseMultipart()
                                       throws javax.servlet.ServletException

multipart내의 form field와 form file 들을 파싱하여 form field는 setParameter()로 저장하고 form file은 FileItem[] 형태로 files Map 객체에 저장한다. upload 가능한 최대 파일크기는 100MB 이며, 파일 업로드시 임시 디렉토리는 "java.io.tmpdir" 시스템 프로퍼티 값을 사용한다.

Returns:
multipart의 파싱이 완료된 MultipartRequestWrapper 자기 자신
Throws:
javax.servlet.ServletException

parseMultipart

public MultipartRequestWrapper parseMultipart(long sizeLimit)
                                       throws javax.servlet.ServletException

multipart내의 form field와 form file 들을 파싱하여 form field는 setParameter()로 저장하고 form file은 FileItem[] 형태로 files Map 객체에 저장한다. upload 가능한 최대 파일크기는 sizeLimit 파라메터로 지정한다. 파일 업로드시 임시 디렉토리는 "java.io.tmpdir" 시스템 프로퍼티 값을 사용한다.

Parameters:
sizeLimit - 업로드 가능한 파일의 최대 크기(bytes)
Returns:
multipart의 파싱이 완료된 MultipartRequestWrapper 자기 자신
Throws:
javax.servlet.ServletException

parseMultipart

public MultipartRequestWrapper parseMultipart(javax.servlet.ServletContext ctx,
                                              long sizeLimit)
                                       throws javax.servlet.ServletException

multipart내의 form field와 form file 들을 파싱하여 form field는 setParameter()로 저장하고 form file은 FileItem[] 형태로 files Map 객체에 저장한다. upload 가능한 최대 파일크기는 sizeLimit 파라메터로 지정한다.

파일 업로드시 임시 디렉토리는 ServetContext의 "javax.servlet.context.tempdir" 속성값을 사용한다. 주어진 ServetContext 객체가 null 인 경우에는 "java.io.tmpdir" 시스템 프로퍼티 값을 사용한다.

Parameters:
ServletContext - 임시 디렉토리 정보를 얻기 위한 파라메터
sizeLimit - 업로드 가능한 파일의 최대 크기(bytes)
Returns:
multipart의 파싱이 완료된 MultipartRequestWrapper 자기 자신
Throws:
javax.servlet.ServletException

parseMultipart

public MultipartRequestWrapper parseMultipart(String tempDir,
                                              long sizeLimit)
                                       throws javax.servlet.ServletException

multipart내의 form field와 form file 들을 파싱하여 form field는 setParameter()로 저장하고 form file은 FileItem[] 형태로 files Map 객체에 저장한다. upload 가능한 최대 파일크기는 sizeLimit 파라메터로 지정한다.

파일 업로드시 임시 디렉토리는 tempDir 파라메터로 명시적으로 지정한다.

Parameters:
tempDir - 임시 디렉토리의 절대 Path
sizeLimit - 업로드 가능한 파일의 최대 크기(bytes)
Returns:
multipart의 파싱이 완료된 MultipartRequestWrapper 자기 자신
Throws:
javax.servlet.ServletException

getFileMap

public Map<String,FormFile[]> getFileMap()
Multipart request 내 file data가 담겨져 있는 Map 객체를 반환한다. parseMultipart()를 호출한 후에 사용한다.

Returns:

getFileMap

public static Map<String,FormFile[]> getFileMap(javax.servlet.http.HttpServletRequest request)
주어진 HttpServletRequest가 MultipartRequestWrapper 인 경우 해당 getFileMap()을 호출하여 그 결과로 얻어진 Map 객체를 반환한다. MultipartRequestWrapper 객체가 아니라면 null을 반환한다.

Parameters:
request -
Returns:


Copyright © 2014. All Rights Reserved.