-package mir.util;
-
-import javax.servlet.http.HttpServletRequest;
-
-public class HTTPRequestParser {
- private HttpServletRequest request;
-
- public HTTPRequestParser(HttpServletRequest aRequest) {
- request = aRequest;
- }
-
- public boolean hasParameter(String aName) {
- return request.getParameter(aName)!=null;
- }
-
- public String getParameterWithDefault(String aName, String aDefault) {
- if (hasParameter(aName))
- return request.getParameter(aName);
- else
- return aDefault;
- }
-
- public String getParameter(String aName) {
- return getParameterWithDefault(aName, "");
- }
-
- public int getIntegerWithDefault(String aName, int aDefault) {
- int result = aDefault;
- String value = getParameter(aName);
-
- try {
- result = Integer.parseInt(value);
- }
- catch (Throwable t) {
- }
- return result;
- }
+package mir.util;\r
+\r
+import javax.servlet.http.HttpServletRequest;\r
+\r
+public class HTTPRequestParser {\r
+ private HttpServletRequest request;\r
+ private String encoding;\r
+\r
+ public HTTPRequestParser(HttpServletRequest aRequest) {\r
+ this(aRequest, aRequest.getCharacterEncoding());\r
+ }\r
+\r
+ public HTTPRequestParser(HttpServletRequest aRequest, String anEncoding) {\r
+ request = aRequest;\r
+ encoding = anEncoding;\r
+ }\r
+\r
+ public boolean hasParameter(String aName) {\r
+ return request.getParameter(aName)!=null;\r
+ }\r
+\r
+ public String getParameterWithDefault(String aName, String aDefault) {\r
+ if (hasParameter(aName))\r
+ return getParameter(aName);\r
+ else\r
+ return aDefault;\r
+ }\r
+\r
+ public String getParameter(String aName) {\r
+ try {\r
+ String result = request.getParameter(aName);\r
+\r
+ if (result != null && !encoding.equals(request.getCharacterEncoding())) {\r
+ System.out.println("recoding");\r
+ result = new String(result.getBytes(request.getCharacterEncoding()), encoding);\r
+ }\r
+\r
+ return result;\r
+ }\r
+ catch (Throwable t) {\r
+ t.printStackTrace(System.out);\r
+ throw new RuntimeException("HTTPRequestParser.getParameter: " + t.getMessage());\r
+ }\r
+ }\r
+\r
+ public int getIntegerWithDefault(String aName, int aDefault) {\r
+ int result = aDefault;\r
+ String value = getParameter(aName);\r
+\r
+ try {\r
+ result = Integer.parseInt(value);\r
+ }\r
+ catch (Throwable t) {\r
+ }\r
+ return result;\r
+ }\r
}
\ No newline at end of file