Web- og serverprogrammering

Dette materiale er under Åben Dokumentlicens, se http://www.sslug.dk/linuxbog/licens.html

Java Server Pages - dag 4

Fremlæggelse af eksamensprojekt første del

Avanceret JSP

Understøttelse for flere klienter

Tråde og synkronisering

Servletter og JSP-siders interne virkemåde

Læsning: WJSP 2.8 - 2.8.6, 3.6-3.7, 4.3 - 4.6, 7.1, 7.3

Løsninger på hjemmeopgaverne

Eksamensprojektet

Fremlæggelse af eksamensprojekt første del (HTML-delen)

Henrik: Fotoklub

Kim D: Netbanken

Anne

Lis: Opgaveafleveringsregistrering (dueslaget)

Bjarne H

Bjarne J: Produktionsstoptidsregistrering (periode, årsag, rapporter)

Kim J

Ole Hedevang: Webbutik

Tommy: Kajakklub

Jesper

Sven-Erik og Morten: E-handel (nok tøjbutik)

Preben: Konfigurator (en slags e-handel)

Svend

Klaus Elmquist: Procedurale mønstre

Per: Hotelinformationssystem (bestilling af roomservice, bord, regning, turistinfo)

Stefan

Ratha: Internet-butik om blomster

Christian

Spørgsmål fra "salen"

Kan du fortælle lidt mere om brug at de 2 include direktiver - hvad er forskellen, kan de 'nestes', hvordan anvendes include i forbindelse med servlets?

<%@ include file="logintjek.jsp" %>

Statisk inklusion

Kildekode i logintjek.jsp kopieres ind i JSP-siden før oversættelse

<jsp:include page="logintjek.jsp" />

Dynamisk inklusion

Hvad der skal inkluderes afgøres på anmodningstidspunktet
<% String side="logintjek.jsp"; %>
<jsp:include page="<%= side %>" />

Dynamisk inklusion kan også ske fra en servlet:

request.getRequestDispatcher("logintjek.jsp").include(request,response);

HTTP-protokollen

Generere grafik fra JSP-side

En side med MIME-typen ”image/jpeg”, behandles som et grafisk billede

http://localhost/billede.jsp

http://localhost/billede.jsp?tekst=JSP+er+nemt

For at vise en webside med et servergenereret billede

Lav JSP-side med HTML, der indeholder en henvisning til billedet, f.eks. <img src="billede.jsp">, i HTML-koden

Lav billede.jsp, der har MIME-typen ”image/jpeg” med billeddata

billede.jsp

Generere grafik fra JSP-side

Indlejre billeder fra harddisken

Servletter

En servlet er en Java-klasse der bliver brugt i en webserver.

Servletten skal arve fra HttpServlet

Servletten skal have en doGet(req, resp)-metode

(eller en doPost()-metode)

Response-objektet bruges til at skrive HTML-kode i.

Servletter

Opsætning af servlet i web.xml

1.Navnet på servletten i <servlet-name>

2.Klassenavnet (incl. pakkenavn) i <servlet-class>

3.Hvilke(n) URL(er) på serveren der skal omdirigeres til servletten i <url-pattern> i en <servlet-mapping>

Nu kan servletten ses på http://maskine.dk/servlet/SimpelServlet

Servletter

<url-pattern> giver en række muligheder

Flere URL'er til det samme:

automatisk binding af servletter

frarådes i drift (sikkerhedsproblemer)

JSP-siders livscyklus

JSP-sider oversættes internt til servletter

Langsomt første gang

Hurtig udførelse efterfølgende

Fejlmeddelelser ikke altid nemme at forstå

Oversættes

internt til

Understøttelse for flere klienter

Tråde og synkronisering

Åben Dokumentlicens

Dette foredragsmateriale er under Åben Dokumentlicens (ÅDL)

Du har derfor lov til frit at kopiere dette værk

Bruger du dele af værket i et nyt værk, skal de dele, der stammer fra dette værk, igen frigives under ÅDL

Den fulde licens kan ses på
http://www.sslug.dk/linuxbog/licens.html

2.8.1 Læse filer fra harddisken 37

2.8.2 Erklæring af metoder og blivende variabler 38

2.8.3 Trådsikkerhed i JSP-sider 39

2.8.4 Producere grafik fra JSP 40

2.8.5 Eksempel: JSP-side der danner et JPG-billede 40

2.8.6 Indlejre og nedskalere billeder fra harddisken 43

