Eine Projektarbeit von: Thorsten Stücke, Carsten Kammann, Frank Wellhausen

Preview:

Citation preview

Eine Projektarbeit von: Thorsten Stücke,Carsten Kammann,Frank Wellhausen

- Aufgabenstellung- Zielsetzung: Was muss unser Programm enthalten- Die Bildergalerie

- Hauptbildansicht- Vorschaubilder- Steuerung- Kommentare

- Die Galerieverwaltung und Uploadfunktion- Galerien erstellen- Kommentare bearbeiten- Galerien entfernen

- Aspekt Sicherheit- nicht angemeldete Benutzer abweisen- angemeldete Benutzer auf Berechtigung prüfen- Abspann

- bekannte Fehler, Probleme- Lösungsansätze

- Verbesserungsvorschläge

- Tipps / Hinweise / Ratschläge

- Das Erstellen einer Bildergalerie für das Projekt „Java News & Music“

- Die einzige Vorgabe:

- Größe des Darstellungsbereichs

- Offen gelassen wurde:

- Das Layout der Galerie

- Die Art der Programmierung (Servlet, Applet, JSP)

- Bestandteile der Galerie

Die Bildergalerie sollte unserer Vorstellung nach enthalten:

- Eine Großansicht des Bildes

- Eine Vorschauansicht von fünf Bildern- Ein Kommentar zu jedem Bild

- Eine Steuerung mit...

- Bild vor- und zurück Funktion

- Eine Direktauswahl

- der Möglichkeit per Klick auf die Voransicht das Vollbild zu bekommen- der Auswahl zwischen verschiedenen Galerien

- Eine Verwaltung für die Galerien

- einer nahezu von der Auflösung unabhängige Darstellung

Die Galerieverwaltung sollte folgende Funktionen beinhalten:

- Neue Galerien erstellen

- Kommentare bearbeiten

- Galerien löschen

Das alles ohne Verwendung von Windows Programmenwie Explorer oder Editor usw.

Kommentare

GrossbildansichtSteuerungsleisteVorschauansicht

Der Aufbau der Bildergalerie

Zu jedem Bild wird ein Kommentar angezeigt

Kommentare

GrossbildansichtSteuerungsleisteVorschauansicht

Der Aufbau der Bildergalerie

Das Bild wird in realer Größe dargestellt

Kommentare

GrossbildansichtSteuerungsleisteVorschauansicht

Der Aufbau der Bildergalerie

Der Benutzer kann zwischen Galerien und Bildern navigieren

Kommentare

GrossbildansichtSteuerungsleisteVorschauansicht

Der Aufbau der Bildergalerie

Fünf Bilder werden im Kleinformat als Vorschau dargestellt

Die Kommentare

- sind einzeilig

- wurden auf 50 Zeichen begrenzt

- werden in ...info.dat Dateien gespeichert[weitere Informationen dazu später]

Die Grossbildansicht

- Die Bilddimensionen werden ermittelt- Prüfung auf Hoch- oder Querformat- Anpassung ans Layout

- zu große Bilder werden verkleinert- passende Bilder werden in

Realgröße dargestellt

Die Steuerungsleiste

Galerieauswahl

Bildnummerauswahl

Bildvorschau

Grossbildansicht

Hier kann zwischen verschiedenen Galerien gewechselt werden

Die Steuerungsleiste

Galerieauswahl

Bildnummerauswahl

Bildvorschau

Grossbildansicht

Hier kann ein Bild nach seiner Nummer ausgewählt werden

Die Steuerungsleiste

Galerieauswahl

Bildnummerauswahl

Bildvorschau

Grossbildansicht

Dieser Button lässt die Vorschauansicht fünf Bilder weiter springen

Die Steuerungsleiste

Galerieauswahl

Bildnummerauswahl

Bildvorschau

Grossbildansicht

Dieser Button lässt die Grossbildansicht ein Bild weiter springen

Die Vorschauansicht

- Es werden fünf Bilder angezeigt- pro Bild steht ein Bereich von 80x80 Pixel zur Verfügung- Unterschieden wird zwischen Hoch-, Querformat und quadratischen Bildern- Hochformat:

- Höhe 78 Pixel, Breite 56 Pixel

