[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [linux-team] Hors Sujet: Infos sur CGI + Java.
> Ben en Java ou en C/C++, j'ai pas le temps d'apprendre le Perl, c'est
> pour un projet a l'univ. et je suis deborde pour l'instant.
Prends plutôt C ou C++ alors...
> Si j'avais le temps, j'aurais bien entendu prefere apprendre qqch de
> plus. Mais si maintenant tu me dis que j'aurai plus vite fait
> d'apprendre Perl, plutot que de me casser la tete a faire tourner ca en
> C ou en Java, alors j'apprendrqi Perl. Il y a en effet pleind de docs a
> ce sujet pour traiter les CGI.
Ben... le Perl c'est vraiment pas dur si tu connais déjà le C et/ou le
shell.
Mais le principe des CGI est très simple aussi. Simplement, Java est
probablement le moins pratique à ne niveau-là.
Quand le serveur web passe les informations à un CGI, il lance le CGI
(en tant que process) et lui envoit les informations.
C'est possible de 2 manières différentes: GET et POST.
La manière utilisée est indiquée dans la form, p.ex.:
...
<form name="f" action="/cgi-bin/moncgi" method="POST">
...
Voilà la différence:
GET: le contenu de la form est placé dans la variable d'environnement QUERY_STRING;
- en C:
char *pQuery = getenv("QUERY_STRING");
- en Perl:
$query = $ENV{"QUERY_STRING"};
- en Shell:
query="$QUERY_STRING"
;)
Inconvénient: vu que l'environnement d'un process est limité à une certaine taille,
il se peut bien (p.ex. quand tu as des champs de type texte, qui peuvent faire beaucoup
de lignes dans certains cas) que ce soit trop peu.
POST: le contenu de la form est passé au CGI via STDIN (stdin du CGI ;)), comme un pipe.
Alors, dans l'autre sens, pour envoyer un résultat au client (browser) via le serveur
web, il te suffit de sortir (POST ou GET ne joue plus aucun rôle ici) des tags HTML
sur stdout (printf ou puts, donc, ou encore cout << ;)) ou bien juste du texte
(ou une gif, etc...).
Seul astuce: tu dois indiquer au browser le type MIME de ce que tu lui envoies; p.ex.:
printf("Content-type: text/html\r\n\r\n");
printf("<html>");
...
ou encore:
printf("Content-type: text/plain\r\n\r\n");
printf("betement du texte...\n");
encore des questions ? ;))
-o) Pascal Bleser | UNIX *is* user friendly.
/\\ C++/UNIX Development | It's just selective about
_\_v ATOS Payment Systems | who its friends are...
guru@linuxbe.org---------------------------------------
---------
This message was sent by Majordomo 1.94.3. Please repport problems to
manu@rtfm.be. If you want to be deleted from the list, send a mail to
majordomo@rtfm.be with "unsubscribe linux-team" in the body.