2.8.7 Opload af filer til server 44

3.6 Avanceret 58

3.6.1 Indkode data i en URL (URL-indkodning) 58

3.6.2 Skjulte felter i formularer 59

3.6.3 Bruge skjulte felter til at etablere et forløb 60

3.6.4 Skjule parametrene (POST-metoden) 60

3.6.5 Cookier 61

3.6.6 Sætte cookier 62

3.6.7 Aflæse cookier 62

3.7 Avanceret: HTTP-protokollen 64

3.7.1 Eksempel på kommunikation 64

3.7.2 Formulardata med GET-metoden 65

3.7.3 Formulardata med POST-metoden 66

3.7.4 Cookier 66

3.7.5 Øvelse 66

4.3 Omdirigering 73

4.3.1 Klient-omdirigering (response.sendRedirect()) 73

4.3.2 Server-omdirigering (<jsp:forward />) 74

4.4 Appendiks: Almindelige JSP-koder 75

4.5 Appendiks: Implicit definerede objekter 76

4.5.1 request - anmodningen fra klienten 76

4.5.2 response - svaret til klienten 77

4.5.3 out - skrive tekst til klienten 77

4.5.4 session - objekt der følger den enkelte bruger 78

4.5.5 application - fælles for hele webapplikationen 79

4.5.6 config - den enkelte websides konfiguration 80

4.5.7 page - selve JSP-siden 81

4.5.8 exception - undtagelse opstået under kørsel 81

4.5.9 pageContext - alle objekterne samlet i ét 81

4.6 Opgaver 82

7.1 Servletter 130

7.1.1 Anmodningsmetoder 131

7.1.2 Hvornår bruge JSP og hvornår bruge servletter 131

7.3 Avanceret: JSP-siders interne virkemåde 133

7.3.1 Kigge i de genererede servletter 133

7.3.2 Eksempel 133

7.3.3 JSP-siders livscyklus 135

Web- og serverprogrammering

Forelæsningsnoter til lærebogen http://javabog.dk/JSP/

Værket er omfattet af Åben dokumentlicens (ÅDL).
Licensens ordlyd kan findes herunder eller på http://www.sslug.dk/linuxbog/licens.html
Åben dokumentlicens (ÅDL) version 1.0 (25. januar 2002)
1. Kopiering og distribution af værket i uændret form
Du må frit kopiere dette værk uændret og distribuere det på ethvert medium, forudsat at du sammen med hver kopi bibeholder denne licens og en henvisning til værkets kilde.
Du kan vælge at kræve penge for kopiering og distribution af indholdet, for undervisning i indholdet, for brugerstøtte og garantier i forbindelse med indholdet. Hvis du videregiver værket til andre, har du pligt til at se til, at du selv eller andre giver modtageren gratis adgang i minimum 3 år til en elektronisk udgave af indholdet - i et åbent redigérbart format - for eksempel via internettet, og at der i hvert eksemplar tydeligt angives, hvordan man kan få den elektroniske udgave.
2. Ændring af indholdet
Du må gerne ændre i dette værk eller dele af det (og dermed lave et nyt værk baseret på dette værk) og distribuere det som nævnt ovenfor, forudsat at du opfylder alle følgende krav:
* a) Du skal sørge for at det nye værk indeholder en tydelig anmærkning om at du ændrede det, hvad du ændrede og datoen for ændringerne.
* b) Det skal være omfattet af samme rettigheder og betingelser ("licens"), som det oprindelige værk.
Alternativt kan det nye værk bære en anden licens eller almindelig ophavsretlig beskyttelse, forudsat at samtlige dele, der oprindeligt stammer fra dette værk, tydeligt er markeret (f.eks i sidefoden på hver side) som værende under denne licens, og at licensen følges for disse dele af værket, herunder at der gives gratis elektronisk adgang som nævnt under afsnittet om kopiering og distribution.
3. Pligter
Enhver anvendelse, kopiering eller distribuering betragtes som en accept af denne licens og dens betingelser. Ved overtrædelse af licensbetingelserne, vil almindelig ophavsretlig beskyttelse være gældende for hele værket og vil dermed gøre person eller personer erstatningspligtige for enhver uautoriseret anvendelse.
4. Garanti
Indholdet leveres "som det er", uden nogen form for garanti for købs-, brugs- eller nytteværdi, medmindre der er givet en særskilt skriftlig garanti herom.

2004-08-30T12:23:21