Internetapplicaties - VI Herhaling 1 Internetapplicaties Deel 6: Herhaling.

Slides:



Advertisements
Verwante presentaties
Deel XVII: JSP-applicatiearchitectuur 1 Internetapplicaties Deel 17: JSP-applicatiearchitectuur Model 2 = MVC = Model View Controller.
Advertisements

Databases via internet
Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 1 Internetapplicaties Deel 14: Eerste echte e-commerce applicatie: Implementatie (vervolg)
Internetapplicaties - II Gegevensinvoer 1 Internetapplicaties Deel 2: Gegevensinvoer: HTML-forms, JavaScript en JSP.
Gegevensstructuren: list boxen en lijsten
Van domeinklasse tot implementatie
Internetapplicaties Niki Meulemans
Klassen en objecten.
Hoofdstuk 5: Bestanden.
Hoofdstuk 6: Controle structuren
GWT-RPC Bram Vandeputte. Wat is GWT-RPC Raamwerk voor envoudige client-server uitwisseling van Java Objecten. Gebaseerd op de Java Servlet architectuur.
Hoofdstuk 2 Hallo, C# !.
Inleidend probleem Data structuur (hiërarchie van classes)
JAVA -- H51 CONSTRUCTOR –- COPY-CONSTRUCTOR 1Constructor: Dezelfde naam als de klasse Wordt uitgevoerd d.m.v. new Initialisatie van de (private) attributen.
Oefeningen Hoofdstuk 3.
Java en BlueJ Een goed idee?.
PHP functies.
6.1 Inleiding HOOFDSTUK 6 METHODEN
LauwersCollege Buitenpost Java Applet programma dat op een website zichtbaar is Java Application programma dat zelfstandig werkt Javascript Scripttaal.
Hoofdstuk 16 en 19 PHP en MYSQL
Opgave 1a: void nvoid staat in de header van een methode die geen resultaatwaarde heeft nde aanroep van een void-methode is dan een opdracht i.p.v. een.
CSA, week 31 CSA week 3. CSA, week 32 Terugblik opdracht (client)  Stub creëren uitgaande van IOR ( string_to_object ) of stub creëren uitgaande van.
Deel XIII Eerste echte e-commerce applicatie (iteraties + impl ) 1 Internetapplicaties Deel 13: Eerste echte e-commerce applicatie: Enkele iteraties met.
Internetapplicaties - IV Collecties 1 Internetapplicaties Deel 4: Java hulpklassen: Collecties.
OO Analyse in de praktijk OO Analyse in de praktijk V Enkele Design Patterns.
Deel XXI 1 Internetapplicaties Internetprogrammeren Capita Selecta.
OO Analyse in de praktijk OO Analyse in de praktijk IV OO basisregels.
Internetapplicaties - V Sessies 1 Internetapplicaties Deel 5: Sessies.
Herhaling Java-programmatie en geautomatiseerd testen (vervolg)
Deel XX Hosting 1 Internetapplicaties Deel XX Hosting.
Deel XII Eerste echte e-commerce applicatie (vervolg) 1 Internetapplicaties Deel 12: Eerste echte e-commerce applicatie: Ontwerp (vervolg)
Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 1 Internetapplicaties Deel 15: Herhaling Java-programmatie en geautomatiseerd testen.
Deel X: JSP + Java + database 1 Internetapplicaties Deel 10: JSP + Java + database: Client Server via http.
PHP & MYSQL LES 02 PHP & FORMULIEREN. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
Meervoudige selectie van deuren
Constructoren Genesis 1:1 Aarde a1 = new Aarde(“Adam”, “Eva”);
Datacommunicatie en netwerken
Tircms03-p les 4 Klassen. Abstracte datatypes in C struct stack { char info[100]; int top; }; void reset(stack *s) { s->top = -1; } void push(stack *s,
Polymorphisme en Interfaces: inleiding
Java Objectgeoriënteerd Programmeren in Java met BlueJ
Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 7 Polymorfie en overerving © 2014, Gertjan Laan, versie 2.
Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 8: Gebruikersinterface © 2014, Gertjan Laan, versie 2.
INFITT01 - Internettechnologie WEEK 3. Programma Sessies JSP.
Java & het Web Programma: Databases (jdbc, JNDI, ORM, JPA)
Java & het Web Programma: 3rd party libraries Standard actions (E)xpression (L)anguage.
Java & het Web Programma: Beveiliging Filters. Security.....wat is dat(1)? Beveiliging draait om 4 belangrijke steunpilaren: 1.Authenticatie: is de persoon.
Java & het Web Programma: Contexts Listeners Scope/Attributes Thread safety.
Java & het Web Programma: Sessies JSP. Stateless vs. Stateful(1) HTTP is stateless WAT IS STATELESS?
Java & het Web Programma: JSP. JSP....herhaling Welke van de volgende expressions is geldig/ongeldig? %>
Eigen klassen maken A new way of thinking.. Wat? Zie voorbeeld. Zie voorbeeld.
Inloggen >> Gegevensaanlevering en controle in Peridos In Release 3.3 van Peridos is er een nieuwe module gebouwd voor het aanleveren en bekijken van gegevens.
GEGEVENSSTRUCTUREN IN.NET. Inleiding  Enumerated type  Structure  Collecties  Typed collections  Untyped collections.
Java voor beginners Doel: Een spel maken in LWJGL Door: Jim van Leeuwen.
GUI & classes Een Gui in een class steken en het object gebruiken.
De definitie van een object. Een object is een verzameling van eigenschappen en bewerkingen. Veel voorkomende objecten zijn: D (display) Gui (user interface)
Informatie beoordelen If else Switch En Wiskunde.
Bespreking testpracticum.  Javaconventies! ◦ KlasseNamen beginnen met Hoofdletter ◦ objectNamen/methodeNamen met kleine letter  Aanspreken GUI ◦ Zie.
Windows applicatieontwikkeling
Objectgeoriënteerd Programmeren (2)
Gameprogrammeren: Objecten en geheugen
Gameprogrammeren: Lists en interfaces
Voorbeeld: Simulatie van bewegende deeltjes
Gameprogrammeren: Abstracte klassen
Gameprogrammeren: Klassen en objecten
Implementatie Zoekboom
Software Development fundamentals
SQL Les February 2019.
ASP.NET MVC Web Development
– Software development fundamentals
Transcript van de presentatie:

Internetapplicaties - VI Herhaling 1 Internetapplicaties Deel 6: Herhaling

Internetapplicaties - VI Herhaling2 Doelstelling  Parate kennis krijgen over technieken die we nog nodig gaan hebben.  Overzicht behouden. N.B.: Wat we nu vooral nog missen is: -> kennis over databases en client-server -> kennis over internet security

Internetapplicaties - VI Herhaling3 Inhoud  6.1 forms, request:  voorbeeld+werking+opgave  bestanden broodjes.html, verwerk.jsp  6.2 jsp-beans:  voorbeeld+werking+opgave  bestanden Persoon.java, persoonBean.jsp  6.3 collecties:  voorbeeld+werking+opgave  bestanden Leerling.java  6.4 sessies:  voorbeeld+werking+opgave  bestanden Koop.jsp, Winkelkar.java

Internetapplicaties - VI Herhaling4 6.1 forms, request  U heeft folder en bestand: c:\jakarta-tomcat \webapps\hfdst2\Broodjes.html

Internetapplicaties - VI Herhaling5 Opmerkingen  action-attribuut van de form-tag:  bepaalt wat er moet gebeuren als de submit-knop wordt geactiveerd  Zal bij ons een jsp-bestand aanroepen. zie verder  method-attribuut van de form-tag:  get: de ingegeven data worden achteraan de URL-geplakt als volgt:  Verwerk.jsp?naam=niki+meulemans&adres=naamsevest+96  post: de doorgegeven data zijn onzichtbaar  name-attribuut van diverse tags:  dient om naar de ingegeven invoer te kunnen verwijzen tijdens de verwerking door de jsp-code)

