001// Copyright (C) 1998-2001 by Jason Hunter <jhunter_AT_acm_DOT_org>. 002// All rights reserved. Use of this class is limited. 003// Please see the LICENSE for more information. 004 005package com.oreilly.servlet; 006 007import java.io.*; 008import java.util.*; 009import javax.servlet.*; 010import javax.servlet.http.*; 011 012/** 013 * A request wrapper to support MultipartFilter. 014 * The filter capability requires Servlet API 2.3. 015 * <p> 016 * See Jason Hunter's June 2001 article in JavaWorld for a full explanation of 017 * the class usage. 018 * 019 * @author <b>Jason Hunter</b>, Copyright © 2001 020 * @version 1.0, 2001/06/19 021 */ 022public class MultipartWrapper extends HttpServletRequestWrapper { 023 024 MultipartRequest mreq = null; 025 026 public MultipartWrapper(HttpServletRequest req, String dir) 027 throws IOException { 028 super(req); 029 mreq = new MultipartRequest(req, dir); 030 } 031 032 // Methods to replace HSR methods 033 public Enumeration getParameterNames() { 034 return mreq.getParameterNames(); 035 } 036 public String getParameter(String name) { 037 return mreq.getParameter(name); 038 } 039 public String[] getParameterValues(String name) { 040 return mreq.getParameterValues(name); 041 } 042 public Map getParameterMap() { 043 Map map = new HashMap(); 044 Enumeration myEnum = getParameterNames(); 045 while (myEnum.hasMoreElements()) { 046 String name = (String) myEnum.nextElement(); 047 map.put(name, mreq.getParameterValues(name)); 048 } 049 return map; 050 } 051 052 // Methods only in MultipartRequest 053 public Enumeration getFileNames() { 054 return mreq.getFileNames(); 055 } 056 public String getFilesystemName(String name) { 057 return mreq.getFilesystemName(name); 058 } 059 public String getContentType(String name) { 060 return mreq.getContentType(name); 061 } 062 public File getFile(String name) { 063 return mreq.getFile(name); 064 } 065}