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

Slides:



Advertisements
Liknande presentationer
security through simplicity 2 Visste du att du kan använda ditt inpasseringskort till att logga in till din dator, till ditt nätverk och till dina molntjänster?
Advertisements

CiviCRM – en introduktion
Mina Aktiviteter Integration med befintliga webbplatser.
Introduktion till XML.
1 Klubbmedlemsrapporter Börja på LCI:s hemsida. 2 Klubbmedlemsrapporter Logga in i Medlemsrapportering.
FTP, HTTP, HTML, XML och XHTML
Mashups Per K, Vad är en mashup? • Mashup är en typ av webbapplikation som sammanställer information och funktionalitet från fler av varandra.
Programmering B PHP Lektion 4
Hemsidor med FrontPage Express
Programmering B PHP Lektion 1
ASP.NET MVC MVC historik ● Traditionellt arkitekturmönster som ansetts särskilt lämpligt i webbapplikationer ● Separation of concerns & loose.
Stora + Störst tal först. Stora additionstabellen Tanketips!
1 ITK:P2 F9 HTTP, Java servlets och Apache Tomcat DSV Peter Mozelius.
Föreläsning 4 Python: mera om funktioner och parametrar
Webben – intro Första föreläsningen i kursen Webbutveckling.
Föreläsning 4 Python: Definiering av egna funktioner Parametrar
Next previous Lite mer om CGI-programmering Innehåll Vad är CGI? Vad är Forms? Vad är Perl? Forms, CGI och Perl. Något om Cookies. Internetprogrammering.
Next previous Lite mer om CGI-programmering Innehåll Vad är CGI? Vad är Forms? Vad är Perl? Forms, CGI och Perl Internetprogrammering F 14 Läs också: Kursboken.
Databaser i B2KUNO Johan Eklund. Hur går jag vidare? Avancerade tillämpningar:  Analysera data  Generera information Utveckla följande färdigheter:
Mahmud Al Hakim Webmaster DAG 11 VT09 Mahmud Al Hakim
WEBMASTER DAG 10 VT09 Mahmud Al Hakim
W EBMASTER DAG 11 HT08 Mahmud Al Hakim
Copyright © Nikolaus Koutakis
Stora additionstabellen
Bastugatan 2. Box S Stockholm. Blad 1 Läsarundersökning Maskinentreprenören 2004.
i olika programmeringsspråk
XSLT – en introduktion Digitalisering av kulturarvet.
Programmering B PHP Lektion 5 och 6
Zend Framework Exemplifierat med spagooy.com Kurs: Moderna applikationsmiljöer, HIK Handledare: Martin Blomberg Studenter: Robin Bengtsson, Magnus Spång.
Från design till dynamisk webbplats | 2 Palle Zingmark  Webbkonsult på Hallvarsson & Halvarsson  Specialist på gränssnittsutveckling  Senior.
XSLT – en introduktion Elektronisk publicering.
Workshop vägledning Välkomna. Dagens upplägg 9:00-9:30 Kaffe 9:30:-10:15 Introduktion 10:15-10:55 Ramverkets delar 10:55-11:15 E-delegationens vägledning.
Bild 1 Hur använder vi KursInfo idag? Högskolan i Skövde.
UTVECKLING MED RAMVERKET.NET Marcus Medina. Dagens visdomsord ” Ingen vet vad han klarar innan han har försökt. ” - Publilius Syrus (85 f.Kr.-43 f.Kr.).
ASP.NET 2.0 Providermodellen André Henriksson UtvecklarevangelistMicrosoft.
LINQ i alla dess smaker Johan Lindfors blogs.msdn.com/johanl Patrik Löwendahl
Arbeta med Arbortext Övningsuppgift DITA (PM01) 2 – KIT
Programspråk Två olika typer av program omvandlar högnivå till lågnivå program: Interpreterande program och kompilerande program. Python är ett interpreterande.
INFÖR NATIONELLA PROVET. UPPGIFT 1 Förenkla så långt som möjligt Ständigt återkommande uppgift!
TietoEnator © 2007presentationPage 1 Mina meddelanden Procapita +
Funktioner, styrstrukturer, manipulering av matriser
A Beginner's Guide to SharePoint 2013 REST API [Rest/Odata/Json]
© CGI Group Inc.CGI Internal Introduktion och Utbildning Oracle Service Cloud Johan Engström & Victor Bogestedt Februari 2015.
Exempelbaserade specifikationer med SpecFlow
UTVECKLING MED RAMVERKET.NET Marcus Medina. Dagens visdomsord “Det verkar alltid omöjligt tills dess att det är gjort” Nelson Mandela.
Välkommen till Sommarkollo Windows Presentation Foundation och Expression Blend Robert FolkessonJohan Lindfors
Webbutveckling Med fokus på grunder i html och css.
WIPCORE PRESENTATIONSMALL  TEXT: Förutom de element som redan är stylade (t.ex. versala rubriker) finns det ett par andra riktlinjer. –Ord du vill markera.
Öppna jämförelser kollektivtrafik Diagram för år 2013.
UTBILDNING FÖR SIBA I WEB FOUNDATION Erik Brandin, 16 februari 2010.
Hållbart Nyföretagande/ CSR som värdegrund 14:15-16:50.
Microsoft Visual Studio och.NET Framework, idag och imorgon! Robert Folkesson
Välkommen till årets andra nätverksträff Sundsvall 30 maj, 2006 Funda Denizhan och Magnus Burell Verva, Nätverket 24-timmarswebben.
Informationsteknologi - Lektion 2 Trådlöst nätverk (WLAN) Trådlöst nätverk (WLAN) Filarkivet: Filarkivet:
Stora subtraktionstabellen
I NNEHÅLLSHANTERINGSSYSTEM J OOMLA CMS L EKTION 3 Mahmud Al Hakim
IV1023 ht2013 nikos dimitrakas KTH/ICT/SCS 1 IV1023 ht2013 Avancerad Datahantering med XML XSLT nikos dimitrakas Rum 8522 Läsanvisningar.
Rikare webb med AJAX, Microsoft Silverlight, WPF och Expression Studio Robert Folkesson
Mashups Per K, Vad är en mashup? Mashup är en typ av webbapplikation som sammanställer information och funktionalitet från fler av varandra.
XHTML – Dokumentets grundstruktur Body - head. Grundläggande dokument
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( )‏ Innehåll:  Introduktion till Java EE (Enterprise Edition)  Enterprise Java Beans.
UTVECKLING MED RAMVERKET.NET Marcus Medina. Dagens visdomsord ”Google is your friend”
DERIVATAN EN INTRODUKTION.
DATABASHANTERING för programmerare Lektion 6 Mahmud Al Hakim
1 2I1073 Föreläsning 1 KTH-MI Peter Mozelius XHTML, stilmallar och Javascript.
HTML Forms, CGI och HTTP. Översikt Innehåll – Presentation – Beteende HTML Forms (innehåll) CGI (beteende) HTTP (beteende)
När infaller Julafton och hur ofta?
Bibliotek
Välkommen till Sommarkollo Expression Studio, verktyg för designers Juli 2007 Robert Folkesson Developer Evangelist Microsoft Johan Lindfors.
Programmeringteknik Webbdelen 2. webbprogrammering Server Den dator som websidan ligger på Klient Dator som tittar på webbsidan med en webbläsare (t ex.
Presentationens avskrift:

Designmönster J2EE Praktiska tips Webbservertillämpningsprogrammering Vladimir Bogodist

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

Designmönster / J2EE / Praktiska tips Webbservert. 3 Applikationslager

4 Affärslogiken

5 Designmål Läsbarhet Läsbarhet Underhållbarhet Underhållbarhet Återanvändbarhet Återanvändbarhet

Designmönster / J2EE / Praktiska tips Webbservert. 6 Designmönster

7 Designmönster

8 Designmönster

9 Designmönster Sidoorienterade Sidoorienterade –Page-View –Page-View + Bean Förmedlingsorienterade Förmedlingsorienterade –Mediator-View –Mediator-Composite View –Service-To-Workers

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

Designmönster / J2EE / Praktiska tips Webbservert. 11 Ramverket Struts

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"

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"/>

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

Designmönster / J2EE / Praktiska tips Webbservert. 15 J2EE - Uttryck EL and Template Text Hello ${param['name']}

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

Designmönster / J2EE / Praktiska tips Webbservert. 17 J2EE - Uttryck taglib uri="/WEB-INF/taglib.tld” prefix="chapter3" %> taglib uri=" prefix="c" %>

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

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

Designmönster / J2EE / Praktiska tips Webbservert. 20 MS SQL Server i Java Typ I – ODBC-brygga

Designmönster / J2EE / Praktiska tips Webbservert. 21 MySQL i Java Typ IV – 100% Java

Designmönster / J2EE / Praktiska tips Webbservert. 22 MS SQL Server i ASP via ADO

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

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

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

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