News Java News & Music Projektteam Fabian Taubitz, Rafael Mann, Wolfgang Höft Projekt...

Preview:

Citation preview

NewsNews

Java News & MusicJava News & Music

ProjektteamProjektteam

Fabian Taubitz , Rafael Mann , Wolfgang HöftFabian Taubitz , Rafael Mann , Wolfgang Höft

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie11

GliederungGliederung

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie22

1.)1.) EinleitungEinleitung2.)2.) Grundlagen JSPGrundlagen JSP3.)3.) Erste Schritte und AnfangsentwürfeErste Schritte und Anfangsentwürfe4.)4.) UML, QuellcodeUML, Quellcode5.)5.) Emotion IconsEmotion Icons6.)6.) Einbau der Software in das fertige LayoutEinbau der Software in das fertige Layout7.)7.) Möglich Varianten und Ausbaustufen der SoftwareMöglich Varianten und Ausbaustufen der Software8.)8.) Probleme und LösungenProbleme und Lösungen9.) 9.) evtl. lokal live Präsentationevtl. lokal live Präsentation

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie33

ProjektgruppeProjektgruppe NewsNews

Anzeige von News mit Zeitstempel auf dem ClientAnzeige von News mit Zeitstempel auf dem Client

Ablage der News als Textdatei in einem Ablage der News als Textdatei in einem bestimmten Verzeichnis auf dem Serverbestimmten Verzeichnis auf dem Server

Auf Basis von Java Server Pages, Servlets, Auf Basis von Java Server Pages, Servlets, Java-AppletsJava-Applets

AufgabenstellungAufgabenstellung

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie44

Erweiterung derErweiterung derAufgabenstellungAufgabenstellung

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 NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie55

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 sind plattformunabhängig und im Rahmen der Java APIs erweiterbar

JSPs werden beim ersten Aufruf in ein Servlet umgewandelt und kompiliert. Das Servlet wird von der Servlet Engine ausgeführt.

JSPs werden serverseitig ausgeführt

Java Server Pages GrundlagenJava Server Pages Grundlagen

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie66

EineEine Java Server Page Java Server Page

JSP (Java Server PagesJSP (Java Server Pages))

ist eine HTML Dateiist eine HTML Datei

in der zusätzlich Javacode stehtin der zusätzlich Javacode steht

<HTML><BODY>Hallo Nutzer. Wir haben heute<% out.print( new java.util.Date() ); %></BODY></HTML>

Beispiel :

Eine JSP braucht einen Tomcat Server Eine JSP braucht einen Tomcat Server um den Java Code um den Java Code compilierencompilieren zu können zu können

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie77

Abarbeitung von JSPAbarbeitung von JSP

WebserverWebserverHTMLHTML

TomcatTomcatServerServer

Request (xxx.JSP)

Weiterleitung

Der aktuelle Tomcat 5.x Server implement the Servlet 2.4 and JSP 2.0 specifications.

SpeicherSpeicher

Verarbeitung

Request

xxx.JSP

Response

xxx.JSP

Ergebnisder xxx.JSP

BrowserBrowserResponse xxx.JSP

Erste SchritteErste Schritte

Ein Programm wächst undEin Programm wächst undwächst und…wächst und…

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie88

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie99

Erste SchritteErste 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

Administratoransprüche

Clientansprüche

Sicherheitsaspekte

Erste SchritteErste Schritte

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie1010

Gästebuch Prinzip

Erste SchritteErste Schritte

Eingabe:

News-Center.html

news.ser

Ausgabe:

News.jsp

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie1111

Der Anfang:Erste SchritteErste Schritte

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie1212

„„1 JTextPane-Version“:1 JTextPane-Version“:

•Besitzt keine Methode „insertTextBesitzt keine Methode „insertText

•Nur Methode „setText“Nur Methode „setText“

•Aufruf von „setText“ löscht Aufruf von „setText“ löscht vorherigen Inhalt der JTextPanevorherigen Inhalt der JTextPane

Die Fortsetzung:Erste SchritteErste Schritte

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie1313

