home *** CD-ROM | disk | FTP | other *** search
- package javax.servlet.http;
-
- import java.io.IOException;
- import java.io.InputStream;
- import java.util.Hashtable;
- import java.util.StringTokenizer;
- import javax.servlet.ServletInputStream;
-
- public class HttpUtils {
- static Hashtable nullHashtable = new Hashtable();
-
- public static Hashtable parseQueryString(String var0) {
- Object var1 = null;
- if (var0 == null) {
- throw new IllegalArgumentException();
- } else {
- Hashtable var2 = new Hashtable();
- StringBuffer var3 = new StringBuffer();
-
- String var7;
- for(StringTokenizer var4 = new StringTokenizer(var0, "&"); var4.hasMoreTokens(); var2.put(var7, var11)) {
- String var5 = var4.nextToken();
- int var6 = var5.indexOf(61);
- if (var6 == -1) {
- throw new IllegalArgumentException();
- }
-
- var7 = parseName(var5.substring(0, var6), var3);
- String var8 = parseName(var5.substring(var6 + 1, var5.length()), var3);
- if (var2.containsKey(var7)) {
- String[] var9 = (String[])var2.get(var7);
- var11 = new String[var9.length + 1];
-
- for(int var10 = 0; var10 < var9.length; ++var10) {
- var11[var10] = var9[var10];
- }
-
- var11[var9.length] = var8;
- } else {
- var11 = new String[]{var8};
- }
- }
-
- return var2;
- }
- }
-
- public static Hashtable parsePostData(int var0, ServletInputStream var1) {
- Object var4 = null;
- if (var0 <= 0) {
- return null;
- } else {
- try {
- var7 = new byte[var0];
- int var3 = 0;
-
- do {
- int var2 = ((InputStream)var1).read(var7, var3, var0 - var3);
- if (var2 <= 0) {
- throw new IOException("short read");
- }
-
- var3 += var2;
- } while(var0 - var3 > 0);
- } catch (IOException var6) {
- return nullHashtable;
- }
-
- String var5 = new String(var7, 0, 0, var0);
- return parseQueryString(var5);
- }
- }
-
- private static String parseName(String var0, StringBuffer var1) {
- var1.setLength(0);
-
- for(int var2 = 0; var2 < var0.length(); ++var2) {
- char var3 = var0.charAt(var2);
- switch (var3) {
- case '%':
- try {
- var1.append((char)Integer.parseInt(var0.substring(var2 + 1, var2 + 3), 16));
- } catch (NumberFormatException var4) {
- throw new IllegalArgumentException();
- }
-
- var2 += 2;
- break;
- case '+':
- var1.append(' ');
- break;
- default:
- var1.append(var3);
- }
- }
-
- return var1.toString();
- }
-
- public static StringBuffer getRequestURL(HttpServletRequest var0) {
- StringBuffer var1 = new StringBuffer();
- String var2 = var0.getScheme();
- int var3 = var0.getServerPort();
- String var4 = var0.getServletPath();
- String var5 = var0.getPathInfo();
- var1.append(var2);
- var1.append("://");
- var1.append(var0.getServerName());
- if (var2.equals("http") && var3 != 80 || var2.equals("https") && var3 != 443) {
- var1.append(':');
- var1.append(var0.getServerPort());
- }
-
- if (var4 != null) {
- var1.append(var4);
- }
-
- if (var5 != null) {
- var1.append(var5);
- }
-
- return var1;
- }
- }
-