Zusammenfassung Stichpunkte PDF

Title Zusammenfassung Stichpunkte
Author Maic Siemering
Course Web-Programmierung
Institution FernUniversität in Hagen
Pages 32
File Size 907.1 KB
File Type PDF
Total Downloads 234
Total Views 397

Summary

Oktober 2016 WEB PROGRAMMIERUNG 1 Web Applikation: Software auf einer entfernten Hardware (Server) die lokal nicht installiert wird, um auf sie zuzugreifen Servlet oder Web Seite, die mit JSP oder JSF entwickelt wurde. 2. BASISTECHNOLOGIEN Definition World Wide Web Anwendung: Kommunikation HTTP, Cli...


Description

 Oktober 2016

WEB PROGRAMMIERUNG 1.MOTIVATION 

Web Applikation: Software auf einer entfernten Hardware (Server) die lokal nicht installiert wird, um auf sie zuzugreifen



Web-Komponente: Servlet oder Web Seite, die mit JSP oder JSF entwickelt wurde.

2. BASISTECHNOLOGIEN 

Definition World Wide Web Anwendung:



Client-Server-Anwendung Kommunikation über HTTP, Client ist ein Browser

Spezifika:      

Gestaltungsmöglichkeiten Fenster Zulässige Programmabläufe Kommunikationsaufwand Portabilität Verfügbarkeit

// 2.1.1 Thin vs Rich Client 2.1.2 Code on Demand  Laden von Code vom Server: JavaScript oder Applets 2.1.3 Web-Server 

Software die eine HTTP Schnittstelle anbietet.

2.2 URI and URL  URI: “scheme : scheme-specific-part”  

URL – Uniform Resource Locator URN – Uniform Resource Name

2.3 Protokolle IP, TCP, UDP und HTTP  Schichten:   

Anwendungs -> HTTP Transport -> TCP UDP Vermittlung -> IP

// 2.3.1 TCP und UDP 

2.3.2 HTTP

// Request und Response Schema // 2.3.3 HTTPS 2.4 HTML und XML  Wird bestimmt durch den Content-Type.  2.4.1 HTML  Tags: 

Kommentar:



Absolute und relative Links (/ vs ./ oder ‚’)



Verweisende Tags: a, img



Schlüsselzeichen müssen als „Entity“ geschrieben werden (< -> <)



Formularelemente müssen innerhalb einem form-Tag liegen (input, textarea, select, option)

 // Hint: POST versetzt nur die Queryparameter eines GET in den Body  2.4.2 XHTML  HTML im strikten XML Format. -> Ähnlich, jedoch anderer Dokumentenkopf 2.4.3 XML – Extensible Markup Language  Baumartiger Aufbau 

Oberstes Element -> Wurzel Knoten



Case sensitive



Strikt: Tags müssen geschlossen werden, Attribute müssen Werte zugewiesen bekommen



DTD – Dokument Type Definition: Notation über die erlaubten Elemente im xml Dokument



Über wird zu Beginn der Typ der xml und die DTD angegeben (nach dem Versions und Encoding Hinweis)

2.5 statisch, dynamisch und generierte Inhalte  DHTML -> Dynamisches HTML (HTML mit JavaScript) 

2

CGI – Common Gateway Interface -> Request werden an Programme/Scripte geleitet und das Ergebnis als Response genutzt

2.6 Session  Session-ID als erkennungsmerkmal um Zustand zuzuordnen. 

Speicherorte:

1. URL-Rewriting  Session-ID kann von Client oder Server eingesetzt werden als Query Parameter 2. versteckte Formularfelder  Nur bei form Feldern möglich 3. Cookies  Cookies sind clientseitig unterstützder Speicher, der bei jedem Request vom Browser als Header mitgegeben wird.  Ggf. werden Cookies vom Browser nicht akzeptiert

3. SPRACHEN  3.1 CSS 3.2 PHP 

Datentypen



Funktionen



Klassen

3.3 JavaScript  Grundstein 1995  Clientseitig ausgeführter Code  Speziele Objekte zur interaktion mit HTML: o screen – stellt Informationen über Bildschirm bereit o window – repräsentiert fenster in einem Browser o document – HTML Dokument o document.findElementById() -> HTML Element (.innerHTML: Inhalt des Elements)  Ereignisse: o Mauso Tastaturo Objekto Formular-

