Moduļa 7.3. vingrinājumi

exercise51: JavaBeans izmantošana

Dota klase Vehicle.java:

public class Vehicle {
  private double load;
  private double maxLoad;

  public Vehicle(double max_load) {
    load = 0.0;
    maxLoad = max_load;
  }

  public double getLoad() {
    return load;
  }

  public double getMaxLoad() {
    return maxLoad;
  }

  public boolean addBox(double weight) {
    boolean result = true;
    if ( maxLoad < (weight + load) ) {
      result = false;
    } else {
      load = load + weight;
    }
    return result;
  }
}
  • Pamatot, ka klase ir Javas pupiņa un šai klasei ir divas lasāmās īpašības: load un maxLoad.
  • Mērķis ir izveidot JSP lapu, kura izveido sesijas redzamības līmeņa (scope="session") pupiņu ar tipu Vehicle; attēlo tās stāvokli ar divām krāsainiem stabiņiem un piedāvā HTML formā pievienot šai pupiņai jaunu kasti.
  • Failu exercise51/docs/sample0.html var izvēlēties par sagatavi JSP lapai vehicle.jar, kuru jāliek direktorijā exercise51/web (JSP lapas šai ziņā ir līdzīgas HTML lapām un citiem statiskiem resursiem Web aplikācijā.)
  • Jūsu JSP failam ir dinamiski jārūpējas par sekojošām lietām: par abu krāsaino stabiņu "width" un "title" atribūtiem (tos uzstāda, nolasot getLoad() un getMaxLoad()), par vārdu "IR pievienota/NAV pievienota" paziņojumā par iepriekšējo kasti.
  • JSP lapā ievietotā forma nosūtās atkal uz to pašu JSP lapu, kurā parādās atbilstošs paziņojums par to, vai lapu izdevās sekmīgi nosūtīt.
  • Sabūvēt un uzkopēt aplikācijas EAR failu ar komandām:
    ant clean
    ant build
    deploy
    bind
    

Vajadzības gadījumā klasei Vehicle deklarēt piederību pie java.io.Serializable interfeisa.

exercise52: Tagu bibliotēka

Mērķis: Dotajiem HTML dokumentiem izveidot aplikāciju, kurā tie publicēti katrs kopā ar identisku navigācijas joslu

  • Navigācijas joslas pievienošanai izmantot datubāzu risinājumu ar OC4J iebūvēto tegu bibliotēku.

Darbības:

  • No arhīva c:\oc4j\j2ee\home\jsp\lib\taglib\ojsputil.jar izkopēt failu sqltaglib.tld un ielikt to direktorijā web/WEB-INF.
  • Sabūvēt un uzkopēt aplikācijas EAR failu ar komandām:
    ant clean
    ant build
    deploy
    bind
    
  • Palaist gatavo piemēru, izsaucot URLu http://localhost:8888/exercise52/oracle_page.jsp. Pirms tam Jums vajadzētu savā shēmā izveidot, piemēram, tabulu "cilveks" ar vienu INT un vienu CHAR(n) lauku. (Vai arī pielāgojiet "oracle_page.jsp" kodu jau eksistējošām tabulām.)
  • Dotajiem failiem a.jsp, b.jsp, c.jsp izveidot atbilstošus ierakstus Oracle datubāzē. Norādīt lasāmu faila nosaukumu - "title" un URLisku identifikatoru "id". Izveidot failu navigation.jsp, kurš uzbūvē navigācijas joslu ar linkiem no "title" un URLiem no "id".
  • Ar "include" vai "jsp:include" direktīvu iekopēt "navigation.jsp" lapu katrā no dokumentiem "a.jsp", "b.jsp" un "c.jsp", iespējami maz mainot pārējo dokumenta struktūru.
  • Atvērt http://localhost:8888/exercise52/a.jsp un pārliecināties, ka navigācija strādā arī uz dokumentiem B un C.

Par "include" un "jsp:include" direktīvām sk. JSP mācību līdzekli: http://www.apl.jhu.edu/~hall/java/Servlet-Tutorial/

Piezīme: Navigācijas problēmai ir izplatīts alternatīvs risinājums. Dokumentus var glabāt datubāzē kā tīra HTML BLOBus un ielasīt tos vienā - "universālajā" JSP lapā, kurai kā parametru padod dokumenta id'u.