Internetapplicaties - VI Herhaling6 Opmerkingen: radio-knop  De -control:  Bij elkaar horende radio-knoppen moeten dezelfde naam dragen. Selecties sluiten elkaar dan uit.  Door checked te schrijven, is deze knop default geselecteerd  De value=“..” bepaalt de waarde tijdens de verwerking, maar is niet zichtbaar op de pagina <input name = "levering" type = "radio“ <input name = "levering" type = "radio“ value = "Winkel"> Winkel value = "Winkel"> Winkel <input name = "levering" type = "radio“ <input name = "levering" type = "radio“ value = "Thuis“ checked > Thuis value = "Thuis“ checked > Thuis

Internetapplicaties - VI Herhaling7 Opmerkingen: checkbox  De -control:  Bij elkaar horende checkboxen kunnen dezelfde naam dragen  De value=“..” bepaalt de waarde tijdens de verwerking, maar is niet zichtbaar op de pagina <input type = "checkbox" name = "Soms Kaas“ <input type = "checkbox" name = "Soms Kaas“ Value = "Yes" >Smos Kaas Value = "Yes" >Smos Kaas  In geval 2 checkboxen zelfde naam hebben & beide aangeklikt zijn: beide values woren doorgegeven: < input type = "checkbox" name = “Broodjes“ < input type = "checkbox" name = “Broodjes“ Value = “Kaas" >Smos Kaas (NIET BIJ ONS !!!) Smos Kaas (NIET BIJ ONS !!!)<input type = "checkbox" name = “Broodjes“ Value = “Hesp" >Smos Hesp (NIET BIJ ONS !!!)

