Web-programmering med JSP Løsningsforslag leksjon 3 Oppgave 1 <%@ page import = "mine.jsp.leksjon3.*, java.util.*" %> <HTML> <BODY> <H1> Denne siden viser inneholder en oversikt over biler: </H1> <UL> <% Biler biler = new Biler(); Enumeration enum = biler.biltyper(); while (enum.hasmoreelements()){ //vi vet at det elementet vi henter er en streng, og caster derfor til en String. Se //leksjonen for utdyping. String bil = (String)enum.nextElement(); out.println("<li>" + bil); %> </BODY> </HTML> Oppgave 2 <%@ page import = " mine.jsp.leksjon3.*, java.util.*" %> <HTML> <BODY> <H1> Denne siden viser inneholder en oversikt over biler: </H1> <UL> <% Biler biler = new Biler(); Enumeration enum = biler.biltyper(); // går i løkke og finner eventuelle ferrari while (enum.hasmoreelements()){ String bil = (String)enum.nextElement(); if (bil.equals("ferrari")){ out.println("<li> <H2>" + bil + "</H2>"); //henter Enumeration på nytt, husk vi har gått i gjennom //hele Enumeration og må begynne på nytt. Går så i løkke //og finner de andre bilene. enum = biler.biltyper(); while (enum.hasmoreelements()){ String bil = (String)enum.nextElement();
if (!bil.equals("ferrari")){ out.println("<li>" + bil); %> </BODY> </HTML> Oppgave 3 og 4 <%@ page import = " mine.jsp.leksjon3.*,java.util.*" %> <HTML> <BODY> <H1> Denne siden viser inneholder en oversikt over biler: </H1> <TABLE BORDER =1 ALIGN = CENTER> <TH> Bilmerke <TH> Pris <% Biler biler = new Biler(); Vector vektor = new Vector(); for (int i =0; i<6;i++){ Bil bil = biler.lesinnbil(i); vektor.add(bil); for (int i = 0; i< vektor.size();i++){ Bil bil = (Bil)vektor.get(i); out.println("<tr><td>" + bil.hentmerke()); out.println("<td>" + bil.pris()); %> </TABLE> </BODY> </HTML> Oppgave 5 enkel Denne løsningen er laget enklest mulig. Forskjellen mellom denne løsningen og den mer avanserte ligger i at den avanserte løsningen behandler alle elementene i HTML-skjemaet likt. Dette gjør det litt enklere med utvidelser i HTML-skjemaet. De to løsningene har mindre praktisk betydning, men begge er tatt med for ordens skyld. <!-- Dette er en enkel versjon av oppgave en, og den andre versjonen er anbefalt. Denne er inkludert pga. det kommer en oppgave senere (øving 4) der en vil ha bruk at html-fila er skrevet som den er her. --> <script language="javascript" type="text/javascript"> <!-- function sjekkform(strenger){ if (strenger.navn.value=="") { alert("du må skrive inn navnet") strenger.navn.focus() else if (strenger.adr.value=="" ){ alert("du må skrive inn adressen") strenger.adr.focus() else if (strenger.tlf.value==""){ alert("du må skrive inn telefonnummeret") strenger.tlf.focus()
else if (strenger.epost.value==""){ alert("du må skrive inn epost") strenger.epost.focus() return true //--> </script> <title>untitled</title> <form onsubmit="return sjekkform(this)" action="http://localhost:9090/examples/jsp/ov4/oppg2.jsp" method="post"> <p>navn: <Input type="text" name="navn"></p> <p>adresse <input type="text" name="adr"></p> <p>tlf.nr.: <input type="text" name="tlf"></p> <p>e-post <input type="text" name="epost"></p> <input type="submit" value="ok"> </form> Oppgave 5 avansert <!-- Denne koden er kanskje ikke optimal, spesielt ikke formatteringa av html-dokumentet (en burde kanskje satt tekst og forms i en tabell slik at det så litt penere ut). Ang. scriptet, så går dette igjennom hvert tekstfelt sekvensielt, og sjekker om det har en verdi. Hvis dette ikke er tilfelle, gir det ut en alert og setter fokus til det (første) feltet (som er funnet uten verdi). --> <script language="javascript" type="text/javascript"> <!-- function sjekkform(strenger){ for(i=0;i<strenger.tekst.length;i++) { if (strenger.tekst[i].value=="") { alert("du må skrive inn alle data") strenger.tekst[i].focus() return true //--> </script> <title>untitled</title> <form onsubmit="return sjekkform(this)" action="http://localhost:9090/examples/jsp/ov3/oppg2.jsp" method="post"> <p>navn: <Input type="text" name="tekst"></p> <p>adresse <input type="text" name="tekst"></p> <p>tlf.nr.: <input type="text" name="tekst"></p> <p>epost <input type="text" name="tekst"></p> <input type="submit" value="ok">
</form>
Oppgave 6 <title>jsp</title> <p>data er mottatt</p> Oppgave 7 <!-- Nok en gang, så må formatteringa på html-dokumentet sies å være litt slapp, men det er script det dreier seg om her. Kort forklart, så er forløpet slik: man tar først verdien ut av tekstfeltet for telefonnummer, og så sjekker man om verdien eksisterer, deretter om det er et tall, og til slutt om det har rett antall sifre. --> <script language="javascript" type="text/javascript"> <!-- function sjekknr(nummer){ telefonnr = nummer.tlf.value if (isnan(telefonnr)){ alert("telefonnummeret er ikke et tall") nummer.tlf.focus() nummer.tlf.select() <!-- slutt på "if (isnan(telefonnr))" --> if (telefonnr.length!= 8){ alert("telefonnummeret har ikke korrekt antall sifre") nummer.tlf.focus() nummer.tlf.select() <!-- slutt på "if (nummer.tlf.value.length!= 8)" --> return true <!-- returnerer true dersom ingen feil har oppstått --> <!-- slutt på "function sjekknr(nummer)" --> function sjekkform(strenger){ if (strenger.navn.value=="") { alert("du må skrive inn navnet") strenger.navn.focus() else if (strenger.adr.value=="" ){ alert("du må skrive inn adressen") strenger.adr.focus() else if (strenger.tlf.value==""){ alert("du må skrive inn telefonnummeret") strenger.tlf.focus() else if (strenger.epost.value==""){ alert("du må skrive inn epost") strenger.epost.focus()
return sjekknr(strenger) //--> </script> <title>untitled</title> <form onsubmit="return sjekkform(this)" action="http://localhost/test.asp" method="post"> <p>navn: <Input type="text" name="navn"></p> <p>adresse <input type="text" name="adr"></p> <p>tlf.nr.: <input type="text" name="tlf"></p> <p>e-post <input type="text" name="epost"></p> <input type="submit" value="ok"> </form>