KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > teamkonzept > web > TKHttpInterface


1 package com.teamkonzept.web;
2
3 import java.io.*;
4 import javax.servlet.http.*;
5
6 import com.teamkonzept.lib.*;
7
8 /**
9     Das Interface TKHpptInterface legt die Methoden fest, die eine
10     Implementierung einer HTTP-Server-Schnittstelle zur Verfügung stellen
11     muß.
12     <P>
13
14     Java-Anwendungen sollten sich f&uuml;r die Kommunikation mit dem HTTP-Server
15     auf diese Methoden beschr&auml;nken, damit
16     die Lauff&auml;higkeit der Anwendung unter beliebigen Servern gew&auml;hrleistet
17     ist.
18     <P>
19
20     Das Interface enth&auml;lt vier Methoden um die verschiedenen Bestandteile einer
21     HTTP-Response zusammen zu bauen: setStatus, addHeader, getOutputStream. Daneben gibt
22     es noch die getLogStream-Methode, &uuml;ber die der Zugriff auf eventuelle
23     Fehler-Logging-Mechanismen des HTTP-Servers zur Verf&uuml;gung gestellt werden soll.
24     Eine Interface-Implementierung muš gew&auml;hrleisten, da&szlig; der Aufruf in folgender
25     Reihenfolge gelingt:
26     <UL>
27         <LI>setStatus
28         <LI>addHeader (mehrfach)
29         <LI>Ausgabe ¸ber getLogStream-Ergebnisobjekt
30         <LI>Ausgabe &uuml;ber getOutStream-Ergebnisobjekt
31     </UL>
32
33     <P>
34 * Das Interface TKHttpInterface und seine abstrakten Methoden.
35  * Die Implementierung dieser Methoden erfolgt zur Zeitin der Klasse
36  * OracleWRBInterface.
37  * Wird spaeter ein Interface fuer Servlets (Sun) benoetigt, muss das Interface
38  * ein weiters mal implementiert werden und dem Konstruktor des Thread in der
39  * Applikation uebergeben werden.
40  * Es werden die CGI-Enviroment Variablen bereitgestellt.
41  *
42  * getParams() -> Parameter eines Events und der event selbst
43  * TK_EV[EIN_EVENT]=, TK_PAR[EIN_PARAMETER]=xy, TK_PAR[SID]=20 Stellen
44  *
45  * getEnvironment() -> Die CGI-Enviroment Variablen sind im Hash abgelegt
46  * getOutputStream() -> Ergebnis z.B.: tk.web.oracle.OracleWRBOutput@ed3018c0
47  * getLogStream() -> Ergebnis z.B.: oracle.owas.wrb.services.logger.OutputLogStream@ed310af0
48  * getOwnName() -> PATH_INFO, /Name der gerade laufenden Applikation
49  * getOwnURL() -> SCRIPT_NAME+PATHNAME, /java/Applikationsname
50  * getOwnPath() -> SCRIPT_NAME, /java
51  * getDocumentRoot() -> gemeinsame Documentroot fuer verschiedene Benutzer
52  * getServerName() -> Severname
53  * getPathInfo() -> liefert extra-Pfadinformation
54  * getPathTranslated() -> liefert extra-Pfadinformation
55  * getCookies() -> liefert alle Cookies f¸r die aktuelle Domain
56  * setCookie() -> setzt ein Cookie
57
58  * @author $Author: mischa $
59  * @version $Revision: 1.9 $
60  */

61  
62 public interface TKHttpInterface {
63     /**
64         setzt den HTTP-Response-Status
65         @param code HTTP-Status-Code
66         @param msg HTTP-Reason-Phrase (null wenn nicht ben&ouml;tigt)
67      */

68      void setStatus( int code, String JavaDoc msg );
69
70     /**
71         setzt einen (weiteren) HTTP-Header
72         @param name HTTP-Header-Name
73         @param value HTTP-Header-Wert
74     */

75      void addHeader( String JavaDoc name, String JavaDoc value );
76     
77     /** returns the http session */
78      HttpSession getSession(boolean create);
79     
80     /** returns the htp session */
81      HttpSession getSession();
82     
83     /**
84         liefert ein OutputStream-Objekt, ¸ber das die HTTP-Daten geschickt werden k&ouml;nnen.
85      */

86      OutputStream getOutputStream();
87     
88     /**
89         liefert ein OutputStream-Objekt, &uuml;ber das die Fehlermeldungen
90         an den HTTP-Server geschickt werden k&ouml;nnen.
91      */

92      OutputStream getLogStream();
93     
94     /**
95         liefert den Namen der Java-Anwendungsklasse
96      */

97      String JavaDoc getOwnName();
98     
99     /**
100         liefert die URL der Java-Anwendung
101     */

102      String JavaDoc getOwnURL();
103
104     /** liefert absolute URL - inkl. Servername + Port */
105      String JavaDoc getAbsoluteURL();
106     
107     /**
108         liefert den Context Pfad von Webman
109     */

110      String JavaDoc getContextPath();
111     
112     /**
113         liefert den (virtuellen URL-) Pfad der Java-Anwendung
114     */

115      String JavaDoc getOwnPath();
116
117     /**
118         liefert den Pfad der Document-Root des Web-Servers
119     */

120      String JavaDoc getDocumentRoot();
121     
122     /**
123         liefert den Namen des HTTP-Servers
124     */

125      String JavaDoc getServerName();
126     
127     /**
128         liefert den Namen des RemoteUsers
129     */

130      String JavaDoc getRemoteUser();
131     
132     /**
133         liefert einen Hash in dem die Parameter der Anwendung
134         enthalten sind. Falls ein Parameter mehrmals verwendet
135         wurde, enth&auml;lt der Hash als Value ein TKVector-Objekt
136     */

137      TKHashtable getParams();
138     
139     /**
140         liefert die http-Request-Header mit denen die Anwendung
141         aufgerufen wurde
142     */

143      TKHashtable getHeaders();
144     
145     /**
146         liefert einen Hash, in dem alle anderen Attribute, die der
147         HTTP-Server an die Anwendung &uuml;bergeben hat, enthalten sind.
148         Da diese Attribute HTTP-Server-spezifisch sind, sollte Anwendungen
149         von diesem Hash nur in Ausnahmen gebrauch machen.
150     */

151      TKHashtable getEnvironment();
152     
153     /**
154         liefert extra-Pfadinformation, d.h. die Informationen, die
155         zwischen Servletpfad u. Query-String stehen.
156         Ist keine extra-Pfadinformation vorhanden, so wird null
157         zur&uuml;ckgeliefert.
158      */

159      String JavaDoc getPathInfo();
160     
161     /**
162         liefert extra-Pfadinformationen und &uuml;bersetzt diese in
163         den realen absoluten Pfad.
164      */

165      String JavaDoc getPathTranslated();
166     
167     /**
168         liefert alle Cookies der aktuellen Domain
169      */

170      Cookie[] getCookies();
171     
172     /**
173         setzt ein Cookie
174      */

175      void addCookie( final Cookie cookie );
176     
177     /**
178         setzt einen (weiteren) HTTP-Header
179         @param name HTTP-Header-Name
180         @param value HTTP-Header-Wert
181     */

182      void addDateHeader( final String JavaDoc name, final long value );
183 }
184
185
Popular Tags