Presentation laddar. Vänta.

Presentation laddar. Vänta.

Designmönster J2EE Praktiska tips Webbservertillämpningsprogrammering Vladimir Bogodist.

Liknande presentationer


En presentation över ämnet: "Designmönster J2EE Praktiska tips Webbservertillämpningsprogrammering Vladimir Bogodist."— Presentationens avskrift:

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


Ladda ner ppt "Designmönster J2EE Praktiska tips Webbservertillämpningsprogrammering Vladimir Bogodist."

Liknande presentationer


Google-annonser