コード例 #1
0
ファイル: Request.java プロジェクト: seanox/commons
  /**
   * Rückgabe der formatierten Information zum Request als String. Der Zeilenumbruch erfolgt
   * abh&auml;ngig vom aktuellen Betriebssystem.<br>
   * <br>
   * <b>Hinweis</b> - Die Auswertung der Parameter erfolgt vom aktuellen Datenbestand. Wurde der
   * Request Body noch nicht geparst sind in der Ausgabe nur die Parameter des Query Strings der URL
   * enthalten.
   *
   * @return die formatierte Information zum Response als String
   */
  public String toString() {

    String string;
    StringBuffer result;
    StringBuffer buffer;
    StringTokenizer tokenizer;

    // der Zeilenumbruch wird ermittelt
    string = System.getProperty("line.separator", "\r\n");

    // das Paket der Klasse wird ermittelt
    result = new StringBuffer("[").append(this.getClass().getName()).append("]").append(string);

    result
        .append("  state     = ")
        .append(!this.bounded ? !this.locked ? "ready" : "locked" : "bounded")
        .append(string);

    buffer = new StringBuffer();

    tokenizer = new StringTokenizer(this.getHeader(), "\r\n");

    while (tokenizer.hasMoreTokens()) {

      buffer = new StringBuffer(buffer.toString().trim());

      buffer.append(string).append("              ").append(tokenizer.nextToken());
    }

    result.append("  header    = ").append(buffer.toString().trim()).append(string);
    result.append("  method    = ").append(this.getMethod()).append(string);
    result.append("  path      = ").append(this.getURL()).append(string);
    result.append("  protocol  = ").append(this.getProtocol()).append(string);
    result.append("  query     = ").append(this.getQueryString()).append(string);
    result.append("  scheme    = ").append(this.getScheme()).append(string);

    // der Pfad des Auslagerungsverzeichnis wird ermittelt
    buffer = new StringBuffer(Codec.decode(this.storage == null ? "" : this.storage, Codec.DOT));

    result
        .append("  storage   = ")
        .append((buffer.length() == 0) ? "none" : buffer.toString())
        .append(string);

    buffer = new StringBuffer("1x header");
    buffer.append(", ").append(String.valueOf(this.cookies.length)).append("x cookies");
    buffer.append(", ").append(String.valueOf(this.parameters.size())).append("x parameters");
    buffer.append(", ").append(String.valueOf(this.fragments.length)).append("x fragments");
    buffer.append(", ").append(String.valueOf(this.attributes.size())).append("x attributes");

    result.append("  structure = ").append(buffer).append(string);

    return result.toString();
  }
コード例 #2
0
ファイル: Request.java プロジェクト: seanox/commons
  /**
   * Parst den String nach Parametern und &uuml;bernimmt diese.
   *
   * @param string zu parsender String
   */
  protected void setInternalParameter(String string) {

    StringTokenizer tokenizer;
    String entry;
    String stream;

    Object[] entries;
    Object[] objects;

    int cursor;

    // die Elemente des Query Strings werden ermittelt
    tokenizer = new StringTokenizer(string, "&");

    while (tokenizer.hasMoreTokens()) {

      // der Name und der Wert wird ermittelt
      string = tokenizer.nextToken();
      cursor = string.indexOf('=');
      stream = (cursor < 0) ? "" : string.substring(cursor + 1).trim();
      string = (cursor < 0) ? string.trim() : string.substring(0, cursor).trim();
      entry = Codec.decode(string, Codec.MIME).trim();
      entry = (entry.length() == 0 && string.length() > 0) ? string : entry;

      if (entry.length() == 0) continue;

      // das Array der Parametereintraege wird aufgebaut
      entries = (Object[]) this.parameters.get(entry);
      entries = (entries == null) ? new Object[0] : entries;
      objects = new Object[entries.length + 1];

      // der Parameter wird als ByteArray uebernommen
      System.arraycopy(entries, 0, objects, 0, entries.length);
      objects[entries.length] = Codec.decode(stream.getBytes(), Codec.MIME);

      // der Parametereintrag uebernommen
      this.parameters.put(entry, objects);
    }
  }