- Querformat: - Höhe 56 Pixel, Breite 78 Pixel

- quadratische Bilder: - Höhe 78 Pixel, Breite 78 Pixel

Wozu diese Seite ?Die „galeryindex.jsp“ dient der Initialisierung der Seite „gallery.jsp“in Bezug auf :

- Ermittlung einer Startgalerie

- Ermittlung der browserspezifischen Anzeigebereiche in Bezug auf das Hauptframe. (in dem die Galerieseiten angezeigt werden.)

- Automatisch unter Verwendung von JavaScript- Elementen

- unter Verwendung von Formularen, falls JavaScript nicht aktiv sein sollte.

Das JavaScript:

Masse für Internet-Explorer:

Masse für nicht Internet-Explorer:

automatische Übermittlung

Schematischer Initialisierungsablauf:

initTyp

Seitenaufruf

“initialize“

else Defaultgalerieermitteln

JavaScript

Script:Masse ermitteln

Fromular:Masse auswählen

Masse alsParameter ?

nein

SubmitÜbergabe Masse

als Parameter

Masse der Sessionhinzufügen

Redirect gallery.jsp

Der technische Aufbau Browser: Opera

Ermittlung der min. Abmessungen, mitdem Browser von Opera da hier derAnzeigebereich am kleinsten ist.

492x472B x H:

Das Layout wird zum Teilneu errechnet:

30 20 25 86

feste Höhen:

errechnete Höhen:305

feste Positionen (links,oben):(1,1) (1,32) (1,53)

errechnete Positionen :(1,359)(1,385)

Alle Angaben in Pixel !

horizontaler, vertikaler Abstand: 1

Durchsuchen der Ordner nach Galerien- Grundordner aller Galerien ist „Galleries“

- Jede Galerie hat einen eigenen Ordner Beispiel: Bilder zur Galerie „Amerika“ liegen im Ordner „Galleries/Amerika“, d.h: Ordnername = Galeriename

- Bei jedem Aufruf der Site wird Ordner „Galleries“ nach vorhandenen Galerien durchsucht.

Durchsuchen der Galerien nach Bildern

- Wenn in einer Galerie Bilder gefunden werden, werden diese durchgezählt und fortlaufend durchnummeriert und in ein Array geschrieben

- Danach wird dann der Name des Bildes mit der zughörigen Galerie an die Klasse FileSeeker übergeben

Klasse FileSeeker- Das Bild wird über ein AWT Toolkit vollständig in den MediaTracker geladen- Danach können dann Höhe und Breite bestimmt werden

Bildimensionen erfassen

Bilddimensionsarray nimmt dieWerte:

- Breite, Höhe

und als Zusatzparameter- eine Prüfziffer für das Bildformat

ermitteln, ob es sich um ein - Hochformatbild - Querformatbild - quadratisches Bildhandelt

ob das Bild in realer Größedargestellt werden kannbzw. angepasst werden muß

Das Hauptbild

<head>

</head>

<body>

</body>

Zur Darstellung der Hauptbildes werden dieBildabmessungen im HTML-Kopf definiert.

Im Anschluß erfolgt die erste Anwendung der Prüfziffer:

Der Ausdruck: (dimens[p-1][2]-(dimens[p-1][2]%4)) ergibt für Werte >= 4 das Ergebnis 4 , sonst das Ergebnis 0

Die Navigationsleiste:

- ist auf eine maximale Breite von 500 Pixeln und

wurde auf eine minimale Breite von 200 Pixeln begrenzt.- ist über 5 festgesetzte Stufen „variabel“, nicht nötige Elemente werden entfernt.

bis 450 Pixel

bis 400 Pixel

Framebreite: Darstellung:

bis 350 Pixel

bis 300 Pixel

200 bis 250 Pixel

Die Steuerung erfolgt über Formulare, teilweise in Verbindung mit JavaScript

Das Formular ruft die Seite „Galerie.jsp“ selbst auf, die gewünschte Bildnummer und (oder) der Galerienamen werden als Parameter übergeben.

Die Select-Felder der Navigationsleiste

Rückblick : Durchsuchen von Ordnern !

Erneuter Zugriff auf das „ordner“- Array