Internetapplicaties - VI Herhaling8 Extra controls: select-listbox, reset- knop …<b>Grootte</b><br> piccolo/option> piccolo/option> half stokbrood half stokbrood heel stokbrood heel stokbrood </form>…

Internetapplicaties - VI Herhaling9 Opmerkingen: select  De -control:  Geeft drop-down listbox of multi-select listbox.  Via …, verschillende keuzes aangeven  Er is 1 naam voor alle opties.  Door selected te schrijven, is deze option default geselecteerd.

Internetapplicaties - VI Herhaling10 select (vervolg)  Multiple attribuut (niet in onze code)  Maakt keuze van verschillende opties tegelijk mogelijk (CTRL+klik)  In geval meer dan 1 keuze gemaakt is: beide values woren doorgegeven: mosterd (NIET BIJ ONS !!!) mosterd (NIET BIJ ONS !!!) ketchup (NIET BIJ ONS !!!) ketchup (NIET BIJ ONS !!!)

Internetapplicaties - VI Herhaling11 select (vervolg)  value attribuut (niet in onze code)  Als die er is wordt de bebehorende value doorgegeven bij selectie.  Als die ontbreekt, wordt tekst tussen doorgegeven bij selectie.  Belangrijk als je denkt dat de zichtbare tekst meer veranderlijk is dan de values getrouwd getrouwd alleenstaand alleenstaand weduwe/naar weduwe/naar

Internetapplicaties - VI Herhaling12 Opmerkingen: reset-knop  De -control:  Functie is vast bepaald: Leegmaken van de invoervelden  Value-attribuut geeft de tekst in de knop weer

Internetapplicaties - VI Herhaling13 JSP-verwerking  Tot nog toe konden we met de ingevoerde gegevens niets doen  N.B. Wat we nu hier zullen doen, hadden we ook in (door client zichtbare) JavaScript gekund.

Internetapplicaties - VI Herhaling14 JSP-verwerking  U heeft het bestand: c:\jakarta-tomcat \webapps\hfdst2\verwerk.jsp

Internetapplicaties - VI Herhaling15 Opmerkingen    request-object is impliciet (is al gecreëerd)  type is de klasse HttpServletRequest  1 van de methodes: getParameter()  geeft de value bij de gegeven naam terug

