Arhiiv 2006 - Võrgurakendused I: ülesanne 2
Tähtaeg: 31. märts.
Ülesandeks on valmistada (üksi) serverirakendus, mis on analoogiline - kuid hulga lihtsam - kui http://www.reddit.com.
Mida rakendusega peab saama teha
Autentimist ja redigeerimist jne ei ole. Igaüks peab saama:
- vaadata (klikatavate) linkide loetelu, mis on sorteeritud pluss/miinus punktide ja aja järgi:
- mida uuem, seda eespool
- mida rohkem plusse, seda eespool
- mida rohkem miinuseid, seda tagapool.
- Mõistlik valem tuleb ise välja mõelda.
- Lisada link: vorm, kus on koht lingile ja ühelauselisele tekstile. Lõputult ei tohi linke lisada saada: failis ei tohi olla rohkem, kui 20 linki.
- Vajutada üles või alla nupule klikatavate linkide loetelus, mille peale salvestatakse pluss või miinuspunkt faili.
Kuidas rakendus tuleb kirjutada
Rakendus tuleb kirjutada kui komplekt cgi programme javas. Kasutada standard-javat, mitte j2ee-d. Java programmid tuleb käima tõmmata shelli skriptidest. Vaata materjale loengust.
Andmed tuleb kirjutada serveris olevasse csv-faili. Sellest failist ehitab üks teie cgi programmidest ka kuvatava html teksti.
Näide hakatuseks
Shelli skript, mis paneb käima java rakenduse (klassi nimega proov) Taneli läpakas: teistel on vaja programmide/failide asukohad muuta enda masina jaoks sobivaks, samuti pane kõik ühe rea peale!!!
#!/bin/sh
cd /tmp
/usr/local/java/j2sdk1.4.2_02/bin/java -cp /home/tanel/Lectures/Vorgurak1/Cgiproov/
proov $QUERY_STRING
NB! Pane see skript oma public_html kataloogi, näiteks nimega proov.cgi (.cgi peab lõpus olema). Seepeale tuleb ta teha käivitatavaks, öeldes chmod +x proov.cgi. Lõpuks proovime: http://www.itcollege.ee/~mina/proov.cgi
Õige java path itcolleges on /usr/bin/java, cp järel kataloog on /home/minukasutajanimi/public_html
NB! vajadus cd /tmp järele on hetkel ebaselge (et miks vaja?)
Käsurealt katsetamiseks on hea teha nii:
export QUERY_STRING=miskijutt
Java programmi näide, mida saab eelmise skriptiga käivitada
import java.io.*;
public class proov {
public static void main(String[] args) {
String ls_str;
System.out.println("content-type: text/html");
System.out.println("");
System.out.println("<p>OK algus javast on siin</p>");
System.out.println(args[0]);
}
}
Lisaülesanne (ei ole kohustuslik)
Lisaülesanne annab ekstrapunkte, mida saab kasutada, kui mõnes muus praktikumis punkte puudu.
Kirjutada listide vaatamisprogramm eraldi http serverina javas: vaata javas kirjutatud http serveri näidet loengust.