home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 1999 April / DPPCPRO0499.ISO / April / Notes / 50b2wic.exe / DATA1.CAB / NotesProgramFilesJavaSupport / icsclass.jar / javax / servlet / http / HttpUtils.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-11-15  |  3.0 KB  |  125 lines

  1. package javax.servlet.http;
  2.  
  3. import java.io.IOException;
  4. import java.io.InputStream;
  5. import java.util.Hashtable;
  6. import java.util.StringTokenizer;
  7. import javax.servlet.ServletInputStream;
  8.  
  9. public class HttpUtils {
  10.    static Hashtable nullHashtable = new Hashtable();
  11.  
  12.    public static Hashtable parseQueryString(String var0) {
  13.       Object var1 = null;
  14.       if (var0 == null) {
  15.          throw new IllegalArgumentException();
  16.       } else {
  17.          Hashtable var2 = new Hashtable();
  18.          StringBuffer var3 = new StringBuffer();
  19.  
  20.          String var7;
  21.          for(StringTokenizer var4 = new StringTokenizer(var0, "&"); var4.hasMoreTokens(); var2.put(var7, var11)) {
  22.             String var5 = var4.nextToken();
  23.             int var6 = var5.indexOf(61);
  24.             if (var6 == -1) {
  25.                throw new IllegalArgumentException();
  26.             }
  27.  
  28.             var7 = parseName(var5.substring(0, var6), var3);
  29.             String var8 = parseName(var5.substring(var6 + 1, var5.length()), var3);
  30.             if (var2.containsKey(var7)) {
  31.                String[] var9 = (String[])var2.get(var7);
  32.                var11 = new String[var9.length + 1];
  33.  
  34.                for(int var10 = 0; var10 < var9.length; ++var10) {
  35.                   var11[var10] = var9[var10];
  36.                }
  37.  
  38.                var11[var9.length] = var8;
  39.             } else {
  40.                var11 = new String[]{var8};
  41.             }
  42.          }
  43.  
  44.          return var2;
  45.       }
  46.    }
  47.  
  48.    public static Hashtable parsePostData(int var0, ServletInputStream var1) {
  49.       Object var4 = null;
  50.       if (var0 <= 0) {
  51.          return null;
  52.       } else {
  53.          try {
  54.             var7 = new byte[var0];
  55.             int var3 = 0;
  56.  
  57.             do {
  58.                int var2 = ((InputStream)var1).read(var7, var3, var0 - var3);
  59.                if (var2 <= 0) {
  60.                   throw new IOException("short read");
  61.                }
  62.  
  63.                var3 += var2;
  64.             } while(var0 - var3 > 0);
  65.          } catch (IOException var6) {
  66.             return nullHashtable;
  67.          }
  68.  
  69.          String var5 = new String(var7, 0, 0, var0);
  70.          return parseQueryString(var5);
  71.       }
  72.    }
  73.  
  74.    private static String parseName(String var0, StringBuffer var1) {
  75.       var1.setLength(0);
  76.  
  77.       for(int var2 = 0; var2 < var0.length(); ++var2) {
  78.          char var3 = var0.charAt(var2);
  79.          switch (var3) {
  80.             case '%':
  81.                try {
  82.                   var1.append((char)Integer.parseInt(var0.substring(var2 + 1, var2 + 3), 16));
  83.                } catch (NumberFormatException var4) {
  84.                   throw new IllegalArgumentException();
  85.                }
  86.  
  87.                var2 += 2;
  88.                break;
  89.             case '+':
  90.                var1.append(' ');
  91.                break;
  92.             default:
  93.                var1.append(var3);
  94.          }
  95.       }
  96.  
  97.       return var1.toString();
  98.    }
  99.  
  100.    public static StringBuffer getRequestURL(HttpServletRequest var0) {
  101.       StringBuffer var1 = new StringBuffer();
  102.       String var2 = var0.getScheme();
  103.       int var3 = var0.getServerPort();
  104.       String var4 = var0.getServletPath();
  105.       String var5 = var0.getPathInfo();
  106.       var1.append(var2);
  107.       var1.append("://");
  108.       var1.append(var0.getServerName());
  109.       if (var2.equals("http") && var3 != 80 || var2.equals("https") && var3 != 443) {
  110.          var1.append(':');
  111.          var1.append(var0.getServerPort());
  112.       }
  113.  
  114.       if (var4 != null) {
  115.          var1.append(var4);
  116.       }
  117.  
  118.       if (var5 != null) {
  119.          var1.append(var5);
  120.       }
  121.  
  122.       return var1;
  123.    }
  124. }
  125.