Kay: CGI-Schnittstelle

Hallo,

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? Nun stehe ich allerdingsvor dem Problem, dass ich nicht weiß, wie man in Java CGI-Programme ausführt. Hab' auch schon bei Google gesucht, aber ledier nix gefunden. Gibt es irgendwo dazu Artikel, Codeschnipsel etc.?

Vielen Dank, MfG, Kay

  1. 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

    1. Hi Philipp,

      vielen Dank für deine Antwort! Hab's gerade in meine App umgesetzt - funktioniert super!

      Ciao, Kay

      1. Halihallo Kay

        vielen Dank für deine Antwort! Hab's gerade in meine App umgesetzt - funktioniert super!

        Oh, das ging aber schnell :-)

        Viele Grüsse

        Philipp