News Projektteam Java News & Music Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie1 Java News & Music Projektteam News Fabian Taubitz , Rafael Mann , Wolfgang Höft
Gliederung 1.) Einleitung 2.) Grundlagen JSP Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie2 Gliederung 1.) Einleitung 2.) Grundlagen JSP 3.) Erste Schritte und Anfangsentwürfe 4.) UML, Quellcode 5.) Emotion Icons 6.) Einbau der Software in das fertige Layout 7.) Möglich Varianten und Ausbaustufen der Software 8.) Probleme und Lösungen 9.) evtl. lokal live Präsentation
Aufgabenstellung Projektgruppe News 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
Erweiterung der Aufgabenstellung 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
Java Server Pages Grundlagen Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie5 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
JSP (Java Server Pages) Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie6 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
Abarbeitung von JSP Browser Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie7 Abarbeitung von JSP Der aktuelle Tomcat 5.x Server implement the Servlet 2.4 and JSP 2.0 specifications. Browser Response xxx.JSP Request (xxx.JSP) Webserver HTML Ergebnis der xxx.JSP Speicher Weiterleitung Response xxx.JSP Tomcat Server Request xxx.JSP Verarbeitung
Ein Programm wächst und wächst und… Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie8 Erste Schritte Ein Programm wächst und wächst und…
Erste Schritte Erstellen eines Pflichtenhefts Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie9 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
Erste Schritte Administratoransprüche Clientansprüche Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie10 Erste Schritte Administratoransprüche Clientansprüche Sicherheitsaspekte
Erste Schritte Gästebuch Prinzip Eingabe: News-Center.html news.ser Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie11 Erste Schritte Gästebuch Prinzip Eingabe: News-Center.html news.ser Ausgabe: News.jsp
Besitzt keine Methode „insertText 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
Erste Schritte Die Fortsetzung: „2 JTextPane-Version: Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie13 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
Erste Schritte Das Ende: Java News- Version 1.5 Endversion 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
UML (Unified Modeling Language) Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie15 UML (Unified Modeling Language) Standardisierte Notation der OMG (Object Managment Group) Semantic zur Visualisierung, Konstruktion und Dokumentation von Modellen für die objektorientierte Softwareentwicklung
UML Klassenname Parameter Methode Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie16 UML Klassenname Parameter Methode
UML Globale Variablen Layout Verwaltung Methoden Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie17 UML Globale Variablen Layout Verwaltung Methoden
Fabian Taubitz , Rafael Mann , Wolfgang Höft. Projekt News. Datum:27 Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie18 Umsetzung in Java Code
Fabian Taubitz , Rafael Mann , Wolfgang Höft. Projekt News. Datum:27 Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie19 Pakete
Variablendeklaration Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie20 Variablendeklaration
Variablendeklaration (2) Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie21 Variablendeklaration (2)
Fabian Taubitz , Rafael Mann , Wolfgang Höft. Projekt News. Datum:27 Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie22 Button „Absatz“
Fabian Taubitz , Rafael Mann , Wolfgang Höft. Projekt News. Datum:27 Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie23 Klasse „Absatz“
Fabian Taubitz , Rafael Mann , Wolfgang Höft. Projekt News. Datum:27 Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie24 Klasse „Reset“
Fabian Taubitz , Rafael Mann , Wolfgang Höft. Projekt News. Datum:27 Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie25 Klasse „Fett“
Klasse „Abspeicherung“ Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie26 Klasse „Abspeicherung“
Klasse „Abspeicherung“(2) Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie27 Klasse „Abspeicherung“(2)
Klasse „Abspeicherung“(3) Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie28 Klasse „Abspeicherung“(3)
Klasse „Abspeicherung“(4) Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie29 Klasse „Abspeicherung“(4)
Klasse „Abspeicherung“(5) Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie30 Klasse „Abspeicherung“(5) Beispiel: Ein- und Ausgabe
Klasse „Abspeicherung“(6) Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie31 Klasse „Abspeicherung“(6)
Klasse „Abspeicherung“(7) Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie32 Klasse „Abspeicherung“(7) Beispiel: Dateiinhalt news.html
Klasse „Abspeicherung“(8) Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie33 Klasse „Abspeicherung“(8) Beispiel: Dateiinhalt news.txt
Fabian Taubitz , Rafael Mann , Wolfgang Höft. Projekt News. Datum:27 Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie34 TextPane
TextField Übernächste Folie Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie35 TextField Übernächste Folie
Fabian Taubitz , Rafael Mann , Wolfgang Höft. Projekt News. Datum:27 Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie36 SplitPane
Fabian Taubitz , Rafael Mann , Wolfgang Höft. Projekt News. Datum:27 Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie37 EnterListener
Smilie-Button-Fertigung Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie38 Smilie-Button-Fertigung
Smilie-Button-Fertigung 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)
Smilie-Button-Fertigung Methode SButtonFactory: Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie40 Smilie-Button-Fertigung Methode SButtonFactory:
Smilie-Button-Fertigung 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.
Smilie-Button-Fertigung Klasse SmilieListener: Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie42 Smilie-Button-Fertigung Klasse SmilieListener: Das Icon wird zum Vektor hinzugefügt um später wieder ausgelesen werden zu können.
Smilie-Button-Fertigung Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie43 Smilie-Button-Fertigung - Ende der öden Smilie-Button-Code Erklärung - Vorstellung der einfügbaren Smilies
Emotion Icons „Sleepy“ Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie44 Emotion Icons „Sleepy“
Fabian Taubitz , Rafael Mann , Wolfgang Höft. Projekt News. Datum:27 Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie45 Emotion Icons „Angry“
Emotion Icons „Shocked“ Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie46 Emotion Icons „Shocked“
Emotion Icons „Evil & Toungy“ Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie47 Emotion Icons „Evil & Toungy“
Fabian Taubitz , Rafael Mann , Wolfgang Höft. Projekt News. Datum:27 Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie48 Emotion Icons „Mixed“
Fabian Taubitz , Rafael Mann , Wolfgang Höft. Projekt News. Datum:27 Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie49 Emotion Icons „Happy“
Fabian Taubitz , Rafael Mann , Wolfgang Höft. Projekt News. Datum:27 Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie50 ShowHtml
SetTime Am häufigsten verwendeter Kalender der Welt 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.
SetTime „Datums-End-Html-Tag“ 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.
Auszug aus der „SetTime“-Klasse: Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie53 TimeTags Auszug aus der „SetTime“-Klasse:
Durch TimeTags möglich: Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie54 TimeTags Durch TimeTags möglich: Html-Tags
Ohne „unwichtige“ Html-Tags Mit „unwichtigen“ Html-Tags Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie55 TimeTags Ohne „unwichtige“ Html-Tags Mit „unwichtigen“ Html-Tags
Initialisierung {Leer} ??? Wie kann das sein ??? Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie56 Initialisierung {Leer} ??? Wie kann das sein ???
Login und Benutzerauswahl Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie57 Login und Benutzerauswahl Index.html Login.jsp client admin News.html News15A.html Applet Anzeige der News mit eigenständiger Aktualisierung J Application (JFrame)
Login (index.html) Index.html method=„get“ ► sichtbar in URL 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. Projekt News. Datum:27 Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie59 Login login.jsp
Fabian Taubitz , Rafael Mann , Wolfgang Höft. Projekt News. Datum:27 Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie60 Layout
Fabian Taubitz , Rafael Mann , Wolfgang Höft. Projekt News. Datum:27 Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie61 Übergabe an das Layout
Probleme & Lösungen Applets & Sicherheit Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie62 Probleme & Lösungen Applets & Sicherheit ??? Was darf eigentlich ein Applet ??? ??? Ist ein Applet für unsere Zwecke geeignet ???
Applets & Sicherheit X Operation Auf lokale Dateien zugreifen Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie63 Applets & Sicherheit Operation Java-Programm Applet im Appletviewer Lokales Applet im Browser Fremdes Applet im Browser Auf lokale Dateien zugreifen X Lokale Dateien löschen Anderes Programm starten Benutzernamen ermitteln Zum Sender des Applets verbinden Zu anderen Rechner verbinden Javabibliothek laden Exit aufrufen Popup-Fenster erzeugen
Probleme & Lösungen !!! Ja !!! Applets & Sicherheit Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie64 Probleme & Lösungen Applets & Sicherheit ??? Ist ein Applet für unsere Zwecke geeignet ??? 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 !!! Ja !!! Client/Server-Verbindung zum Server von dem das Applet aufgerufen wurde
Quellenangaben Go To Java 2, Guido Krüger Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie65 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
für Ihre Aufmerksamkeit Fabian Taubitz , Rafael Mann , Wolfgang Höft Projekt News Datum:27.06.2003 Folie66 Danke für Ihre Aufmerksamkeit