home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / VPage / Java.bin / CLASSES.ZIP / sun / rmi / transport / proxy / CGIHandler.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-07-08  |  3.3 KB  |  80 lines

  1. package sun.rmi.transport.proxy;
  2.  
  3. import java.util.Hashtable;
  4.  
  5. public final class CGIHandler {
  6.    static int ContentLength = Integer.getInteger("CONTENT_LENGTH", 0);
  7.    static String QueryString = System.getProperty("QUERY_STRING", "");
  8.    static String RequestMethod = System.getProperty("REQUEST_METHOD", "");
  9.    static String ServerName = System.getProperty("SERVER_NAME", "");
  10.    static int ServerPort = Integer.getInteger("SERVER_PORT", 0);
  11.    private static CGICommandHandler[] commands = new CGICommandHandler[]{new CGIForwardCommand(), new CGIGethostnameCommand(), new CGIPingCommand(), new CGITryHostnameCommand()};
  12.    private static Hashtable commandLookup = new Hashtable();
  13.  
  14.    private CGIHandler() {
  15.    }
  16.  
  17.    public static void main(String[] var0) {
  18.       try {
  19.          int var3 = QueryString.indexOf("=");
  20.          String var1;
  21.          String var2;
  22.          if (var3 == -1) {
  23.             var1 = QueryString;
  24.             var2 = "";
  25.          } else {
  26.             var1 = QueryString.substring(0, var3);
  27.             var2 = QueryString.substring(var3 + 1);
  28.          }
  29.  
  30.          CGICommandHandler var4 = (CGICommandHandler)commandLookup.get(var1);
  31.          if (var4 != null) {
  32.             try {
  33.                var4.execute(var2);
  34.             } catch (CGIClientException var6) {
  35.                returnClientError(((Throwable)var6).getMessage());
  36.             } catch (CGIServerException var7) {
  37.                returnServerError(((Throwable)var7).getMessage());
  38.             }
  39.          } else {
  40.             returnClientError("invalid command: " + var1);
  41.          }
  42.       } catch (Exception var8) {
  43.          returnServerError("internal error: " + ((Throwable)var8).getMessage());
  44.       }
  45.  
  46.       System.exit(0);
  47.    }
  48.  
  49.    private static void returnClientError(String var0) {
  50.       System.out.println("Status: 400 Bad Request: " + var0);
  51.       System.out.println("Content-type: text/html");
  52.       System.out.println("");
  53.       System.out.println("<HTML><HEAD><TITLE>Java RMI Client Error</TITLE></HEAD><BODY>");
  54.       System.out.println("<H1>Java RMI Client Error</H1>");
  55.       System.out.println("");
  56.       System.out.println(var0);
  57.       System.out.println("</BODY></HTML>");
  58.       System.exit(1);
  59.    }
  60.  
  61.    private static void returnServerError(String var0) {
  62.       System.out.println("Status: 500 Server Error: " + var0);
  63.       System.out.println("Content-type: text/html");
  64.       System.out.println("");
  65.       System.out.println("<HTML><HEAD><TITLE>Java RMI Server Error</TITLE></HEAD><BODY>");
  66.       System.out.println("<H1>Java RMI Server Error</H1>");
  67.       System.out.println("");
  68.       System.out.println(var0);
  69.       System.out.println("</BODY></HTML>");
  70.       System.exit(1);
  71.    }
  72.  
  73.    static {
  74.       for(int var0 = 0; var0 < commands.length; ++var0) {
  75.          commandLookup.put(commands[var0].getName(), commands[var0]);
  76.       }
  77.  
  78.    }
  79. }
  80.