CGI to technologia pisania aplikacji internetowych w dowolnym języku programowania obsługiwanym przez serwer www (C++, Perl, Bash, Java i in.). Wszystko, co jest nam potrzebne, to serwer z obsługą CGI i zainstalowaną Javą (wystarczy JRE).
Uruchomimy Javę w technologi CGI – generując dynamiczną stronę HTML na serwerze.
Oto procedura:
- Tworzymy katalog o nazwie cgi-bin w public_html
- Tworzymy kod odpalający aplikację Java jako skrypt cgi, UWAGA! aby polskie czcionki działały musimy tu dodać kodowanie UTF-8 jako parametr. Tworzymy plik tekstowy
programjava.cgi:1
2
3#!/bin/bash
java -Dfile.encoding=UTF-8 javacgi
exit 0 - Teraz przyszła pora na nasz program CGI, javacgi.java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31import java.util.Map;
class javacgi
{
public static void main(String args[])
{
/* Jeśli polskie znaki nie działają, można odkomentować te 4 linie:
System.setProperty("file.encoding","UTF-8");
Field charset = Charset.class.getDeclaredField("defaultCharset");
charset.setAccessible(true);
charset.set(null,null); */
System.out.println(
"Content-type: text/html; charset=UTF-8\n\n" + //musi być jako 1sza linia
"<HTML lang="pl">\n" +
"<HEAD>\n" +
"<meta charset="utf-8" />"+
"<TITLE>Test CGI w Javie</TITLE>\n" +
"</HEAD>\n" +
"<BODY>\n" +
"<H1>Program JAVA generujący kod HTML!</H1>\n" +
"<p>Polskie znaki: ąśćźżńĄŚŹŻĆ</p></BODY>\n" +
"</HMTL>\n"
);
//Wypisanie w pętli zmiennych systemowych, przydatne jeśli chcemy np. odczytać zmienne formularza:
Map<String, String> env = System.getenv();
for (String envName : env.keySet())
System.out.format("%s=%s<BR>\n", envName, env.get(envName));
}
} - Program kompilujemy:
1javac javacgi.java
Źródło można przenieść do innego katalogu ze względów bezpieczeństwa poza public_html i cgi-bin.
- Teraz musimy nadać w Linuxie, będąc w katalogu cgi-bin, skryptowi Bash uprawnienia do wykonywania:
1chmod a+x programjava.cgi
Jeśli nam się udało, poleceniem ./programjava.cgi uruchomimy naszą aplikację Java.
- A teraz wisienka na torcie, uruchamiamy na naszym serwerze program CGI z przeglądarki wpisując:
1http://serwer.com/~uzytkownik/cgi-bin/programjava.cgi
Można na końcu dodać parametry np. z formularza np.
1http://serwer.com/~uzytkownik/cgi-bin/programjava.cgi?imie=Jan&nazwisko=KowalskiBędą one widoczne w zmiennych systemowych jako QUERY_STRING