Sollte das Array min. einen Eintrag enthalten, wird das „Selectfeld“ um die auszuwählenden Namen der Galerien ergänzt.

JavaScript:- onChange-Event Für den Fall das ein Element einen geänderten Wert erhalten hat- this.options[this.selectedIndex].value: Das aktuelle Formular, den Wert der aktuellen „Option“ ...

...an die Seite „gallery.jsp“ als Parameter Gallery übermitteln.

Die VorschaubilderEs werden immer 5 „Bilder“ angezeigt.

Reicht die Anzahl der Bilder nicht aus um (weitere) 5 Bilder anzuzeigen,wird je fehlendes Bild ein „Dummi.gif“ als Platzhalter eingefügt.

Ein kleiner grafischer Effekt: - das aktuell angezeigte Hauptbild wird in der Vorschauleiste blau, die restlichen grau markiert

Berechnung: Navigationsvariablen

Es werden vier Basisvariablen zur Steuerung berechnet.

Die Berechnung erfolgt aufgrund desaktuell anzuzeigenden Bildes.

Berechnet werden Bildnummern für das- das nächste, vorherige Bild- das erste, letzte Vorschaubild

(Auszug)

Andere Bildnummern die zur Steuerungbenötigt werden können abgeleitet werden.

Zusätzlich behandelt werden müssen Grenzfälle wie:- erstes und letztes Bild der Galerie- erstes und letztes Bild der Vorschaubilder

Generierung der Vorschauleiste<head>

</head><body>

</body>

Allgemeines zur Galerieverwaltung

- Zur Galerieverwaltung kommt man über den Button „Edit“- Button „Edit“ erscheint nur, wenn Administrator angemeldet ist

- Nur Administrator hat Zugriff auf Galerieverwaltung-Der Admin hat die Optionen:

- Galerien erstellen - Galerien löschen

- Bilder hinzufügen - Kommentare

ändern

Erstellen einer neuen Galerie

- Das Hinzufügen einer neuen Galerie ist in Assistent Form gestaltet. - Assistent wird über Button „Hinzufügen“ aufgerufen

Bilderupload

- Bilder werden schrittweise hochgeladen.

- Upload erfolgt durch UploadBean ins Verzeichnis „UploadFiles“

- Bereits hochgeladene Bilder werden angezeigt, indem der Ordnerinhalt von „UploadFiles“ aufgelistet wird.

Das UploadBean wurde der Vollständigkeit halber insProgramm eingefügt. Genauere Informationen zum

Quellcode gibt es im Ordner „UploadDoku“

Bilderupload

- Letztendliche Sicherung im eigentlichen Galerieordner erfolgt nach Eingabe eines Galerienamens.- Wählt man einen schon bestehenden Galerienamen, wird das Bild der bestehenden Galerie hinzugefügt.- Wird der Assistent zwischendurch abgebrochen, bleiben bereits hochgeladene Bilder in der Liste erhalten. Ordner „UploadFiles“ wird erst nach vollständiger Fertigstellung des Assistenten geleert.

Galerieordner erstellen und Bilder kopieren- Ordner mit gleichem Namen wie Galerie wird

erstellt.- Bilder werden von „UploadFiles“ in neuen Ordner kopiert.

Kommentare bearbeiten

- Kommentare werden in einer Datei gespeichert.- der Name setzt sich zusammen aus:

- dem Namen der Galerie und - dem Textzusatz “info.dat“

Beispiel: Galeriename: Amerika Dateiname: Amerikainfo.dat

- Info.dat wird erst angelegt, sobald Kommentare zu Bildern geschrieben werden.

- Kommentarbearbeitung erfolgt über Tabelle. Bildname Kommentar

- Der Kommentar ist einzeilig und kann maximal 50 Zeichen lang sein.

Kommentare bearbeiten

In Galerie enthalteneBilddateien

Kommentare der zugehörigen ...info.dat(wenn vorhanden)

Wenn keine Info.dat vorhanden...

- Kommentarzeile zeigt Meldung „Keine Info.dat vorhanden“

- folglich: Kommentare sind zum Betrieb der Galerie nicht zwingend erforderlich.

Geänderte Kommentare sichern

- Klick auf Button „sichern“ speichert Kommentare.- Info.dat wird jedesmal neu überschrieben.

