Internetapplicaties - II Gegevensinvoer 1 Internetapplicaties Deel 2: Gegevensinvoer: HTML-forms, JavaScript en JSP.

Slides:



Advertisements
Verwante presentaties
Beste klant, Welkom op Modelovereenkomst.nl. Onder de knop ‘Documenten’ vind u al onze documenten geordend in mappen. Klik iedere keer op ‘pijltje naar.
Advertisements

Les 2 Vandaag •Vragen over voorgaande stof •Plaatjes •Tabellen •Links •Huiswerk.
Deel XVII: JSP-applicatiearchitectuur 1 Internetapplicaties Deel 17: JSP-applicatiearchitectuur Model 2 = MVC = Model View Controller.
Een verkooptool of webshop zonder onderhoud ? Wij hebben hem voor U ! Onze webshop stellen wij beschikbaar voor U.
MAKEN VAN EEN WEBSITE Door het Ict-team : Claes -Van Damme- –Van Nyverseel Januari 04 (GEMSTAM)
Databases via internet
Metadata proces april 2009 train de trainers. Waar in het werkproces metadata Binnen de organisatie zal afgesproken moeten worden van welke data er metadata.
Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 1 Internetapplicaties Deel 14: Eerste echte e-commerce applicatie: Implementatie (vervolg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Webapplicaties: de serverkant
Webtechnologie 1 labo Dieter Roobrouck Kristel Balcaen Claudia Eeckhout Koen De Weggheleire Frederik Duchi An Deraedt Les 6: Forms en Frames.
CSA, week 51 CSA week 5. CSA, week 52 Applets  Applet is Java programma dat afgeleid is van klasse Applet  Heeft geen methode main, wel methode init.
HTML Les 1: Introductie HTML
Internetapplicaties Niki Meulemans
Deze presentatie mag noch geheel, noch gedeeltelijk worden gebruikt of gekopieerd zonder de schriftelijke toestemming van Seniornet Vlaanderen VZW Creatief.
Klassen en objecten.
Didactische mogelijkheden met Google Documents FORMULIEREN
GWT-RPC Bram Vandeputte. Wat is GWT-RPC Raamwerk voor envoudige client-server uitwisseling van Java Objecten. Gebaseerd op de Java Servlet architectuur.
Consoleprogramma’s Hoofdstuk 19. Visual Basic.NET voor studenten2 In dit hoofdstuk … Hoe consoletoepassingen maken In- en uitvoer bij consoleprogramma’s.
Formulieren Overzicht – JS formulieren aanmaken VLUG2 26 juni 2006.
Door Jasper Lanoote, 2007, Hogeschool Antwerpen Departement lerarenopleiding.
Subversion Version control
Kop- en voetteksten, regelnummers
Introductie in: PHP. Groei in webapplicaties Groei in webapplicaties Het ontstaan van PHP Het ontstaan van PHP De client-serverarchitectuur De client-serverarchitectuur.
PHP functies.
1212 /b Ontwerpen en Presenteren met ICT dr.ir. Jos van Leeuwen Faculteit Bouwkunde cap.groep Ontwerp Systemen.
Hoofdstuk 16 en 19 PHP en MYSQL
WEBBUILDING 07/03/2005 Saartje De Geyter.
Deel XXI 1 Internetapplicaties Internetprogrammeren Capita Selecta.
Internetapplicaties - VI Herhaling 1 Internetapplicaties Deel 6: Herhaling.
Internetapplicaties - V Sessies 1 Internetapplicaties Deel 5: Sessies.
Deel XX Hosting 1 Internetapplicaties Deel XX Hosting.
Deel X: JSP + Java + database 1 Internetapplicaties Deel 10: JSP + Java + database: Client Server via http.
Windows Applicaties Bouwen met Visual Studio.NET Sijmen Koffeman Development Consultant Microsoft.
Client-side scripting. 1.Scripting in webpagina’s 1. Verschillende talen VB: toepassingen in Windowsomgeving VBA: toepassingen in MS-Office VBScript internet.
Starten met PHP Dynamischer bouwen. PHP is een een scripttaal waarmee de server pagina’s in elkaar kunt laten zetten. Het verschil met HTML: Een php pagina.
PHP & MYSQL LES 02 PHP & FORMULIEREN. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
PHP & MYSQL LES 01 PHP BASICS. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
Meervoudige selectie van deuren
Starten met PHP Dynamischer bouwen.
MVC in de praktijk Jeroen Swart.NET architect, Quintor
System Measurement Program SAP Basis Release 6.40
© imec 2000 © imec 2001 MAX+PLUS II Installatieprocedure.
MINECRAFT PLAATJES TUTORIAL #3 KUBUSCRAFT.
1 Les 08: Formulieren. 2 Agenda van vandaag Front-end development  Toets Hoofdstuk 8  Bespreken huiswerk  Presentatie over lesstof  formulieren 
Front-end development
Client side vs Server side Server side code Code wordt op de webserver uitgevoerd Bewerkt de html die naar de gebruiker gestuurd wordt voordat die verzonden.
INFITT01 - Internettechnologie WEEK 3. Programma Sessies JSP.
CSS Cascading Style Sheets. CSS code HTML – Welke elementen op een pagina – Stuk code zegt iets over één element CSS – Hoe zien de elementen er precies.
Java & het Web Programma: 3rd party libraries Standard actions (E)xpression (L)anguage.
Java & het Web Programma: Contexts Listeners Scope/Attributes Thread safety.
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.
C++ Les 1: introductie. Programmeren Programma’s scripts Websites libraries (Sound, GUI, netwerking…)
Agenda-slide. Starten met het Figlo Platform Figlo Manager instellingen.
Surfen op het internet Basisbegrippen
Windows applicatieontwikkeling
Webinar voor ambassadeurs
Programmeren is Makkelijk
Programmeren in de Klas
Titel van evenement Inleiding van evenement Subtitel van evenement
Versturen van data naar meerdere mensen
ASP.NET MVC Web Development
ASP.NET MVC Web Development
ASP.NET MVC Views.
– Software development fundamentals
Roberto Tamburello Vicepresident Contoso Pharmaceuticals
Flow Approvals op verschillende manieren
– Software development fundamentals
HTML5 introductie.
Transcript van de presentatie:

Internetapplicaties - II Gegevensinvoer 1 Internetapplicaties Deel 2: Gegevensinvoer: HTML-forms, JavaScript en JSP

Internetapplicaties - II Gegevensinvoer2 Boeken/tutorials:  Beginning JSP Web Development, Wrox  Vooral hfdst. 3  JavaScript By Example, QUE  Google: online html tutorial  …

Internetapplicaties - II Gegevensinvoer3 Hoe passen de 3 elementen in elkaar ?  HTML-forms  GUI-elementen voor de invoer  Client-side JavaScript  Validatie (controle van ingevoerde gegevens)  Server-side  Validatie  Verwerking doorgestuurde geg. via JSP Dataverkeer moet beperkt blijven ivm de performantie Dataverkeer moet beperkt blijven ivm de performantie

Internetapplicaties - II Gegevensinvoer4 HTML-form, algemeen  Electronisch invoerformulier  Via éénvoudige tags in een.html- of.jsp-pagina op te stellen  De gebruiker voert zijn gegevens in en kan dan:  Ofwel op SUBMIT duwen om de gevevens door te sturen van de client naar de server.  Ofwel op RESET duwen om de gegevens leeg te maken.  Zonder CGI, JSP e.d. hebben forms weinig zin. Alleen mailen van de data is dan zinvol.

Internetapplicaties - II Gegevensinvoer5 HTML-form  We zullen leren uit voorbeelden, die nadien worden verklaard.  U creëert folder en bestand: c:\jakarta-tomcat \webapps\hfdst2\Broodj es.html  U tikt de html-code die volgt in dit bestand in.

Internetapplicaties - II Gegevensinvoer6 HTML-form, code <html> Broodjes on-line Broodjes on-line Naam: Naam: Adres: Adres: Telefoon: Telefoon: </body></html>

Internetapplicaties - II Gegevensinvoer7 HTML-form, code (vervolg) Naam: Naam: <input type=“text” name=“naam” <input type=“text” name=“naam” size=“35”> … size=“35”> …<i>Adres:</i> <i>Telefoon:</i> </form>

Internetapplicaties - II Gegevensinvoer8  U creëert de mappen: c:\jakarta-tomcat \webapps\hfdst2\ WEB-INF (voor html-files volstaat deze folder) en hierbinnen:..\ WEB-INF\ classes..\ WEB-INF\ bin  Start/Run, Tik URL in:  OF  c:\jakarta-tomcat \webapps\hfdst2\Broodjes.html  Dit keer (html-file) maakt het niks uit of je via de URL (dus via de webserver) of vanuit je locale filesysteem werkt (dubbelklikken op het bestand volstaat nu).

Internetapplicaties - II Gegevensinvoer9 Resultaat form I:

Internetapplicaties - II Gegevensinvoer10 HTML-form, code (vervolg) … … ervoor: code van vorige slides Levering: Levering: <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 Bestelde broodjes: Bestelde broodjes: <input type = "checkbox" name = "Soms Kaas“ <input type = "checkbox" name = "Soms Kaas“ Value = "Yes" >Smos Kaas Value = "Yes" >Smos Kaas <input type = "checkbox" name = "Soms Hesp“ <input type = "checkbox" name = "Soms Hesp“ Value = "Yes" >Smos hesp Value = "Yes" >Smos hesp </form>…

Internetapplicaties - II Gegevensinvoer11 Resultaat form II:

Internetapplicaties - II Gegevensinvoer12 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 - II Gegevensinvoer13 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 - II Gegevensinvoer14 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 - II Gegevensinvoer15 Extra controls: select-listbox, reset- knop …<b>Grootte</b><br> piccolo/option> piccolo/option> half stokbrood half stokbrood heel stokbrood heel stokbrood </form>…

Internetapplicaties - II Gegevensinvoer16 Resultaat form III:

Internetapplicaties - II Gegevensinvoer17 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 - II Gegevensinvoer18 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 - II Gegevensinvoer19 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 - II Gegevensinvoer20 Opmerkingen: reset-knop  De - control:  Functie is vast bepaald: Leegmaken van de invoervelden  Value-attribuut geeft de tekst in de knop weer

Internetapplicaties - II Gegevensinvoer21 Java-Script, 1e kennismaking  Overzichtje:  JavaScript en Java als talen  JavaScript functie’s als validatie  In ons voorbeeldje  opmerkingen

Internetapplicaties - II Gegevensinvoer22 Java en JavaScript als talen  JAVA In.java-files of binnen 1 %> tag %> tag String str = “Hello; int i = 0; float netto(float bru,float tax){ return bru-tax; }  JavaScript In.html/.jsp- files Binnen … tags tags var str = “Hello”; var i = 0; function netto( bru,tax){ return bru-tax; }

Internetapplicaties - II Gegevensinvoer23 Java en JavaScript als talen  JAVA public class Persoon{ public String naam = “Jef”; public int gebJaar = 1970;} Persoon p = new Persoon(); int i = p.gebJaar; String[] fruit = {“appel”,”peer”};  JavaScript function Persoon{ this.naam = “Jef”; this.gebJaar = 3; } var p = new Persoon(); var i = p.gebJaar; function rijtje{ return rijtje.arguments; }// héél vreemd var fruit = new rijtje(“appel”,”peer”);

Internetapplicaties - II Gegevensinvoer24 Java en JavaScript als talen  JAVA  General purpose  Gecompileerd tot bytecode, sterk getypeerd  Declaratie met type  OO: klassen, overerving  JavaScript  Leeft binnen browserwereld  Tekstueel geïnterpreteerd, zwak getypeerd  Declaratie zonder type  Bijna OO: eigenaardige object- creatie klasse=functie=array

Internetapplicaties - II Gegevensinvoer25 JavaScriptfuncties als valdidatie … Broodjes on-line Broodjes on-line //HIER KOMT DE SCRIPT-CODE: function checkVeld(veld, benaming){…} … //HIER WORDT DE SCRIPT-CODE AANGEROEPEN:

Internetapplicaties - II Gegevensinvoer26 JavaScriptfuncties als valdidatie function checkVeld(veld, benaming){ if ( veld.value == "" ) if ( veld.value == "" ) alert(benaming + " moet ingevuld worden"); alert(benaming + " moet ingevuld worden"); else if ( veld.value.length < 2 ) alert(benaming + alert(benaming + " moet minstens 2 karakters hebben"); else else return; return; veld.focus() ; return;}

Internetapplicaties - II Gegevensinvoer27 Resultaat JavaScript:

Internetapplicaties - II Gegevensinvoer28 Opmerkingen  Aanroep als gevolg van een event: (vb: onBlur -event: gebeurt als de control uit focus is)  Gebruik van een speciale variabele om te verwijzen naar een element uit het html- document: this

Internetapplicaties - II Gegevensinvoer29 Opmerkingen  Ingebouwde objecten met properties (data-fields), gescheiden door een punt: if ( veld.value == "" )  Objecten hebben ook methods: veld.focus() // dit object krijgt // de focus weer // de focus weer  N.B.: JavaScript is ook bruikbaar om dynamisch html te generen op de clientmachine. (zie later)

Internetapplicaties - II Gegevensinvoer30 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 - II Gegevensinvoer31 JSP-verwerking <html> Bestelde Broodjes Bestelde Broodjes Bestelde broodjes van: Bestelde broodjes van: </body></html>

Internetapplicaties - II Gegevensinvoer32 JSP-verwerking <% out.println(request.getParameter("naam" )); out.println(request.getParameter("naam" )); %> %> <% <% out.println(“ “ + request.getParameter(“voornaam" )); out.println(“ “ + request.getParameter(“voornaam" )); %> %> <% out.println(request.getParameter("adres")); <% out.println(request.getParameter("adres")); %> %> Tel: Tel: <% out.println(request.getParameter("telefoon")); <% out.println(request.getParameter("telefoon")); %> %> …

Internetapplicaties - II Gegevensinvoer33 JSP-verwerking <i>Levering:</i><br> <% out.println(request.getParameter("levering")); %><br><br><i>Beleg:</i><br> Kaas ? <% out.println(request.getParameter("Smos Kaas")); %><br> Hesp ? <% out.println(request.getParameter("Smos Hesp")); %><br><br><i>Grootte:</i><br> <% out.println(request.getParameter("grootte")); %><br></body>

Internetapplicaties - II Gegevensinvoer34 Resultaat

Internetapplicaties - II Gegevensinvoer35 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 - II Gegevensinvoer36 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]);… %> %>