Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

Web- og serverprogrammering

Lignende præsentationer


Præsentationer af emnet: "Web- og serverprogrammering"— Præsentationens transcript:

1 Web- og serverprogrammering
Arkitekturer i webprogrammer - dag 6 Model-View-Controller-arkitukturen Flerlags-arkitekturer Læsning: WJSP 10 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 Dette materiale er under Åben Dokumentlicens, se

2 Model-View-Controller
1.Modellen (data og de bagvedliggende beregninger - forretningslogik) Domæne-modellen – universel anvendelse (oftest lavet som servletter – rent Java) En bankkonto har navn på ejer, kontonummer, kort-ID, saldo, bevægelser, etc. Saldo kan ikke ændres direkte, men påvirkes med handlingerne (metoderne) overførsel, udbetaling og indbetaling. 2.Præsentationen af data over for brugeren Producerer HTML-kode (oftest lavet som JSP-sider) Bankkonti præsenteres meget forskelligt. I en pengeautomat vises ingen personlige oplysninger overhovedet. I et netbank-system kan saldo og bevægelser ses (det kunne være en webløsning i HTML). 3.Kontrollør Omsætter bruger-input til handlinger: ændringer på modellen beslutning om næste præsentation I en pengeautomat kan man kun hæve penge. I et netbank-system kan brugeren måske lave visse former for overførsel fra sin egen konto. Ved skranken kan medarbejderen derudover foretage ind- og udbetalinger.

3

4 Informationsstrøm

5 MVC-eksempel

6

7

8

9 kontrol.jsp

10 fejl.jsp

11 Frontkontrol En Frontkontrol (eng.: Front Controller) modtager alle anmodninger og beslutter hvad der skal ske kontrol.jsp er en frontkontrol. (Den er det ikke helt, fordi man kan kan rette i URLen og på den måde få fat i de andre sider uden om kontrol.jsp) redigere web.xml sådan, at alle forespørgsler dirigeres til én servlet eller JSP-side, der agerer Frontkontrol. De rigtige sider kan ligge skjult for klienten i WEB-INF/-mappen Eksempel på web.xml <!-- Frontkontrol: Alt der starter med /bank sendes til kontrol.jsp --> <servlet> <servlet-name>Frontkontrol</servlet-name> <jsp-file>/WEB-INF/bank/kontrol.jsp</jsp-file> </servlet> <servlet-mapping> <url-pattern>/bank/*</url-pattern> <!-- Bemærk: * i URL-mønster --> </servlet-mapping>

12 Brugervalg.java

13

14 Lidt mere om MVC Kilde: Professional JSP, 2. udg., Wrox Press Ltd.

15 MVC og implementation-teknologier

16 MVC Model 1 - State components Current model values Methods to change the values (may include some business logic) Implementation: Java Beans applicable Protocol-independent (HTTP, RMI, ...) 2 - Action components Define allowable changes to state (business logic) Implementation: best not to put in controller rather: create a layer of action beans View The presentation logic of an application Presents state from the Model Provides the UI for the specific protocol (here, HTTP/browser) Separation from Model allows different UI's Implementation: JSP (http) Interaction with model eased by using Java Beans

17 MVC Controller 'Glue' for the MVC-architecture Receiving events Determining and invoking the appropriate handler Invoking appropriate response (view) Implementation: servlets (general programming) Controller acts as dispatcher Handles these tasks: Security – authentification, authorisation Event identification (e.g. using parameter in request) Preparing the model – ensure availability of required components Processing events – invoke appropriate event handler Handling errors – forward control to an error page Triggering response – forward control to response generator

18 Code refactoring – Role separation

19 Page-centric (Client-server) architecture
1. Simple Page-view architecture - easy for getting started; small applications 2. Factoring-out business logic

20 The 'Dispatcher' (mediator, controller) architecture
Mediating servlet (controller) Processes requests Creates beans Manges navigation (decides which JSP the request should be forwarded to next) has common tasks: e.g. authentification JSP (presentation) Has no processing logic Retrieves objects/beans Presents next view


Download ppt "Web- og serverprogrammering"

Lignende præsentationer


Annoncer fra Google