- Dies geschieht durch FileWriter

Das Entfernen von Galerien

- Es können nur ganze Galerien gelöscht werden

- Löschung erfolgt in drei Schritten:

1. Löschen aller Bilddateien in dem Galerieordner 2. Löschen des Galerieordners

3. Löschen der Info.dat

Administration via Internet: Ja Sicherheit ?Spätestens an dieser Stelle muß man sich die Frage stellen,welchen Personen (Usern) ein Zugriff via Internet

- auf den Bereich der Galerieverwaltung - auf alle, spezielle Projektseiten

gewährt wird.

- Registrierte User haben Zugriff auf die Bildergalerie.

- Administratoren haben Zugriff auf das gesamte Projekt.- nicht registrierte bzw. nicht “angemeldete“ User werden mit Fehlerhinweis zur Anmeldeseite verwiesen.

Die Startseite ohne Login(

http://novix.ee.fh-lippe.de:8080/jnews/html/jnm_start.jsp)

Fehlerparameter: [Typ], [Ursprung]

Verweis auf index.jsp (Startseite des ges. Projektes)

Realisierung der Sicherheitsabfragen

- Loginname wird aus der Session ausgelesen

- Prüfung auf Loginname und Loginname = “Admin“

- Weiterleitung zur Seite “ErrorSwitch.jsp“ erfolgt, wenn kein Benutzer bzw. kein Admin angemeldet ist.

- ein Scriptlet auf unseren Projektseiten

Die Seite: ErrorSwitch.jsp

- dient als Fehlerverzweigung - kann leicht verändert bzw. ergänzt werden in Bezug auf:

- auszulösender Aktion

- Fehlertyp- Fehlerursprung

Probleme und bekannte Fehler

I. Die Acht:

Zum Ende der Projektphase fielen uns noch einige Fehler auf:

Acht Einträge im Ordner Galleries ... Keinen Kommentar

II. Galerien: beim Löschen einer (Default-) Galerie bei Anwesenheit v. Besuchern

Lsg. Vors.: noch keiner, Fehler trat zu kurzfristig auf

Lsg. Vors.: Folie 21, Ordner durchsuchen bzw. Ordnernamen ermitteln. Die Namen der aktuellen (Default-) Galerie sind bekannt.

Vergleich dieser Namen mit den ermittelten Ordnernamen ... Initialisierung ausführen ...

III. JavaScript:Die Ermittlung des Darstellungsbereiches bereitet unterInternet Explorer V6.0 Probleme. (nicht unter V5.0; V5.5)Fehlerbehebung derzeit: auf Fehlerwerte prüfen, geg. Ersetzen.

Lsg. Vors.: Darstellungsgröße bei Anmeldung ermitteln.

IV. CSS-V 2.0.: Wird in speziellen Fällen (Browser u. Anwendung) nicht ordentlich interpretiert. Lsg. Vors.: getrennte CSS- Dateien, je nach Browser-Typ (- Version), setzt eine Browserkennung voraus ...

Verbesserungsvorschläge:

I. Layout ist „Geschmackssache“: Wer will kann einen „Pagekonfigurator“ erstellen, in dem der Benutzer die Anordnung der 5 Galerieteilbereiche flexibel einstellen kann, in Bezug auf z.B. - die Reihenfolge der Galerieteilbereiche - die Ausrichtung dieser Teilbereiche (vertikal/ horizontal) - ... ...

II. einzelne Bilddateien löschen ...

V. Wir möchten betonen, das die Punkte I./II. mit den in diesem Projekt vorgestellten Technologien umgesetzt werden können !! Ausführliche Informationen finden sich in der Dokumentation, bzw. alternativ in den nahezu vollständig kommentierten Quelltexten.

III. „Zentrale“ CSS-Dateien, Browserspezifisch angepasst.

IV. „Zentrale“ JS-Dateien, Browserspezifisch angepasst.

Outro

Wir bedanken uns bei:

- den Projektleitern, welche uns jederzeit mit Rat zur Verfügung standen

- der Layoutgruppe für die Umsetzung einiger Wünsche hinsichtlich - Button‘s - Admin- Information in Session

Ihnen für die Aufmerksamkeit !

Recommended