„„2 JTextPane-Version:2 JTextPane-Version:•Text wird nicht über Insert-TextText wird nicht über Insert-Text Button eingefügtButton eingefügt

•Entertaste fügt Text einEntertaste fügt Text ein

•Problem: ZeilenumbruchProblem: Zeilenumbruch wurde automatischwurde automatischeingefügteingefügt

•Gespeichertes wurdeGespeichertes wurde nicht wieder richtignicht wieder richtigangezeigtangezeigt

Erste SchritteErste Schritte

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie1414

•Für Texteingabe keine TextPaneFür Texteingabe keine TextPane sondern JTextFieldsondern JTextField

•Problem Zeilenumbruch umgangen,Problem Zeilenumbruch umgangen, da JTextField nur einzeiligda JTextField nur einzeilig

EndversionEndversion

Java News- Version 1.5Java News- Version 1.5

Das Ende:

UMLUML

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie1515

(Unified Modeling Language)(Unified Modeling Language)

•Standardisierte Notation der OMG (Object Managment Group)Standardisierte Notation der OMG (Object Managment Group)

•Semantic zur Visualisierung, Konstruktion und Dokumentation Semantic zur Visualisierung, Konstruktion und Dokumentation von Modellen für die objektorientierte Softwareentwicklungvon Modellen für die objektorientierte Softwareentwicklung

UMLUML

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie1616

KlassennameKlassenname

ParameterParameter MethodeMethode

UMLUML

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie1717

Globale VariablenGlobale Variablen

Layout VerwaltungLayout Verwaltung

MethodenMethoden

Umsetzung in Java CodeUmsetzung in Java Code

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie1818

PaketePakete

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie1919

VariablendeklarationVariablendeklaration

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie2020

VariablendeklarationVariablendeklaration (2) (2)

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie2121

Button „Absatz“Button „Absatz“

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie2222

Klasse „Absatz“Klasse „Absatz“

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie2323

Klasse „Reset“Klasse „Reset“

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie2424

Klasse „Fett“Klasse „Fett“

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie2525

Klasse „Abspeicherung“Klasse „Abspeicherung“

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie2626

Klasse „Abspeicherung“Klasse „Abspeicherung“(2)(2)

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie2727

Klasse „Abspeicherung“Klasse „Abspeicherung“(3)(3)

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie2828

Klasse „Abspeicherung“Klasse „Abspeicherung“(4)(4)

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie2929

Klasse „Abspeicherung“Klasse „Abspeicherung“(5)(5)

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie3030

Beispiel: Ein- und AusgabeBeispiel: Ein- und Ausgabe

Klasse „Abspeicherung“Klasse „Abspeicherung“(6)(6)

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie3131

Klasse „Abspeicherung“Klasse „Abspeicherung“(7)(7)

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie3232

Beispiel: Dateiinhalt news.htmlBeispiel: Dateiinhalt news.html

Klasse „Abspeicherung“Klasse „Abspeicherung“(8)(8)

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie3333

Beispiel: Dateiinhalt news.txtBeispiel: Dateiinhalt news.txt

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie3434

TextPaneTextPane

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie3535

TextFieldTextField

Übernächste FolieÜbernächste Folie

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie3636

SplitPaneSplitPane

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie3737

EnterListenerEnterListener

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie3838

Smilie-Button-FertigungSmilie-Button-Fertigung

Smilie-Button-FertigungSmilie-Button-Fertigung Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie3939

Im Konstruktor:

Methode: SButtonFactory (Buttonkategorie, gridx, gridy, Anzahl der SButton im JDialog-Fenster)

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie4040

Smilie-Button-FertigungSmilie-Button-FertigungMethode SButtonFactory:

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie4141

Smilie-Button-FertigungSmilie-Button-FertigungMethode 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 NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie4242

Smilie-Button-FertigungSmilie-Button-FertigungKlasse SmilieListener:

Das Icon wird zum Vektor hinzugefügt umspäter wieder ausgelesen werden zu können.

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie4343

Smilie-Button-FertigungSmilie-Button-Fertigung

- Ende der öden Smilie-Button-Code Erklärung

- Vorstellung der einfügbaren Smilies

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie4444

