/** * Rückgabe der formatierten Information zum Request als String. Der Zeilenumbruch erfolgt * abhä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(); }
/** * Parst den String nach Parametern und ü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); } }