Programare Web: Laborator Java server-side

Toate problemele de mai jos se vor implementa folosind servlet şi/sau JSP (în funcţie de enunţul de la fiecare problemă). În rezolvarea problemelor se vor efectua toate validările şi verificările necesare pentru a preîntâmpina orice problemă de securitate (SQL injection, cross site scripting, CSRF, unrestricted file upload, etc).

Notare:

  • o problema – pentru maxim nota 5;
  • fiecare problema aditionala – 1 punct in plus;
  • toate problemele – pentru maxim nota 10.

Studentul va preda cel putin o problema la alegerea cadrului didactic, dar va stii sa raspunda la intrebari legate de rezolvarile tuturor problemelor rezolvate si din teoria aferenta tuturor problemelor (si a celor nerezolvate). Daca sunt necesare conexiuni la baza de date, acestea se vor persista si nu vor fi realizate la fiecare cerere.

  1. Să se implementeze un mecanism de comentarii. Vizitatorii care doresc să posteze comentarii relativ la conţinutul unei pagini vor completa un formular ce va conţine cel puţin o adresă de e-mail şi textul comentariului. Comentariul va fi afişat în cadrul paginii numai după ce acesta va fi validat de către un administrator ce se autentifică cu nume de utilizator şi parola.
  2. Să se implementeze un mecanism de tip “captcha” (control de validare la submit-ul unui formular). Imaginea folosită va fi generată din cadrul unui servlet. Nu se vor folosi biblioteci specializate, ci doar API-rile standard Java şi servlet/JSP.
  3. Să se scrie un filtru care va afişa caracterele *** pe tot output-ul de la server la browser în locul unde outputul respecta nişte expresii regulare care se vor citi dintr-o baza de date (spre exemplu un astfel de filtru este util pentru înlăturarea cuvintelor triviale din posturile unor vizitatori). Înregistrările cu expresii regulare vor fi adăugate în baza de date de către un administrator care se autentifică în prealabil.
  4. Să se scrie un custom tag JSP numit calendar care va afişa o anumită lună dintr-un anumit an. Calendarul va primi ca atribute anul din care face parte luna, numărul lunii, opţional un număr de zi care va fi marcata cu o culoare specificata şi ea opţional. Tagul va primi ca atribut şi o clasa CSS care se va aplica efectiv tabelului sau div-urilor cu ajutorul cărora va fi randat tagul. Exemplu:
  5. Să se scrie un custom tag JSP care va permite afişarea unui grafic (va randa o imagine ce reprezintă graficul). Valorile reprezentate pe ox, oy, textul care va fi afişat pe ox, respectiv pe oy (timp, cantitate, etc), min şi max pe ox şi pe oy, culoarea de desenare a graficului vor fi specificate prin intermediul atributelor tagului.
  6. Folosind JSP sa se implementeze jocul X-0. Doi vizitatori consecutivi ai unei pagini vor fi puşi în corespondenţă şi vor putea juca acest joc între ei. Se va permite accesul oricâtor perechi de jucători. La număr impar de jucători, unul dintre ei va aştepta (aplicaţia oferind un mecanism de autorefresh) până la apariţia unui nou jucător.