package com.allinpay.its.boss.framework.utils; import java.io.IOException; import java.util.Enumeration; import java.util.Map; import java.util.Vector; import javax.servlet.ServletInputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequestWrapper; /** * @author YM */ public class ParameterRequestWrapper extends HttpServletRequestWrapper { private Map<String, String[]> params; private ServletInputStream servletInputStream; private int contentLength; public ParameterRequestWrapper(HttpServletRequest request, Map<String, String[]> newParams) { super(request); this.params = newParams; } public ParameterRequestWrapper(HttpServletRequest request, ServletInputStream in, int contentLength) { super(request); this.params = null; this.servletInputStream = in; this.contentLength = contentLength; } public Map<String, String[]> getParameterMap() { if (this.params == null) return super.getParameterMap(); return this.params; } public Enumeration<String> getParameterNames() { if (this.params == null) return super.getParameterNames(); Vector l = new Vector(this.params.keySet()); return l.elements(); } public String[] getParameterValues(String name) { if (this.params == null) return super.getParameterValues(name); Object v = this.params.get(name); if (v == null) return null; if ((v instanceof String[])) return (String[]) (String[]) v; if ((v instanceof String)) { return new String[] { (String) v }; } return new String[] { v.toString() }; } public String getParameter(String name) { if (this.params == null) return super.getParameter(name); Object v = this.params.get(name); if (v == null) return null; if ((v instanceof String[])) { String[] strArr = (String[]) (String[]) v; if (strArr.length > 0) { return strArr[0]; } return null; } if ((v instanceof String)) { return (String) v; } return v.toString(); } public int getContentLength() { if (this.servletInputStream == null) return super.getContentLength(); return this.contentLength; } public ServletInputStream getInputStream() throws IOException { if (this.servletInputStream == null) return super.getInputStream(); return this.servletInputStream; } }