HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring Kandidatnr: Eksamensdato: 17.desember 2001 Varighet: 0900-1300 Fagnummer: LV192D Fagnavn: Web-programmering med ASP Klasser: 1hsf Vekttall: 2 Faglærer(e): Tomas Holt og Else Lervik På eksamensdagen er kun Holt tilgjengelig, tlf. 90598912 Hjelpemidler: Alle håndskrevne og trykte hjelpemidler. Oppgavesettet består av: 3 oppgaver på 5 sider Vedlegg består av: 2 vedlegg på side 6 Merknad: Oppgaveteksten kan beholdes av studenter som sitter eksamenstiden ut. Lykke til! 0
Oppgave 1 (25%) a) Se koden under. Tegn opp hvordan du tror denne siden vil se ut. <HTML> <HEAD><TITLE> Sjekke denne </TITLE></HEAD> <BODY> <H2> Test av student </H2> <FORM ACTION="din.asp" METHOD="GET"> <P> <INPUT TYPE="text" NAME="felt1" VALUE="Skriv inn"> Skriv inn her </P> <P> <INPUT TYPE="text" NAME="felt2" VALUE="Skriv inn"> Skriv inn her </P> <P> <INPUT TYPE="radio" NAME="radio" VALUE="punktliste"> Skal det være punktliste? <P> <INPUT TYPE="radio" NAME="radio" VALUE="enlinje" CHECKED> Skal alt være på en linje? <P> VELG UTSENDET <P> <SELECT NAME="overskrifter"> <OPTION VALUE="en"> Overskrift 1 </OPTION> <OPTION VALUE="to"> Overskrift 2 </OPTION> <OPTION VALUE="tre"> Overskrift 3 </OPTION> </SELECT> <INPUT TYPE="submit"> </FORM> </BODY> </HTML> b) Du skal nå lage ASP-kode som tar imot opplysningene fra HTML-skjemaet over. Du skal så presentere opplysningene for brukeren slik som brukeren har bedt om. Du skal altså presentere tekstene brukeren har skrevet inn enten som punktliste eller på en linje. Skrifttypen skal også være som brukeren har valgt (overskrift 1, overskrift 2 eller overskrift 3). 1
Oppgave 2 (vekt 24%) Multiple choice Tabellen under inneholder 12 spørsmål der du skal krysse av for det alternativet du mener er riktig. Det er kun et riktig svar på hvert spørsmål. Hvis du svarer riktig får du 2 poeng, svarer du feil får du -1 poeng, og krysser du av for vet ikke får du 0 poeng. Riv ut denne tabellen og lever den sammen med resten av besvarelsen din. A B C Vet ikke 1. Hvilken type script er best, klientside-script eller tjenerside-script? a. Klientside-script er bedre enn tjenerside-script b. Tjenerside-script er bedre enn klientside-script c. Umulig å si, kommer an på hva scriptet skal brukes til. 2. Er det mulig å bruke klientside-script og tjenerside-script samtidig? F.eks. at en JSP eller ASP genererer et klientside-script? a. Ikke vanligvis b. Ja c. Nei 3. Du skal lage et web-sted som skal vise for alle besøkende når første besøk fant sted. Hvilken av framgangsmåtene under vil du bruke for å gjøre dette? a. Du lager et script i global.asa som sørger for å legge til tidspunktet i application-objektet. b. Du lager et script i global.asa som sørger for å legge til tidspunktet i sessionobjektet. c. Du lager en sjekk i ASP en om dette er første besøk, og hvis dette er tilfellet lagrer du tidspunktet på fil slik at det er tilgjengelig når det trengs senere. 4. Koden i vedlegg 1 vil skrive ut a. hei du b. hei du true c. ingen av delene, vi får en feilmelding 5. Hva er resultatet ved kjøring av koden i vedlegg 2? a. Web-siden vil skrive ut starter og ferdig b. Vi får en feilmelding som sier at vi ikke kan lagre en streng i session-objektet (kun objekter) c. Vi får en feilmelding som sier at session er en udefinert variabel eller klasse 6. Når en sender data fra et HTML-skjema bør en bruke a. GET-metoden fordi denne gir bedre sikkerhet enn POST b. POST-metoden fordi du da kan se parametrene som skal overføres til tjeneren i adresselinja c. POST-metoden fordi denne gir bedre sikkerhet og ikke har begrenset overføringskapasitet 7. Når du lager mer profesjonelle web-sider som skal være tilgjengelig på web bør du da bruke PWS som tjener? a. Ja, så lenge det kun brukes ASP-sider og ikke HTML-sider. b. Ja, PWS fungerer bra uansett. c. Nei, man bør bruke en mer profesjonell web-tjener som gir bedre sikkerhet og ytelse. 8. Tenk deg at du skal lage en web-side der du legger ut små artikler med jevne mellomrom. Hvilken av framgangsmåtene under bør du ikke bruke? a. Hver artikkel bør lagres i application-objektet som en streng og hentes derfra. b. Alle artiklene lagres på samme fil (URL) og inkluderes med <!--#file = URL --> c. Alle artiklene lagres på samme fil (URL) og vises med <% Server.Execute( URL ) %> 9. Du lager et web-sted som kun medlemmer skal ha tilgang til. Du ønsker imidlertid at medlemmene skal slippe å taste brukernavn og passord for å komme inn på web-sidene. a. Dette kan du oppnå på en fornuftig måte ved bruk av gjemte felt (hidden fields). b. Dette kan du oppnå på en fornuftig måte ved bruk av omskring av URL. Dette er den beste måten da en ikke er avhengig av at klienten støtter cookies. c. Det er kun ved bruk av cookies at dette kan gjøres på en fornuftig måte. 2
10. Hvilken av kodebitene under vil gi feilmelding? a. <%= hei på deg %> b. <% Response.Write( hei på deg ) %> c. <%= hei på deg %> 11. Hvorfor er det aktuelt å bruke feilsider (ErrorPages)? a. Fordi vi som utvikler da slipper å tenke på feilbehandling b. Fordi det er umulig å garantere seg mot alle mulige feil, og med feilsider kan vi gi en brukevennlig feilmelding og muligheter for videre navigasjon. c. Feilsider er egentlig bare noe tull, la heller web-tjeneren sørge for feilbehandling. 12. Når jeg skal lagre en fil som kun inneholder HTML-kode så bør jeg a. lagre den med etternavn.asp. Dette gir størst fleksibilitet. b. lagre den med etternavn.html. Dette gir bedre ytelse på web-tjeneren. c. spiller ingen rolle hvilket etternavn filen får. Den behandles på samme måte uansett. 3
Oppgave 3 (vekt 51%) Følgende databasetabell er gitt: (Dataene burde egentlig vært delt i to tabeller, som du ser det er en del dobbeltlagring her. Men på grunn av at dere ikke har arbeidet med to tabeller på en gang, velger jeg i stedet å legge alt i samme tabellen.) Primærnøkkelen i denne tabellen er kombinasjonen av fagid og studnr. Dersom karakteren er 0, betyr det at studenten enten har stryk, eller ikke har vært oppe i dette faget ennå. Du skal i denne oppgaven lage en ASP som først gir følgende i nettleseren: Etter at brukeren har skrevet inn studentnummeret kommer dette opp: 4
SQL-setningen for å hente linjer med et bestemt studentnummer ser slik ut: select * from fag where studnr = 100000 I programmet vil 100000 være byttet ut med en variabel. Merk at det er samme ASP en som genererer begge sidene. Antall fag, antall vekttall og gjennomsnittlig karakter skal regnes ut og skrives ut under tabellen. Fagnavnene skal være linker til fagsidene (kolonnen URL i tabellen). 5
Vedlegg 1 <HTML> <HEAD> <TITLE> Vedlegg 1</TITLE> </HEAD> <BODY> <% sjekk = true; if (sjekk) then %> hei du <% end if %> <%= sjekk %> </BODY> </HTML> Vedlegg 2 <% function lagreisessionobjektet(streng) session ("lagreobj") = streng end function %> <HTML> <HEAD><TITLE> Vedlegg 2 </TITLE> </HEAD> <BODY> <H2> Starter </H2> <% lagreisessionobjektet("lagre denne strengen") %> <H3> Ferdig </H3> </BODY> </HTML> 6