Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 1 Internetapplicaties Deel 14:...
-
Upload
anneleen-desmet -
Category
Documents
-
view
214 -
download
1
Transcript of Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 1 Internetapplicaties Deel 14:...
Deel XIV Eerste echte e-commerce applicatie ImplementDeel XIV Eerste echte e-commerce applicatie Implementatie (vervolg)atie (vervolg)
11
InternetapplicatiesInternetapplicaties
Deel 14: Deel 14:
Eerste echte e-commerce applicatie:Eerste echte e-commerce applicatie:
Implementatie (vervolg)Implementatie (vervolg)
Deel XIV Eerste echte e-commerce applicatie ImplementDeel XIV Eerste echte e-commerce applicatie Implementatie (vervolg)atie (vervolg)
22
Boeken, tutorials, links, nieuwe Boeken, tutorials, links, nieuwe elementenelementen
Google: date and time methods java:Google: date and time methods java: java.sun.com/docs/books/tutorial/ java.sun.com/docs/books/tutorial/
essential/system/misc.html essential/system/misc.html
longlong nu = System.currentTimeMillis(); //tijd in milli’s nu = System.currentTimeMillis(); //tijd in milli’s
HTML-form paswoord-input-type:HTML-form paswoord-input-type:<input type = "password" name = "paswoord" ><input type = "password" name = "paswoord" >
Deel XIV Eerste echte e-commerce applicatie ImplementDeel XIV Eerste echte e-commerce applicatie Implementatie (vervolg)atie (vervolg)
33
Probleem: ReloadProbleem: Reload
Reload-probleemReload-probleem Zonder maatregelen, zorgt een reload ervoor dat de parameters Zonder maatregelen, zorgt een reload ervoor dat de parameters
opnieuw worden verzonden en je de laatste actie herhaalt !opnieuw worden verzonden en je de laatste actie herhaalt !POGING 1:POGING 1:
Vervang de URL-rewriting door forms met hidden input-velden en Vervang de URL-rewriting door forms met hidden input-velden en method=“post”method=“post”
Parameters zijn niet meer zichtbaar, maar ze zijn er welParameters zijn niet meer zichtbaar, maar ze zijn er wel Je krijgt als gebruiker een keuze ‘parameters opnieuw versturen Yes/No’. Als Je krijgt als gebruiker een keuze ‘parameters opnieuw versturen Yes/No’. Als
je ja kiest: probleem niet opgelost.je ja kiest: probleem niet opgelost.
POGING 2:POGING 2: Geeft de tijd van ‘html-generatie’ meeGeeft de tijd van ‘html-generatie’ mee Steek deze tijden in een collectie bvb een HashMap.Steek deze tijden in een collectie bvb een HashMap. Geef de tijd mee als parameter naar winke.jsp:Geef de tijd mee als parameter naar winke.jsp:
Als tijd uniek is, voer dan de actie uit, anders niet.Als tijd uniek is, voer dan de actie uit, anders niet.
Deel XIV Eerste echte e-commerce applicatie ImplementDeel XIV Eerste echte e-commerce applicatie Implementatie (vervolg)atie (vervolg)
44
Users/klantenUsers/klanten
We hernemen het plan ivm users:We hernemen het plan ivm users: userid bestaat userid bestaat
combinatie userid & paswoord bestaatcombinatie userid & paswoord bestaat bestelling wordt toegevoegd aan de databasebestelling wordt toegevoegd aan de database
combinatie userid & paswoord bestaat nietcombinatie userid & paswoord bestaat niet foutpaginafoutpagina
userid bestaat nietuserid bestaat niet Klantgegevens worden opgevraagdKlantgegevens worden opgevraagd
klant wordt toegevoegdklant wordt toegevoegd
bestelling wordt toegevoegd aan de databasebestelling wordt toegevoegd aan de database
Deel XIV Eerste echte e-commerce applicatie ImplementDeel XIV Eerste echte e-commerce applicatie Implementatie (vervolg)atie (vervolg)
55
Users/klantenUsers/klanten
We zullen naar analogie met de voorgaande tabellen, de userid We zullen naar analogie met de voorgaande tabellen, de userid vanaf nu klant_id noemen. Voorlopig zijn maar enkele velden vanaf nu klant_id noemen. Voorlopig zijn maar enkele velden NOT NULL.NOT NULL.
mysql> mysql> create table klant(klant_id CHAR(50) create table klant(klant_id CHAR(50) not nullnot null primary keyprimary key,, -> paswoord CHAR(50) -> paswoord CHAR(50) NOT NULLNOT NULL, naam CHAR(50), voornaam CHAR(50),, naam CHAR(50), voornaam CHAR(50), -> email CHAR(70) -> email CHAR(70) NOT NUllNOT NUll,, -> adres CHAR(50), postcode CHAR(7), gemeente CHAR(50));-> adres CHAR(50), postcode CHAR(7), gemeente CHAR(50));
In de bestelling-tabel was onze klant_id een integer. Die moet dus In de bestelling-tabel was onze klant_id een integer. Die moet dus nu een CHAR(50) worden en hij moet altijd ingevuld zijn. (Je nu een CHAR(50) worden en hij moet altijd ingevuld zijn. (Je mag ook de klant-tabel droppen en opnieuw aanmaken). Verder mag ook de klant-tabel droppen en opnieuw aanmaken). Verder kunnen we beter bestelling en besteldproduct leegmaken.kunnen we beter bestelling en besteldproduct leegmaken.
mysql> mysql> delete from bestelling;delete from bestelling;mysql> mysql> delete from besteldproduct;delete from besteldproduct;mysql> mysql> alter table bestelling modify klant_id CHAR(50) NOT NULL;alter table bestelling modify klant_id CHAR(50) NOT NULL;
Deel XIV Eerste echte e-commerce applicatie ImplementDeel XIV Eerste echte e-commerce applicatie Implementatie (vervolg)atie (vervolg)
66
Nieuwe addBestelling-methodeNieuwe addBestelling-methode
MET klant_id:MET klant_id:public void addBestelling(Winkelkar winkelkar,public void addBestelling(Winkelkar winkelkar, String sessionId, String sessionId, String klant_idString klant_id) ) throws SQLException, Exception {throws SQLException, Exception { if (con != null) {if (con != null) { try{try{ PreparedStatement updateBestelling;PreparedStatement updateBestelling; updateBestelling = con.prepareStatement(updateBestelling = con.prepareStatement( "INSERT INTO bestelling VALUES(?,"INSERT INTO bestelling VALUES(?,??,NULL)");,NULL)"); updateBestelling.setString(1,sessionId);updateBestelling.setString(1,sessionId); updateBestelling.setString(2,klant_id);updateBestelling.setString(2,klant_id); updateBestelling.execute();updateBestelling.execute();……
Deel XIV Eerste echte e-commerce applicatie ImplementDeel XIV Eerste echte e-commerce applicatie Implementatie (vervolg)atie (vervolg)
77
bestelling.jspbestelling.jsp
bestelling.jsp wordt hernoemd tot bestelling.jsp wordt hernoemd tot bestelling2.jspbestelling2.jsp
bestelling2.jsp zal klant_id en paswoord bestelling2.jsp zal klant_id en paswoord opvragen en doorsturen naar bestelling.jspopvragen en doorsturen naar bestelling.jsp
In een eerste fase wordt NIETS gedaan met In een eerste fase wordt NIETS gedaan met deze klant_id en paswoorddeze klant_id en paswoord
Deel XIV Eerste echte e-commerce applicatie ImplementDeel XIV Eerste echte e-commerce applicatie Implementatie (vervolg)atie (vervolg)
88
Bestelling.jsp Bestelling.jsp klant_id en paswoord opvragenklant_id en paswoord opvragen
We geven userid en paswoord gewoon door. In principe NIET secure. Security We geven userid en paswoord gewoon door. In principe NIET secure. Security wordt later behandeld.wordt later behandeld.
<form action = "bestelling2.jsp" method = “post"><form action = "bestelling2.jsp" method = “post"> user id: <input type = "text" name = "klant_id“user id: <input type = "text" name = "klant_id“ maxlength = "50" ><br>maxlength = "50" ><br> paswoord: <input type = "password" name = "paswoord“paswoord: <input type = "password" name = "paswoord“ maxlength = "50" ><br>maxlength = "50" ><br> <input type = "submit" value = "Bestelling doorvoeren"><input type = "submit" value = "Bestelling doorvoeren">
</form></form>
Deel XIV Eerste echte e-commerce applicatie ImplementDeel XIV Eerste echte e-commerce applicatie Implementatie (vervolg)atie (vervolg)
99
OpmerkingenOpmerkingen Geen transacties Geen transacties
Klant- en bestellingtoevoeging moeten soms in Klant- en bestellingtoevoeging moeten soms in één transactie gebeuren. Anders soms klant één transactie gebeuren. Anders soms klant zonder bestelling (omgekeerd is nog erger).zonder bestelling (omgekeerd is nog erger).
Geen security (paswoord gecodeerd Geen security (paswoord gecodeerd doorgeven ?)doorgeven ?)
Geen automatische updates van andere Geen automatische updates van andere velden van klant: bvb velden van klant: bvb email wijzigen als die email wijzigen als die ingevuld is !ingevuld is !