Internetapplicaties - VI Herhaling16 Opmerkingen  Ook mogelijk: opvang van meerdere waarden tegelijk, horend bij name/value pairs die zelfde naam dragen. (niet bij ons)  Opvang in array van Strings via getParameterValues()  Vb: <% String[] sauzen = request.getParameterValues(“saus")); out.println(sauzen[1]);… %> %>

Internetapplicaties - VI Herhaling jsp-beans: Voorbeeldje  U heeft volgend bestand: c:\jakarta-tomcat \webapps\hfdst3\WEB- INF\classes\be\scvobirm\personen\Persoon.java

Internetapplicaties - VI Herhaling18  U heeft volgend bestand: c:\jakarta-tomcat \webapps\hfdst3\persoon.jsp c:\jakarta-tomcat \webapps\hfdst3\persoon.jsp jsp-beans: Voorbeeldje jsp-beans: Voorbeeldje

Internetapplicaties - VI Herhaling19 Java Beans en JSP: Bean TAGS persoonBean.jsp: Opmerkingen   >>> Een bean-object genaamd 'ik' van type Persoon wordt gedeclareerd en gecreeerd.   >>> Oproep van getter ik.getVoornaam(), het resultaat wordt afgedrukt op het scherm.   >>> Oproep van setter ik.setVoornaam("Jantje"), GEEN afdruk op het scherm.   >>> Gewone jsp-script-code kan zonodig gemixt worden met tags in 1 pagina

Internetapplicaties - VI Herhaling Collecties: ArrayList  Is een klasse die de List interface implementeert  Dit betekent dat bepaalde methode-namen van de List interface van een implementatie zijn voorzien.  We vertrekken weerom van een voorbeeldje dat we achteraf van opmerkingen voorzien.  N.B. 1 Voor de duidelijkheid hoor je eigenlijk elk statement op een nieuwe lijn te beginnen.  N.B. 2 Voor grotere systemen hoor je elke identifier een lange betekenisvolle naam te geven.

Internetapplicaties - VI Herhaling21 ArrayList: Voorbeeldje  U heeft folder en bestand: c:\jakarta-tomcat \webapps\ hfdst4\WEB-INF\classes\be\scvobirm\hulp\ hfdst4\WEB-INF\classes\be\scvobirm\hulp\ Leerling.java Leerling.java

Internetapplicaties - VI Herhaling22 Compilatie naar bytecode  Compilatie in een dosbox: c:\jakarta-tomcat \webapps\hfdst4\WEB- INF\classes>javac be\scvobirm\hulp\Leerling.java c:\jakarta-tomcat \webapps\hfdst4\WEB- INF\classes>javac be\scvobirm\hulp\Leerling.java  Uitvoeren van de bytecode: c:\jakarta-tomcat \webapps\hfdst4\WEB- INF\classes>java be.scvobirm.hulp.Leerling c:\jakarta-tomcat \webapps\hfdst4\WEB- INF\classes>java be.scvobirm.hulp.Leerling

Internetapplicaties - VI Herhaling23 Resultaat

Internetapplicaties - VI Herhaling24 Opmerkingen  import java.util.*; betekent: alle klassen in dit pakket. We haddden ook ArrayList ipv * kunnen importeren.  List pot; pot = new ArrayList(); pot = new ArrayList(); pot ondersteunt de List interface Maar er wordt een ArrayList object aan toegekend. Nu kan pot alleen de methoden van ArrayList die ook in List te vinden zijn, oproepen !! pot is nu een leeg ArrayList-object

Internetapplicaties - VI Herhaling25 Opmerkingen  p1 = new Leerling("Piet"," "); p1 wordt gecreëerd met al zijn attributen als parameter. Er zijn geen public setters voorzien in Leerling.java  pot.add(p1); pot.add(p2);  Een List-object kan als elementen objecten van het type Object bevatten. Leerling is een subklasse van Object.  add behoort tot de List interface. Het voegt het object in de parameter toe aan de lijst.  p1 is een Leerling en dus een Object en mag dus toegevoegd worden.

Internetapplicaties - VI Herhaling26 Opmerkingen  for(int i=0 ; i < list.size() ; i++)  size() behoort ook to de List interface. Het geeft het aantal elementen in de lijst.  pp = (Leerling) list.get(i);  get(i) geeft het elemeten op positie i terug. (tellen vanaf 0). get(int) behoort ook tot de List interface.  Collecties bevatten objecten van de klasse Object. Ze moeten geDOWNCAST worden naar specifiekere subklassen.  list.get(i) moet gedowncast worden naar Leerling alvorens ze kan toegekend worden aan pp, die van de klasse Leerling is.

Internetapplicaties - VI Herhaling27 ArrayList: extra methoden // Deze code komt NIET uit het voorbeeldje: ArrayList ar = new ArrayList; ar.add(“A”); // pos 0 ar.add(“B”); // pos 1 // -> A, B ar.add(1,“C”); // “B” schuift nu op naar pos 2 // ->A, C, B Ar.remove(0); // -> C, B

Internetapplicaties - VI Herhaling Sessions We herhalen de Winkelkar-applicatie. U heeft folders en bestand: c:\jakarta-tomcat \webapps\hfdst5\ WEB-INF\classes\be\scvobirm\sessies\Winkelkar.java U heeft dit bestand: c:\jakarta-tomcat \webapps\hfdst5\Koop.jsp

Internetapplicaties - VI Herhaling29 Winkelkar.java: Opmerkingen  public ArrayList getKar(){ ArrayList kopie = new ArrayList(); ArrayList kopie = new ArrayList(); kopie.addAll(kar); kopie.addAll(kar); return kopie; return kopie;} Waarom niet return kar ??? OO basisprincipe: operaties op attributen mogen alleen gebeuren via speciaal daarvoor voorziene methoden. Waarom niet return kar ??? OO basisprincipe: operaties op attributen mogen alleen gebeuren via speciaal daarvoor voorziene methoden. kar teruggeven zou betekenten dat de client de lijst kan aanvullen of verkleinen zonder de door Winkelkar voorziene methoden te gebruiken.

Internetapplicaties - VI Herhaling30 Winkelkar.java: Opmerkingen  public void processRequest(){ if (submit != null) if (submit.equals("toevoegen")) if (submit.equals("toevoegen")) kar.add(produkt); kar.add(produkt); else // sumit.equals(“verwijderen“) else // sumit.equals(“verwijderen“) kar.remove(produkt); kar.remove(produkt);…} We gaan er hier van uit dat submit de actie bevat die we moeten uitvoeren. Produkt bevat het laatst gespecifieerde produkt. processRequest is de enige methode voor clients om produkten toe te voegen of te verwijderen.

Internetapplicaties - VI Herhaling31 1e bezoek

Internetapplicaties - VI Herhaling32 Opmerkingen 1e bezoek  1e bezoek aan de pagina:  De product drop down list wordt getoond  De request parameter “submit” bestaat NIET, submit is dus null. Stel, de gebruiker selecteert ‘danioke‘ en drukt op de submit-knop…  De url Koop.jsp?produkt=danioke&submit=toevoegenKoop.jsp?produkt=danioke&submit=toevoegen wordt naar de server gestuurd. (parameters zichtbaar als method = “get”) Koop.jsp?produkt=danioke&submit=toevoegen

Internetapplicaties - VI Herhaling33 2e bezoek

Internetapplicaties - VI Herhaling34 Opmerkingen 2e bezoek  2e bezoek aan de pagina:  De product drop down list wordt getoond  De request parameter “submit” bestaat nu WEL, en de submit-variabele is nu “toevoegen”.  De request bevat ook nog het produkt.  Beide parameters worden automatisch in de karbean gezet o.a. m.b.v. deze code:

Internetapplicaties - VI Herhaling35 Opmerkingen 2e bezoek (vervolg)  De karbean wordt aangevuld met het produkt (processRequest), gekozen tijdens het 1e bezoek.  De arraylist die de strings van produkten bevat wordt doorlopen. Voor elk produkt wordt een extra rij toegevoegd aan de html-tabel van produkten. Stel, de gebruiker klikt op de ’verwijderen’-link naast ‘danioke‘ in de productentabel… Stel, de gebruiker klikt op de ’verwijderen’-link naast ‘danioke‘ in de productentabel…  De url wordt naar de server gestuurd.

Internetapplicaties - VI Herhaling36 3e bezoek

Internetapplicaties - VI Herhaling37 Opmerkingen 3e bezoek  3e bezoek aan de pagina  De code zorgt nu dat de parameters product=danioke&submit=verwijderen in de karbean worden bewaard zorgt nu dat de parameters product=danioke&submit=verwijderen in de karbean worden bewaard  karbean.processRequest() zal dit keer het gegeven produkt uit de lijst verwijderen  Het feit dat intern de karbean binnen het session-object wordt bewaard, maakt dat doorheen verschillende bezoeken, de winkelkar zijn produkten onthoudt.