Philipp Hasenfratz: CGI-Schnittstelle

Beitrag lesen

Halihallo Kay

habe eine Java-Applikation geschrieben. Diese App soll nun Skripte wie PERL oder PHP ausführen können. Dazu benötige ich ja die Implementierung einer CGI-Schnittstelle - richtig?

Richtig, falls es sich bei den Scripten um CGI-Scripte handelt.

Nun stehe ich allerdingsvor dem Problem, dass ich nicht weiß, wie man in Java CGI-Programme ausführt.

Genauso wie jedes andere Programm. Ein CGI-Programm ist auch nur ein
Programm. Ein Programm, dass seine Eingaben jedoch nicht über die
Kommandozeile, sondern über die Umgebungsvariablen (oder
Standardeingabe bei POST-Formularen) erhält.

Starte den Perl/PHP Interpreter z.B. über
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Runtime.html#exec(java.lang.String[, java.lang.String[], java.io.File)],
übergib das CGI-Script (z.B. test.pl oder test.php) als Parameter und
setze die Umgebungsvariablen entsprechend. Es gibt eine entsprechende
exec() Methode, welcher du die neuen Environment-Variablen übergeben
kannst; die Signatur derjenigen sieht so aus:

public Process exec(String[] cmdarray,
                    String[] envp,
                    File dir)
             throws IOException

über die Klasse Process kannst du die Ausgabe des CGI-Scriptes
einlesen.

Die Umgebungsvariablen kannst du ja vielen Quellen entnehmen, suche
einfach nach:

CGI Environment Variables
QUERY_STRING
REQUEST_METHOD

etc.

Und nun wünsche ich viel Spass bei der Umsetzung :-)

Viele Grüsse

Philipp