Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
Java News & Music
Projektteam
News
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Folie1
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
Folie2
Gliederung
1.)
2.)
3.)
4.)
5.)
6.)
7.)
8.)
9.)
Einleitung
Grundlagen JSP
Erste Schritte und Anfangsentwürfe
UML, Quellcode
Emotion Icons
Einbau der Software in das fertige Layout
Möglich Varianten und Ausbaustufen der Software
Probleme und Lösungen
evtl. lokal live Präsentation
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
Folie3
Aufgabenstellung
Projektgruppe News
Anzeige von News mit Zeitstempel auf dem Client
Ablage der News als Textdatei in einem
bestimmten Verzeichnis auf dem Server
Auf Basis von Java Server Pages, Servlets,
Java-Applets
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
Folie4
Erweiterung der
Aufgabenstellung
Vorschaufenster zur Kontrolle
Clientseite soll sich eigenständig aktualisieren
Motivierende Features (smilies) einfach einzufügen
Der Adminmodus soll in einem eingenständigem Popup laufen
Der Zeitstempel soll einfach über eine Taste einfügbar sein
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
Java Server Pages Grundlagen
JSPs wurden von Sun Microsystems™ spezifiziert
(JSP 1.1 Released 1999)
JSPs enthalten HTML, JavaScript + Java Code für die
Visualisierung von dynamischen Web-Inhalten
JSPs werden serverseitig ausgeführt
JSPs werden beim ersten Aufruf in ein Servlet umgewandelt und
kompiliert. Das Servlet wird von der Servlet Engine ausgeführt.
JSPs sind plattformunabhängig und im Rahmen der Java APIs
erweiterbar
Folie5
Projekt News
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Datum:27.06.2003
JSP (Java Server Pages)
Eine Java Server Page
ist eine HTML Datei
in der zusätzlich Javacode steht
Beispiel :
<HTML><BODY>
Hallo Nutzer. Wir haben heute
<% out.print( new java.util.Date() ); %>
</BODY></HTML>
Eine JSP braucht einen Tomcat Server
um den Java Code compilieren zu können
Folie6
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
Abarbeitung von JSP
Der aktuelle Tomcat 5.x Server implement the Servlet 2.4 and JSP 2.0 specifications.
Browser
Request (xxx.JSP)
Webserver
HTML
Weiterleitung
Ergebnis
der xxx.JSP
Speicher
Tomcat
Server
Verarbeitung
Folie7
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
Folie8
Erste Schritte
Ein Programm wächst und
wächst und…
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
Erste Schritte
Erstellen eines Pflichtenhefts
Was muss das fertige Programm alles können?
Einfache Bedienung durch den Administrator
Eine HTML-Datei zur Anzeige in einem Web-Browser
Muss das Erstelldatum beinhalten
Mit Emotion Icons erweiterbar
Automatische Aktualisierung der HTML Seite
Folie9
Projekt News
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Erste Schritte
Administratoransprüche
Clientansprüche
Sicherheitsaspekte
Datum:27.06.2003
Folie10
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
Erste Schritte
Gästebuch Prinzip
Eingabe:
News-Center.html
Ausgabe:
News.jsp
Folie11
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
Folie12
Erste Schritte
Der Anfang:
„1 JTextPane-Version“:
•Besitzt keine Methode „insertText
•Nur Methode „setText“
•Aufruf von „setText“ löscht
vorherigen Inhalt der JTextPane
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
Erste Schritte
Die Fortsetzung:
„2 JTextPane-Version:
•Text wird nicht über Insert-Text
Button eingefügt
•Entertaste fügt Text ein
•Problem: Zeilenumbruch
wurde automatisch
eingefügt
•Gespeichertes wurde
nicht wieder richtig
angezeigt
Folie13
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
Folie14
Erste Schritte
Das Ende:
Java News- Version 1.5
•Für Texteingabe keine TextPane
sondern JTextField
•Problem Zeilenumbruch umgangen,
da JTextField nur einzeilig
Endversion
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
UML
(Unified Modeling Language)
•Standardisierte Notation der OMG (Object Managment Group)
•Semantic zur Visualisierung, Konstruktion und Dokumentation
von Modellen für die objektorientierte Softwareentwicklung
Folie15
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
UML
Parameter
Methode
Datum:27.06.2003
Klassenname
Folie16
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
UML
Globale Variablen
Layout Verwaltung
Methoden
Folie17
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
Umsetzung in Java Code
Folie18
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Pakete
Datum:27.06.2003
Folie19
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
Variablendeklaration
Folie20
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
Variablendeklaration
(2)
Folie21
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
Button „Absatz“
Folie22
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
Klasse „Absatz“
Folie23
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Klasse „Reset“
Datum:27.06.2003
Folie24
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Klasse „Fett“
Datum:27.06.2003
Folie25
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
Klasse „Abspeicherung“
Folie26
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
Klasse „Abspeicherung“
Folie27
(2)
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
Klasse „Abspeicherung“
Folie28
(3)
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
Klasse „Abspeicherung“
Folie29
(4)
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
Klasse „Abspeicherung“
Beispiel: Ein- und Ausgabe
Folie30
(5)
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
Klasse „Abspeicherung“
Folie31
(6)
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
Klasse „Abspeicherung“
Beispiel: Dateiinhalt news.html
Folie32
(7)
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
Klasse „Abspeicherung“
Beispiel: Dateiinhalt news.txt
Folie33
(8)
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
TextPane
Datum:27.06.2003
Folie34
Projekt News
Fabian Taubitz , Rafael Mann , Wolfgang Höft
TextField
Übernächste Folie
Datum:27.06.2003
Folie35
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
SplitPane
Datum:27.06.2003
Folie36
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
EnterListener
Folie37
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
Smilie-Button-Fertigung
Folie38
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
Folie39
Smilie-Button-Fertigung
Im Konstruktor:
Methode: SButtonFactory (Buttonkategorie, gridx, gridy, Anzahl der SButton im JDialog-Fenster)
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
Smilie-Button-Fertigung
Methode SButtonFactory:
Folie40
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
Folie41
Smilie-Button-Fertigung
Methode JDialogMaker:
- Erzeugt die Dialog-Fenster.
- Erstellt die gewünschte
Anzahl Smilie-Buttons in
den jeweiligen Fenstern.
- Ruft die Klasse
SmilieListener auf.
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
Smilie-Button-Fertigung
Klasse SmilieListener:
Das Icon wird zum Vektor hinzugefügt um
später wieder ausgelesen werden zu können.
Folie42
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
Smilie-Button-Fertigung
- Ende der öden Smilie-Button-Code Erklärung
- Vorstellung der einfügbaren Smilies
Folie43
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
Emotion Icons „Sleepy“
Folie44
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
Emotion Icons „Angry“
Folie45
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
Emotion Icons „Shocked“
Folie46
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
Emotion Icons „Evil & Toungy“
Folie47
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
Emotion Icons „Mixed“
Folie48
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
Emotion Icons „Happy“
Folie49
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
ShowHtml
Datum:27.06.2003
Folie50
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
Folie51
SetTime
Am häufigsten verwendeter Kalender der Welt
„Datums-Anfangs-Html-Tag“
Wert für den Wochentag wird ausgelesen,
mit Hilfe der anschliessenden if-Schleife
dem richtigen Tag zugewiesen und
zum Vektor addiert.
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
Folie52
SetTime
„Datums-End-Html-Tag“
Die Methode „TimeTags“ gibt einen Vektor mit
„Positions-Integer-Objekten“ aller sich im Vektor „vec“
befindlichen „Datums-Anfangs-“ und „Datums-End-Tags“
zurück, und schreibt diesen in den Vektor „timetag2“.
Diese if-Schleife sorgt anschliessend dafür,
das die „Datum-Html-Tags“ übergangen werden.
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
Folie53
TimeTags
Auszug aus der „SetTime“-Klasse:
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
TimeTags
Durch TimeTags möglich:
Html-Tags
Datum:27.06.2003
Folie54
Projekt News
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Datum:27.06.2003
TimeTags
Ohne „unwichtige“ Html-Tags
Mit „unwichtigen“ Html-Tags
Folie55
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Initialisierung
{Leer}
??? Wie kann das sein ???
Datum:27.06.2003
Folie56
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
Login und Benutzerauswahl
Index.html
Login.jsp
News.html
News15A.html
Applet
Anzeige der News
mit eigenständiger Aktualisierung
J Application (JFrame)
Folie57
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
Folie58
Login (index.html)
method=„get“
► sichtbar in URL
method=„post“ ► nicht sichtbar in URL
Index.html
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Login
login.jsp
Projekt News
Datum:27.06.2003
Folie59
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Layout
Datum:27.06.2003
Folie60
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
Übergabe an das Layout
Folie61
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
Probleme & Lösungen
Applets & Sicherheit
??? Was darf eigentlich ein Applet ???
??? Ist ein Applet für unsere Zwecke geeignet ???
Folie62
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
Folie63
Applets & Sicherheit
Operation
Auf lokale Dateien zugreifen
JavaProgramm
Applet im
Appletviewer
Lokales
Applet im
Browser
X
X
X
X
X
X
X
X
X
X
X
Zu anderen Rechner
verbinden
X
X
X
Javabibliothek laden
X
X
X
X
X
X
X
X
X
Lokale Dateien löschen
Anderes Programm starten
Benutzernamen ermitteln
Zum Sender des Applets
verbinden
Exit aufrufen
Popup-Fenster erzeugen
Fremdes
Applet im
Browser
X
X
Projekt News
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Datum:27.06.2003
Probleme & Lösungen
Applets & Sicherheit
??? Ist ein Applet für unsere Zwecke geeignet ???
Operation
Fremdes Applet
im Browser
!!! Ja !!!
Auf lokale Dateien zugreifen
Lokale Dateien löschen
Anderes Programm starten
Benutzernamen ermitteln
Zum Sender des Applets verbinden
X
Zu anderen Rechner verbinden
Javabibliothek laden
Exit aufrufen
Popup-Fenster erzeugen
X
Client/Server-Verbindung
zum Server von dem das
Applet aufgerufen wurde
Folie64
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
Quellenangaben
•Go To Java 2, Guido Krüger
•Vorlesung „Software Entwicklung“,2002,Gerd Zwillus
•Java ist auch eine Insel, Rainer Bloom
•Core Servlets und Server Pages
•Java Server Pages, Addison-Wesley
•Java API
•www.mysmilies.com
•www.sun.com
•www.Netbeans.org
Folie65
Fabian Taubitz , Rafael Mann , Wolfgang Höft
Projekt News
Datum:27.06.2003
Folie66
Danke
für
Ihre
Aufmerksamkeit

für PowerPoint