Ladda ner presentationen
Presentation laddar. Vänta.
Publicerades avEva Johansson
1
Designmönster J2EE Praktiska tips Webbservertillämpningsprogrammering Vladimir Bogodist
2
Designmönster / J2EE / Praktiska tips Webbservert. 2 Applikationsarkitektur Verktyg Verktyg –Html / Dhtml / Css / JavaScript –Isapi / Cgi / Perl / Php / Python / J2ee /.Net –Java / C++ / Delphi / Vb Modell Modell –Endast klient – P2P –Endast server – B2B –Klient Server
3
Designmönster / J2EE / Praktiska tips Webbservert. 3 Applikationslager
4
4 Affärslogiken
5
5 Designmål Läsbarhet Läsbarhet Underhållbarhet Underhållbarhet Återanvändbarhet Återanvändbarhet
6
Designmönster / J2EE / Praktiska tips Webbservert. 6 Designmönster
7
7 Designmönster
8
8 Designmönster
9
9 Designmönster Sidoorienterade Sidoorienterade –Page-View –Page-View + Bean Förmedlingsorienterade Förmedlingsorienterade –Mediator-View –Mediator-Composite View –Service-To-Workers
10
Designmönster / J2EE / Praktiska tips Webbservert. 10 Ramverket Struts Komplett ramverk Komplett ramverk MVC MVC –ActionServlet (koordinator) –Action (anrop) –ActionBean (anropdata) Egna JSP tag-bibliotek Egna JSP tag-bibliotek Mekanismer för hantering av fel Mekanismer för hantering av fel XML-parsning XML-parsning Internationalization Internationalization http://jakarta.apache.org http://jakarta.apache.org
11
Designmönster / J2EE / Praktiska tips Webbservert. 11 Ramverket Struts
12
Designmönster / J2EE / Praktiska tips Webbservert. 12 Struts - flödeshantering <form-bean name="logonForm" type="app.LogonForm"/> <action path="/Welcome" forward="/pages/Welcome.jsp"/> <action path="/Logon" forward="/pages/Logon.jsp"/> <action path="/LogonSubmit" type="app.LogonAction"
13
Designmönster / J2EE / Praktiska tips Webbservert. 13 Ramverket Struts name="logonForm" scope="request" validate="true" input="/Logon.do"> <forward name="success" path="/Welcome.do"/> <forward name="failure" path="/Logon.do"/> <action path="/Logoff" type="app.LogoffAction"> <forward name="success" path="/Welcome.do"/>
14
Designmönster / J2EE / Praktiska tips Webbservert. 14 Nytt i J2EE Java Server Faces Java Server Faces Java Standard Tag Library Java Standard Tag Library Filters Filters Expression Language Expression Language Java Authentication and Authorization Service Java Authentication and Authorization Service
15
Designmönster / J2EE / Praktiska tips Webbservert. 15 J2EE - Uttryck EL and Template Text Hello ${param['name']}
16
Designmönster / J2EE / Praktiska tips Webbservert. 16 J2EE - Uttryck Aritmetiska operationer Aritmetiska operationer Jämförelser och logiska operationer Jämförelser och logiska operationer Åtkomst åt javabönor och variabler Åtkomst åt javabönor och variabler Implicita objekt (applicationScope, cookie, header, headerValues, initParam, pageContext, pageScope, param, paramValues, requestScope, sessionScope) Implicita objekt (applicationScope, cookie, header, headerValues, initParam, pageContext, pageScope, param, paramValues, requestScope, sessionScope) Funktioner Funktioner –I tagattribut –Nästlade funktioner
17
Designmönster / J2EE / Praktiska tips Webbservert. 17 J2EE - Uttryck <%@ taglib uri="/WEB-INF/taglib.tld” prefix="chapter3" %> <%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
18
Designmönster / J2EE / Praktiska tips Webbservert. 18 J2EE - Java Server Faces Nykomling, ingår i J2ee sen mars 2004 Nykomling, ingår i J2ee sen mars 2004 MVC-tänkande MVC-tänkande Icke-utvecklare kan snabbt komma igång Icke-utvecklare kan snabbt komma igång UI-komponenter med händelsehantering på serversidan UI-komponenter med händelsehantering på serversidan Färdiga valideringsmekanismer Färdiga valideringsmekanismer Konfiguration för sidonavigering Konfiguration för sidonavigering I18n I18n Mer inriktad på att vara språkoberoende, klientoberoende samt protokolloberoende Mer inriktad på att vara språkoberoende, klientoberoende samt protokolloberoende Går att kombinera ihop med andra ramverk Går att kombinera ihop med andra ramverk
19
Designmönster / J2EE / Praktiska tips Webbservert. 19 Databaser Avancerade Avancerade –MS SQL Server –Oracle –IBM DB2 –Informix Medelmåtliga Medelmåtliga –Postgre SQL –MySQL –Borland Interbase Enkla Enkla –Borland Paradox –MS Access ISO SQL – DML & DDL ISO SQL – DML & DDL SQL-funktioner SQL-funktioner Avancerad SQL Avancerad SQL Transaktioner Transaktioner Säkerhet Säkerhet Backup Backup Replikering Replikering Klustring Klustring
20
Designmönster / J2EE / Praktiska tips Webbservert. 20 MS SQL Server i Java Typ I – ODBC-brygga
21
Designmönster / J2EE / Praktiska tips Webbservert. 21 MySQL i Java Typ IV – 100% Java
22
Designmönster / J2EE / Praktiska tips Webbservert. 22 MS SQL Server i ASP via ADO
23
Designmönster / J2EE / Praktiska tips Webbservert. 23 Praktiska tips - Javabönor Är inget annat än en klass som endast tillhandahåller data Är inget annat än en klass som endast tillhandahåller data Ska implementera någon av: Ska implementera någon av: –java.io.Serializable –java.io.Externalizable Serialisering via writeExternal() Serialisering via writeExternal() Deserialisering via readExternal() Deserialisering via readExternal() Ska innehålla en tom konstruktor Ska innehålla en tom konstruktor Samtliga attribut måste ha get- och set-metoder samt följa samma namgivningsmönster Samtliga attribut måste ha get- och set-metoder samt följa samma namgivningsmönster Variabler av typen transient, ex. fil-, socketreferenser Variabler av typen transient, ex. fil-, socketreferenser Felscenario: Guess game i replikerad version Felscenario: Guess game i replikerad version
24
Designmönster / J2EE / Praktiska tips Webbservert. 24 Praktiska tips - Formulär Ge namn till sumbit-knappen Ge namn till sumbit-knappen Skrota Reset Skrota Reset Skydda persondata Skydda persondata –https Samtliga (även type=”hidden”) formulärfält ska valideras Samtliga (även type=”hidden”) formulärfält ska valideras Formulär bör ha rutiner för felhantering med välförklarande felmeddelande Formulär bör ha rutiner för felhantering med välförklarande felmeddelande Validera aldrig endast med JavaScript Validera aldrig endast med JavaScript Reguljära uttryck Reguljära uttryck Rensa ut html-taggar från imatningen Rensa ut html-taggar från imatningen
25
Designmönster / J2EE / Praktiska tips Webbservert. 25 Praktiska tips – E-postformulär Alla variabler ska valideras med hjälp av reguljära uttryck, speciellt om php används Alla variabler ska valideras med hjälp av reguljära uttryck, speciellt om php används Mottagarens adress får aldrig sättas till en url-/formulärvariabel Mottagarens adress får aldrig sättas till en url-/formulärvariabel För en extra logg över data som skickas iväg. E-postserver kan misslyckas, utan att man får reda på det För en extra logg över data som skickas iväg. E-postserver kan misslyckas, utan att man får reda på det Exekveringstid för skriptet bör justeras Exekveringstid för skriptet bör justeras HTTP_REFERER kan användas men bör ej räknas som fullständigt skydd HTTP_REFERER kan användas men bör ej räknas som fullständigt skydd E-postmeddelande ska vara korrekt utformade E-postmeddelande ska vara korrekt utformade Undvik e-post med html-innehåll Undvik e-post med html-innehåll Sätt From-adress till avsändaren av e-postformuläret Sätt From-adress till avsändaren av e-postformuläret Glöm inte att avläsa User-Agent samt IP-adress hos avsändaren Glöm inte att avläsa User-Agent samt IP-adress hos avsändaren Bygg en timingsfunktion som begränsar skriptanrop per tidsenhet per IP- adress Bygg en timingsfunktion som begränsar skriptanrop per tidsenhet per IP- adress Begränsa webbserverns e-posthanterare till att endast skicka e-post till egna kända domäner Begränsa webbserverns e-posthanterare till att endast skicka e-post till egna kända domäner
26
Designmönster / J2EE / Praktiska tips Webbservert. 26 Praktiska tips - Kakor Använd inte känslig data i kakor Använd inte känslig data i kakor Kakorna kan enkelt manipuleras, använd därför kryptering till hjälp Kakorna kan enkelt manipuleras, använd därför kryptering till hjälp Bygg så att det går att använda utan kakor Bygg så att det går att använda utan kakor Sessioner via url-omskrivningar Sessioner via url-omskrivningar
Liknande presentationer
© 2024 SlidePlayer.se Inc.
All rights reserved.