4. TECHNOLOGIEN 4.1 ASP.NET und Java EE 

3

ASP.NET – Framework, keine Programmiersprache o ASP.NET Web Forms – Steuerelemente und Ereignisse o ASP.NET MVC – Folgt dem MVC Patter





o ASP.NET Web Pages – HTML + Code Java EE – Spezifikation für ein Web System o Schichten:  Client  Web  Business/Service  Persistence o Beispiel Spezifikationen:  Enterprise Java Beans  JSP  Java EE Application Deployment  Java Servlets o Enthaltene Features:  Transaktionen  Kommunikation zwischen Komponenten Unterschiede: o Java EE herstellerunabhängig o .Net sprachunabhängig

4.2 Ajax – Async JavaScript and XML  Updaten von Teilen einer HTML Seite  XMLHttpRequest-Objekt kann via JS zugegriffen werden o Usage: new (), .open(method, url, async), .send() 4.3 jQuery – JS Bibliothek  Zentrale Aufrufform ist $(‘selector’)  Für Lifecycle management stellt jQuery einige Funktionen zur verfügung wie z.B. $(document).ready(function() {})  

Unterstützung von Ereignissen Mächtige CSS Selektoren (Seite 66 Tabelle 4.2)

5. MEDIEN 5.1 Bildformate   

Pixel vs Vektor Farbtiefe: 24bit -> RGB -> 8 bit pro Farbe = 256 Abstufungen Nachteil Vektor: Keine Bildbearbeitung durch Filter möglich

5.2 Video  Videoformat: Spezifikationen wie Auflösung, Bildfrequenz, Farbtiefe, Tonspur  Videocodec: digitale Kodierung/Dekodierung

6. WEBBROWSER 6.1 Verbreitung moderner Webbrauser  Führende Browser: 4

o o o o o o

Chrome (Größter Marktanteil 2015) Firefox Safari IE Opera Edge (neu)

6.2 Grundlegende Funktionsweise  Hauptkomponenten (Grafik Seite 79): o Benutzerschnittstelle o Browser-Modul o Rendering o Netzwerk o UI-Backend o JS Interpreter o XML Parser o Datenspeicher 

7 EINSTIEG JAVA EE 7.1 Java EE im Überblick  Spezifikation = Gesamtheit an Vorgaben, nach denen etwas produziert wird  3 Schichten Architektur: Client, Java EE, Datenbank-Server  4 Container: o Web Container (Java Servlet, JSF, JSP) o EJB Container (Services/Beans) o Applet Container o Application Client (Java GUI-Anwendung)

 5



Java Persistence API – Persistierung von Daten durch ORM