Emotion Icons „Sleepy“Emotion Icons „Sleepy“

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie4545

Emotion Icons „Angry“Emotion Icons „Angry“

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie4646

Emotion Icons „Shocked“Emotion Icons „Shocked“

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie4747

Emotion Icons „Evil & Toungy“Emotion Icons „Evil & Toungy“

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie4848

Emotion Icons „Mixed“Emotion Icons „Mixed“

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie4949

Emotion Icons „Happy“Emotion Icons „Happy“

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie5050

ShowHtmlShowHtml

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie5151

SetTimeSetTime

Am häufigsten verwendeter Kalender der Welt

Wert für den Wochentag wird ausgelesen,mit Hilfe der anschliessenden if-Schleife

dem richtigen Tag zugewiesen und zum Vektor addiert.

„Datums-Anfangs-Html-Tag“

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie5252

SetTimeSetTime

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.

„Datums-End-Html-Tag“

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie5353

TimeTagsTimeTags

Auszug aus der „SetTime“-Klasse:

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie5454

TimeTagsTimeTagsDurch TimeTags möglich:

Html-Tags

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie5555

TimeTagsTimeTagsOhne „unwichtige“ Html-Tags Mit „unwichtigen“ Html-Tags

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie5656

InitialisierungInitialisierung

??? Wie kann das sein ?????? Wie kann das sein ???

{Leer}{Leer}

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie5757

Login und BenutzerauswahlLogin und BenutzerauswahlIndex.html

Login.jsp

News.html News15A.html

client admin

Anzeige der News mit eigenständiger Aktualisierung

Applet

J Application (JFrame)

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie5858

Login (index.html)Login (index.html)

Index.htmlIndex.html

method=„get“

method=„post“

sichtbar in URL

nicht sichtbar in URL

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie5959

LoginLoginlogin.jsplogin.jsp

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie6060

LayoutLayout

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie6161

Übergabe an das LayoutÜbergabe an das Layout

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie6262

Applets & SicherheitApplets & Sicherheit

??? Was darf eigentlich ein Applet ?????? Was darf eigentlich ein Applet ???

Probleme & LösungenProbleme & Lösungen

??? Ist ein Applet für unsere Zwecke geeignet ?????? Ist ein Applet für unsere Zwecke geeignet ???

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie6363

Applets & SicherheitApplets & SicherheitOperation Java-

ProgrammApplet im Appletviewer

Lokales Applet im Browser

Fremdes Applet im Browser

Auf lokale Dateien zugreifen X XLokale Dateien löschen XAnderes Programm starten X XBenutzernamen ermitteln X X XZum Sender des Applets verbinden

X X X X

Zu anderen Rechner verbinden

X X X

Javabibliothek laden X X XExit aufrufen X X XPopup-Fenster erzeugen X X X X

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie6464

Operation Fremdes Applet im Browser

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

??? Ist ein Applet für unsere Zwecke geeignet ?????? Ist ein Applet für unsere Zwecke geeignet ???

Applets & SicherheitApplets & Sicherheit

Probleme & LösungenProbleme & Lösungen

!!! Ja !!!!!! Ja !!!

Client/Server-VerbindungClient/Server-Verbindungzum Server von dem das zum Server von dem das Applet aufgerufen wurdeApplet aufgerufen wurde

QuellenangabenQuellenangaben

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie6565

•Go To Java 2, Guido Krüger Go To Java 2, Guido Krüger •Vorlesung „Software Entwicklung“,2002,Gerd ZwillusVorlesung „Software Entwicklung“,2002,Gerd Zwillus•Java ist auch eine Insel, Rainer BloomJava ist auch eine Insel, Rainer Bloom•Core Servlets und Server PagesCore Servlets und Server Pages•Java Server Pages, Addison-WesleyJava Server Pages, Addison-Wesley

•Java APIJava API

•www.mysmilies.com•www.sun.com•www.Netbeans.org

AufmerksamkeitAufmerksamkeit

Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt NewsProjekt News Datum:27.06.2003Datum:27.06.2003 Folie Folie6666

fürfür

IhreIhre

DankeDanke