import java.util.ArrayList;
import java.util.List;
+import java.util.Collections;
+import java.util.Map;
import javax.servlet.http.HttpServletRequest;
public class HTTPRequestParser {
private HttpServletRequest request;
- private String encoding;
+ private Map overridingParameters;
public HTTPRequestParser(HttpServletRequest aRequest) {
- this(aRequest, aRequest.getCharacterEncoding());
+ this(aRequest, Collections.EMPTY_MAP);
}
- public HTTPRequestParser(HttpServletRequest aRequest, String anEncoding) {
+ public HTTPRequestParser(HttpServletRequest aRequest, Map anOverridingParameters) {
request = aRequest;
- encoding = anEncoding;
+ overridingParameters = anOverridingParameters;
}
public boolean hasParameter(String aName) {
- return request.getParameter(aName)!=null;
+ return (request.getParameter(aName)!=null) || overridingParameters.containsKey(aName);
}
public String getParameterWithDefault(String aName, String aDefault) {
public String getParameter(String aName) {
try {
String result = request.getParameter(aName);
-// String requestEncoding = request.getCharacterEncoding();
-// if (requestEncoding==null)
-// requestEncoding = "ISO-8859-1";
-// if (result != null && encoding!=null && !encoding.equals(requestEncoding)) {
-// result = new String(result.getBytes(requestEncoding), encoding);
-// }
+ if (result==null) {
+ result = (String) overridingParameters.get(aName);
+ }
return result;
}