7.2 Verzeichnisstruktur der Java EE-Webschicht  Web Applikationen werden als WAR gepackt o /WEB-INF – Kein Zugriff von außen, Server relevantes o /WEB-INF/classes – Java Klassen o /WEB-INF/lib/*.jar – Java Bibliotheken o /WEB-INF/web.xml – Konfiguration o /META-INF – Metainformationen über das Archiv o /* - Statische Dateinen 7.3 Konfiguration der Web-Anwendung  

Konfiguration: Menge von Parametern, Eigenschaften und Regeln, die eine Anwendung beschreibt Seit Java 5 auch mit Annotationen

7.3.1 Der Deployment Descriptor web.xml 

Bereiche (Code Beispiel Seite 89): o

ServletContext-Initialisierungsparameter

o

Session-Konfig

o

Servlet-Deklaration

o

Servlet-Mappings

o

Filter-Definitionen

o

Filter-MAppings

o

Welcome File List

o

Fehlerseiten

7.3.2 Konfiguration durch Annotationen 

Annotationen besitzen selbst keinen Effekt, dienen jedoch als Marker



@WebServlet – Definiert eine Klasse als Servlet



Servlet erweitert HttpServlet

8. SERVLETS 

Servlet = Java Klasse, welche Requests bearbeitet.

8.1. Request Ablauf 1. Aufnahme des Request und konvertierung in HttpServletRequest 2. Erzeugen eines leeren HttpServletResponse (beinhaltet PrintWriter) 3. servlet.service(...) – Eine Art Dispatch -> leitet an passende Methode weiter 4. doXXX(...) ->

6





8.2. Aufgabe, Lebenszyklus, Thread-Sicherheit  Servlet Aufgaben: o vom Client gesendete Daten lesen o vom Client gesendeten HTTP Request Header lesen o Ergebnisse erzeugen o HTTP Response Header setzen o Antwort seite erstellen  Lebenszyklus eines Servlet: o Initialisierung o Request-Bearbeitung o Zerstörung  Servlet ist Application Scope -> muss threadsicher sein  Servlet sollte stateless sein (kein locking!!!) 8.3. Scopes  Datenaustausch: o Servlet Chains o Domain Sevlets  Datenaustausch über einen temporären Speicher (Scope) o Scope().setAttribute(name, obj), .getAttribute(name), ...  Scopes: o Request Scope definiert durch HttpServletRequest o Session Scope definiert durch HttpSession.SessionObject 7

o o

Application Scope definiert durch .getServletContext Page Scope – nur in JSP

8.3.1. Java Beans  Speicher von Daten meist in JavaBeans  Anforderungen an eine Java Bean: o public constructor o no public attributes o getter and setter for private attributes  Attribute + Getter|Setter = Property  Getter/Setter = Accessor Methods  Getter kann für Boolean auch isName heißen 8.4. Servlet API



8



HttpServlet. o service(ServletRequest req, ServletResponse res) o doXXX(HttpServletRequest req, HttpServletResponse resp) o init()/ destroy()



HttpServletRequest. o getParameterMap() o … o getHeaderNames() o getHeader(String name) o … o getRequestURI() -> String (z.B. “index.html”)

o o o

getRequestURL() -> StringBuffer (z.B. http://…/index.html) getSession() -> SessionObject getRequestDispatcher(String path) -> RequestDispatcher  zur Suche nach anderem Servlet



HttpResponse. o setContentType(String type) o getWriter() -> PrintWriter o encodeURL(String url) -> String  encoded URL und hängt Session-ID an, wenn keine Cookies benutzt werden o addCookie(Cookie c)



HttpSession. o invalidate() o getSevletContext() -> ServletContext o getRequestDispatcher(String path) -> RequestDispatcher RequestDispatcher. o forward(ServletRequest, ServletResponse)  kein write auf den Request vorher o include(ServletRequest, ServletResponse)  write auf request vorher möglich



8.5. Beispiel Systemanmeldung mit Servlets(Seite 109 ff)  ShowSignInServlet o Zeigt Anmeldeformular  CheckSignInServlet o Prüft Credentials

9. JAVASERVER PAGES 



9

Eigenschaften: o unterstützt Entwurf dynamischer Web-Seiten o einbettung von Java in statischem HTML o JSP spezifische Tags unterstützen trennung von Logik und Anzeige JSP wird zur Laufzeit in Servlet übersetzt

9.1. Request

 

9.2. Template-Text, JSP-Kommentare und JSP-Direktiven  Template-Text: o statischer HTML Code, der nicht verändert wird  JSP-Kommentar o  JSP-Direktive o o page  import 10

o o

 errorPage  isErrorPage  contentType include  file taglib  prefix  uri

9.3 Scripting-Elemente  dynamisch erzeugte Inhalte, Berechnungen, DB Zugriffe, etc.  implizite Objekte o pageContext -> PageContext o request -> HTTPServletRequest o response -> HTTPServletResponse o session -> HTTP Session o application -> ServletContext o out -> JSPWriter  JSP-Deklarationen o Deklaration von Variablen und Methoden (achten auf Threadsicherheit) -> Werden zu Variablen und Methoden des erstellten Servlets o  JSP-Ausdruck o o Darf nur einen Ausdruck beinhalten, der in einen String umgewandelt werden kann  JSP-Scriptlet o o Ausgaben über out.printLn() 9.4 JSP-Aktionen  Form: o Wie HTML Tags, ggf auch mit 

Beispiele: o o o  id dient als name der bean o  name referenziert die aufzurufende Bean o

9.5 EL - Expression Language

11



$audruck oder ${ausdruck}



#audruck oder #{ausdruck} -> lazy ausgewerteter ausdruck









Zugriff auf Objekte o

Page Scope > Request Scope > Session Scope > Application Scope

o

Falls ein Wert in einem Ausdruck nicht vorhanden ist, wird keine Exception geworfen sondern null zurückgegeben

Relationen, logische und arithmetische Operationen o

Anstelle der Zeichen Operationen (==, !, &&) können textuelle Terme benutzt werden (eq, not, and)

o

Impliziete Typ Umwandlungen werden vorgenommen

Implizite Objekte o

pageContext -> PageContext

o

pageScope -> Map

o

requestScope -> Map

o

sessionScope -> Map

o

applicationScope -> Map

o

initParam -> Map

o

param -> Map

o

paramValues -> Map

o

header -> Map

o

headerValues -> Map

o

cookie -> Map

o

// $empty value -> prüft ob variable empty ist

Funktionen o

eigene Funktionen können hinzugefügt werden

9.6 JSTL – Java Server Pages Standard Tag Library 



Bibliotheken o core – Erstellung URLs, einfache Schleifen, bedingte Anweisungen, Ausnahmebehandlungen  url value=““ - rewriting/encoding  if test=““ – If...  choosen, when, otherwise – If-Else, Switch Ersatz  forEach items=”” var=””  forEach begin=”” end=”” var=”” o xml – Bearbeitung von xml o fmt - Internationalisierung o sql – Einbindung relationaler Datenbanken o functions – Funktionen für die EL  eingebundene Funktionen warden über Namensräume abgegrenzt Bibliotheken müssen via taglib-Direktive geladen warden o Format: 

9.7 Beispiel Systemanmeldung mit Servlet und JSP (Seite 136 ff) 12

10. SERVLETS UND JAVASERVER PAGES TECHNOLOGIE AUS SOFTWARE ENGINEERING SICHT 



Grundregeln o Trennung von Verantwortlichkeiten  Module ohne Überlappung o Kohäsionskriterium  Verantwortung für nur eine fachliche/logische Aufgabe MVC Pattern o Controller -> Servlet o View -> JSP Seiten o Model -> EJB + Entities o Flow:  Servlet nimmt Request an  & Fragt EJBs nach Daten  & legt diese in einen Scope  & Leitet auf JSP um  JSP zeigt Template + Daten aus dem Scope

10.1. Servlet  Nur delegierende Funktion o -> EJB o -> Scope o -> JSP 10.2 JSP-Seite  Visualisierung von Daten aus dem Scope  Keine Aufrufe der Anwendungslogik/ EJBs 10.3 Anwendungskern  Reine Serviceschicht 10.4 Vorteile der Strikten Umsetzung des MVC-Patterns  Komplexitätsbeherrschung  Aufteilung der Komponenten auf Spezialisten

11. ÜBERSICHT ÜBER ARCHITEKTURMUSTER UND ARCHITEKTUR 

13

Softwarearchitektur o zentrale Realisierungsentscheidungen o grundsätzliches Strukturierungsschema o definiert große strukturbildenden Bestandteile (Komponenten) und deren Zusammenspiel  ggf. Aufsplittung in Teilkomponenten  Komponenten bündeln Klassen und Schnittstellen bezüglich einer Aufgabe/Domain  Komponenten sollten disjunkt sein o Beipiel 3 Schichten Architektur

Idee: 3 übereinander liegende Schichten, jede Schicht darf nur darunterliegende Schichten benutzen Nichtfunktionale Aspekte (Usersicht):  Performanz  Sicherheit  Verfügbarkeit  Integrierbarkeit  Robustheit Nichtfunktionale Anforderungen (technisch):  Testbarkeit  Integrierbarkeit  Wartbarkeit  Änderbarkeit  Portierbarkeit  Skalierbarkeit  Wiederverwendbarkeit Architektur ist häufig ein Kompromiss Kriterien für eine gute Architektur:  adäquate Basis zur Realisierung der Anforderungen (f und nf)  unabhängig von den Spezifika (allgemein wie möglich, speziell wie nötig)  Komponenten besitzen eine hohe Kohäsion + Seperation of Concerns  Komponenten kaum gekoppelt (ggf. lose) -> Übersichtlichkeit 

o

o

o o

12. SOFTWAREARCHITEKTURMUSTER 12.1 Client-Server 

2 Komponenten: Client + Server



Server bietet Dienste



Client nutzt diese

12.2 Schichten 

strikt (nur die unterhalb liegende Schicht)



allegmein (alle unterhal liegenden Schichten) o

Weniger Delegierungen

 12.3 Model View Controller 

Model: Anwendungskern?



View: UI liest vom Model



Controller: Annahme von Userereignissen

13. SOFTWAREARCHITEKTUR 14

13.1 5-Schichten-Architektur 

Browser + 4 Softwareschichten



Schichten: o

Web-Schicht

o

Anwendungslogik

o

Anwendungsobjekte/Entitäten Schicht

o

Datenhaltung

13.2 Model-1-Architektur  Kommt aus der Client-Server-Architektur  Client = Webschicht (komplett JSP)  Server = Model 13.3 Model-2-Architektur (Beispiel Seite 159 ff)  Controler (Servlet) + Model + View (JSP)





14. EINSTIEG IN JSF  

Strikte Trennung zwischen Java und HTML Ab JSF 2.0 ersetzen Facelets JSP zur View Definition

14 .1 Zentrale Bestandteile von JS 

15

FacesServlet o

ist eine Art zentraler Controller

o

Request -> FacesContext

o

Pro Request eine Instanz Lifecycle



Facelets (siehe Kapitel 16)



Komponente



o

ist ein wiederverwendbares Element in einer JSF Seite

o

öffnendes + schließendes Tag

o

definiert durch Tag Bibliothek

Expression Language o









Managed Bean o

ist eine JavaBean

o

dient als Schnittstelle zwischen Präsentationsicht und Anwendungslogik

Validierung o

JSF besitzt Standard-Validatoren

o

Nutzung durch Tag

Konvertierung o

JSF besitzt Standard Validatoren

o

Nutzung durch Tag

Ereignis o



Verbindung mit Serverseitigen Objekten via Managed Beans

Events -> EventListener

Navigation o

Via Tags

15. DER JSF-LEBENSZYKLUS







 16

Schritt 1- Ansicht wiederherstellen o Wiederherstellung der JSF Seite o Elemente und Komponentenbaum werden in einem Komponentenbaum organisiert Schritt 2 – Request-Parameter anwenden o Requestparameter werden rekursiv durch den Komponentenbaum durchgereicht und ggf. zugeordnet (Text in einem Textfeld, etc.) Schritt 3 – Validierung durchführen o Werte werden konvertiert und validiert o Bei einem Fehler weiter mit Schritt 6 und einer Fehlermeldung Schritt 4 – Model aktualisieren

o 



Werte werden in gebundene Managed Beans übertragen (Bindung durch value Parameter)

Schritt 5 – Anwendung ausführen o Ausführung der Anwendungslogik, die entsprechenden Methoden werden durch Events getriggert o Festlegung welche Seite folgt Schritt 6 – Antwort rendern o Aufbau des Komponentenbaumes der neuen Seite o Rendern des Antwortdokuments o Serialisierung des Komponentenbaumes

16. FACELETS ALS SEITENDEKLARATIONSSPRACHE  

JSF Seite ist ein xhtml Dokument Trennung von Tags durch Namensräume

16.1 Die HTML-Tag Library 

Komponenten Gruppen: (-Komponenten) o Eingabeo Ausgabeo Befehlso Auswahlo Formularo Bildausgabeo Panelo Nachrichten-



Tagliste siehe S. 173

16.2 Die Core-Tag Library  Beispiel Code S. 174 ff (Länderliste) 16.3 Validatoren 

Es stehen einige Tags zur Validierung zur Verfügung o validateRequired o validateLength o validateLongRange o ...



Bei einer fehlschlagenden Überprüfung, werden Fehlermeldungen auf sogenannten message-Elementen ausgegeben, die den Feldern zugeordnet sind



Sollte die Web App im Entwicklungsmodus sein, werden die Nachrichten direkt angezeigt, im Produktionsmodus nur wenn erwünscht.

17. MANAGED BEANS  17

Managed Bean ist eine Java Klasse, die mit @Named Annotiert ist

17.1 Implementierung einer Managed Bean  @Named + @SessionScoped -> Session Bean 1...


Similar Free PDFs