Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 1 Internetapplicaties Deel 14:...

9
Deel XIV Eerste echte e-commerce appli Deel XIV Eerste echte e-commerce appli catie Implementatie (vervolg) catie Implementatie (vervolg) 1 Internetapplicaties Internetapplicaties Deel 14: Deel 14: Eerste echte e-commerce Eerste echte e-commerce applicatie: applicatie: Implementatie (vervolg) Implementatie (vervolg)

Transcript of Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 1 Internetapplicaties Deel 14:...

Page 1: Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 1 Internetapplicaties Deel 14: Eerste echte e-commerce applicatie: Implementatie (vervolg)

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)

Page 2: Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 1 Internetapplicaties Deel 14: Eerste echte e-commerce applicatie: 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" >

Page 3: Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 1 Internetapplicaties Deel 14: Eerste echte e-commerce applicatie: Implementatie (vervolg)

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.

Page 4: Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 1 Internetapplicaties Deel 14: Eerste echte e-commerce applicatie: Implementatie (vervolg)

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

Page 5: Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 1 Internetapplicaties Deel 14: Eerste echte e-commerce applicatie: Implementatie (vervolg)

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;

Page 6: Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 1 Internetapplicaties Deel 14: Eerste echte e-commerce applicatie: Implementatie (vervolg)

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();……

Page 7: Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 1 Internetapplicaties Deel 14: Eerste echte e-commerce applicatie: Implementatie (vervolg)

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

Page 8: Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 1 Internetapplicaties Deel 14: Eerste echte e-commerce applicatie: Implementatie (vervolg)

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>

Page 9: Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 1 Internetapplicaties Deel 14: Eerste echte e-commerce applicatie: Implementatie (vervolg)

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 !