Dateizugriffe mit Applikationen 2. Dateizugriffe mit Applets

Slides:



Advertisements
Ähnliche Präsentationen
Be.as WEB Technologie
Advertisements

programmiert April-Juni 2003 von Knut Riechmann
der Universität Oldenburg
Java-Servlets Gliederung: Allgemeine Informationen zu Servlets
DVG Dateien Dateien. DVG Dateien 2 Die Klasse File Die Klasse File stellt die Verbindung zwischen dem Filesystem des Rechners und dem.
Datenbankanbindung mit ASP Wilhelm-Schickard-Schule Tübingen
Basis-Architekturen für Web-Anwendungen
1 Spezielle Packages des Java SDK (1.4) java.nio.
Internet-Datenbanken
Datenbankzugriff im WWW (Kommerzielle Systeme)
Prof. Dr.-Ing. habil. B. Steinbach - Informatik / Softwaretechnologie und Programmierungstechnik - Institut für Informatik F Verteilte Software - Java.
Tomcat Web-Server installieren
Internetzugriff mit Strings und Streams
10 Streams JavaHS Merseburg WS 05/06 E/A - Ströme (Streams) in Java.
Ausnahmen HS Merseburg (FH) WS 06/07.
Daten Anzeigen und Ausdrucken Zu Zeigende Daten (z.B. Studentenplan) Daten in XML müssen geparst und in PDF- Format umgewandelt werden. Dazu iTEXT Bibliothek.
Internet-Datenbanken Grundlagen des WWW HTML HTTP Web-Anbindung von Datenbanken Servlets JSP JDBC XML Datenmodell Schemabeschreibungssprachen Anfragesprachen.
FH-Hof Einbindung von JavaScript Anweisungen
Java: Dynamische Datentypen
FH-Hof Servlets Richard Göbel. FH-Hof Konzept Servlets werden auf der Server-Seite durch ein Formular aufgerufen werten die Eingaben aus einem Formular.
FH-Hof Sockets in Java Richard Göbel. FH-Hof Kommunikation über das Internet - Grundlagen Ein Rechner wird im Internet über die so genannte IP- Adresse.
Java: Grundlagen der Sprache
Internet-Technologien und Java
Benötigte Applets Startseite: in HTML-Format Applet auf der Startseite Das Applet, das auf der Startseite geladen wird, wird die vier Buttons und die eine.
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
Java-AG Ausnahmebehandlung Gerhard Gröger.
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
Packages Vortrag : Cornelia Hardt 23. November 1999.
DVG Dateien. DVG Die Klasse File Die Klasse File stellt die Verbindung zwischen dem File-System des Rechners und dem JAVA-Programm her.
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Klassen und Objekte
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
Datenströme DVG Datenströme.
JDBC EDV JDBC.
© 2005 Pohlig - Taulien Datenströme GK Informatik 1 Datenströme.
Einführung MySQL mit PHP
Prof. K. Gremminger Folie 1 Vorlesung Datenbanksysteme SS 2002 Aufbau einer Verbindung zur Datenbank import java.net.URL; import java.sql.*; class JDBCExample.
Seite Common Gateway Interface. Konzepte. Übersicht 1Einleitung 2Was ist CGI? 3Wozu wird CGI verwendet? 4Geschichtlicher Überblick 5Grundvoraussetzungen.
Eine Entwicklungsumgebung im Web IFC-Seminar WS98/ Holger Otte.
Einführung Servlets/JSPs
Informatik 2 Typinformationen und Ein- und Ausgabe
Wir bauen uns eine Webapplikation!
Learning By Doing TCP/IP Netzwerke mit TCP/IP Das Internet verwendet weitgehend das rund 30-jährige TCP/IP-Protokoll (TCP: Transmission Control Protocol,
Socket-Programmierung
Präsentation von Sonja Pathe
Copyright 2007 Bernd Brügge, Christian Herzog Grundlagen der Programmierung TUM Wintersemester 2007/08 Kapitel 10, Folie 1 2 Dr. Christian Herzog Technische.
Java für Fortgeschrittene
Netzwerkprogrammierung
Copyright 2004 Bernd Brügge Einführung in die Informatik II TUM Sommersemester Prof. Bernd Brügge, Ph.D Institut für Informatik Technische Universität.
CuP - Java Eingabe über Tastatur, AudioClips, überschreiben, Quiz Montag, 18. November 2002.
Oliver Spritzendorfer Thomas Fekete
Optimale Ursprungsgerade
Einführung in PHP 5.
Datenbankanbindung mit
CuP - Java Achte Vorlesung Entspricht ungefähr Kapitel 4.1 des Skriptums Montag, 28. Oktober 2002.
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Programmierpraktikum Java SS 2005 Mag.Thomas Hilpold.
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
->Prinzip ->Systeme ->Peer – to – Peer
Java-Applets und URLs APP Philip Graf, Andreas Bößl.
Webserver Apache & Xampp Referenten: Elena, Luziano und Sükran
Java-AG Datenstreams: Dateibehandlung, Lesen aus und schreiben in eine Datei.
Das Internet Ein Netzwerk, das viele Rechner miteinander verbindet
Ein- und Ausgabe in Java Packet: java.io
1 Servlets Stephan Baldes. 2 Was ist ein Servlet? S E R V L E T = Eine auf Java-Technologie basierte Web-Komponente, die von einem Container.
OOP mit Java Oder: Java in 5 Tagen. 1. Tag Klassen und Methoden Hello World in Variationen Von Menschen und Geschlechtern Horden (Schlange stehen)
Dynamische Webseiten CGI & co. © CGI - Lösung für alle ? Ja CGI kann alles tun, was man für Anwendungen braucht flexibel (beliebige.
Ein-/ Ausgabe in Java ein Überblick. © eigentlich ganz einfach ? Ein-/Ausgabe durch package java.io Ausgabe (auf Konsole) mit System.out.println()
, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS Ein- und Ausgabe in der Programmiersprache Java.
Java I/O Input / Output stream Library
Java I/O Input / Output stream Library
 Präsentation transkript:

Dateizugriffe mit Applikationen 2. Dateizugriffe mit Applets Dateiarbeit in Java Dateizugriffe mit Applikationen 2. Dateizugriffe mit Applets

1. Dateizugriffe mit Applikationen hier: nur Zugriff auf lokale Speichermedien Internet-Zugriffe: siehe 2. 1.1 Verzeichnisanalyse mit Objekt File File repräsentiert Datei des zugrundeliegenden Dateisystems kann für spezielle (bereits existierende) Datei erstellt werden Konstruktion: mit String, der zu behandelnde Datei angibt

Methoden von File Methode Resultat Bedeutung canRead boolean Kann Datei gelesen werden? canWrite Kann Datei geschrieben werden? delete Löscht Datei equals Vergleicht mit Dateinamen exists Existiert Datei? isDirectory Ist Datei ein Verzeichnis? lastModified long Letzte Änderung der Datei (ms seit 1.1.1970) length Dateigröße (Bytes) list String[] ggf. Feld mit im Verzeichn. enthaltenen Dateien mkdir ggf. Unterverzeichnis anlegen renameTo Benennt Datei um

list-Methode: kann ein FilenameFilter-Objekt übergeben bekommen, um nur bestimmte Dateien aufzulisten FilenameFilter: akzeptiert Dateien abhängig von ihren Namen Beispiel: FileTest-Applikation

1.2 Ein- / Ausgabe von Dateien FileInputStream / FileOutputStream: Nachkommen von InputStream / OutputStream  byteorientiert  Filtern mit DataInputStream / DataOutputStream FileOutputStream: Konstruktion mit Datei spezifizierendem String bzw. File-Objekt alternativ 2. boolescher Parameter möglich: Ausgaben an Dateiende anhängen, wenn true wirft aus: IOException, SecurityException neue Methode: Close (explizites Schließen der Datei)

Beispiel für FileOutputStream: FileOutputStream fos = new FileOutputStream("bytes"); DataOutputStream dos = new DataOutputStream(fos); dos.writeByte(45); dos.writeFloat(781.0352f); dos.writeLong(123456); dos.close(); FileInputStream: Konstruktion analog mit String bzw. File-Objekt: PrintWriter out = new PrintWriter(System.out, true); try { DataInputStream dis = new DataInputStream(new FileInputStream("bytes")); byte b = dis.readByte(); float f = dis.readFloat(); long l = dis.readLong(); out.println(b + " " + f + " " + l); } catch (FileNotFoundException e) { out.println("Datei \"bytes\" nicht gefunden!"); }

Serialisieren von Objekten FileReader / FileWriter: Nachkommen von InputStreamReader / OutputStreamWriter  Filtern mit BufferedReader / PrintWriter möglich Konstruktion: wie FileInputStream / FileOutputStream keine neuen Methoden Bsp: FileTest Serialisieren von Objekten Serialisieren: Zustand eines Objektes systemunabh. in Bytes umwandeln Deserialisieren: Objekt anhand der Byterepräsentation wieder rekonstruieren Bedingg.: Objektklasse muss Interface Serializable aus java.io implementieren

Verwendung: ObjectInputStream / ObjectOutputStream (Nachfolger von InputStream / OutputStream) Konstruktoren: verlangen konkreten In- / OutputStream als Argument Methoden: flush, writeBoolean, writeByte, ... wie bei DataIn- / DataOutputStream close(): ruft flush auf (nur ObjectOutputStream) und schließt gefilterten Stream void writeObject(Object o): Objekt serialisieren  schreibt alle Variablen (außer Zeiger) des Objektes in Stream  durch Zeigervariablen referenzierte Obj. werden wiederum serialisiert Object readObject(): Objekt deserialisieren  bestimmt Klasse des Objekts, erstellt Objekt neu, kopiert Variablen aus Stream, serialisiert ggf. referenzierte Objekte Exceptions: IOException (alle Methoden und Konstruktoren) ClassNotFoundException (Methode readObject): falls die Klasse des einzulesenden Objektes unbekannt ist Beispiel: PersistFrame / FrameEinAus

Nicht-serielle Dateizugriffe RandomAccessFile: freier L./S.-Zugriff auf beliebige Position in Datei möglich JDBC (Java Database Connectivity): ermöglicht Anbindg. von Java an relationale Datenbanken benötigt: JDBC-Treiber des jeweiligen Datenbankherstellers über Java-integrierte JDBC-ODBC-Bridge auch ODBC-Treiber ansprechbar (ODBC: Microsoft Open Database Connectivity) Package: java.sql

Weitere Klassen LineNumberInputStream: Zeilennummern merken StreamTokenizer: Zerlegt einen InputStream oder Reader in seine Tokens (Bezeichner, Schlüsselwörter, Operatoren usw.)

2. Dateizugriffe mit Applets 2.1 Zugriff auf lokale Dateien Sandbox-Prinzip: Java-Appletts werden normalerweise im "Sandkasten" ausgeführt  keine evt. für ausführenden Computer gefährlichen Zugriffe möglich ab Internet Explorer 4 / Netscape Navigator 4: Trusting: Unterzeichnen des Applet-Codes mit "Digital ID" Benutzer kann anhand der ID über Ausführung des Applets außerhalb der Sandbox entscheiden Digital ID nach asymmetrischem Verschlüsselungsverfahren privater Schlüssel: Unterschreiben des Codes öffentl. Schl.: von jedem zur Überprüfung der Unterschr. benutzbar ID wiederum unterschrieben von einer "Certificate Authority" (CA), deren ID bereits im Browser installiert ist CAs: z. B. VeriSign, Thawte

funktioniert nur mit NN, MIE, Sun Hotjava Nachteile: funktioniert nur mit NN, MIE, Sun Hotjava spezielle nicht-standardisierte Klassen zu benutzen jeweils wiederum spezielle Software zum Signieren notwendig  am einfachsten, Programm als Applikation zu konzipieren, die sich Benutzer erst herunterladen muss häufig verwendeter Umweg: Datenaustausch via Email, Cut&Paste Info: http://www.suitable.com/Doc_CodeSigning.shtml Beispiele: http://www.brookscole.com/compsci/aeonline/course/7/2/index.html

2.2 Zugriff auf Dateien eines Internet-Servers immer möglich: Lesezugriff auf Dateien mit vollständiger URL als Pfad: try{ URL url = new URL("http://somewhere.com/test.txt"); // oder: URL url = new URL( getDocumentBase(), filename); BufferedReader in = new BufferedReader( new InputStreamReader( url.openStream() ) ); String s = in.readLine(); // s = null ==> Stream-Ende ... } catch(MalformedURLException e){ System.out.println("URLException:"+e); } catch(IOException e){ System.out.println("IOException:"+e); }

theoretisch analoge Verfahrensweise zum Schreiben in Dateien möglich: URLConnection connection = url.openConnection(); connection.setDoOutput(true); PrintWriter out = new PrintWriter(connection.getOutputStream()); out.println("Ob das klappt?"); out.close(); Haken: die meisten Server erlauben diese Zugriffsmethode nicht Auswege: Umweg über einen FTP-Server Server lauscht auf einem Socket nach Daten des Applets an CGI-Skript auf dem Server posten Servlet

Realisierung mit CGI-Skripts zu speicherndes / anzuhängendes Dokument über eine URL an ein Skript senden via POST Vorgehen wie im obigen Beispiel: URL-Objekt erstellen. Verbindung zur URL herstellen via URLConnection. URLConnection auf Output-Modus setzen. Output-Stream von URLConnection erhalten  ist Std.-Eingabe für das CGI-Skript hinter der URL 5. Daten auf den Output-Stream schreiben und diesen schließen Beispiel: http://www.inf.tu-dresden.de/~az461978/proseminar/writefile.html

Realisierung mit Servlets Servlet: Java-Code, der vom Webserver selbst ausgeführt wird und Anfragen des Clients (z.B. eines Java-Applets) behandeln kann Vorteile gegenüber CGI: Plattformunabhängigkeit allg. OOP-Vorteile Javas Performance (ein Servlet beantwortet alle Client-Anfragen) speziell für uns: vereinfachte Kommunikation (Java  Java) benötigt: Servlets unterstützender Webserver wie z. B. der Java Web Server Infos: http://webreview.com/servlets/tutorials.html http://www.javasoft.com/docs/books/tutorial/servlets/index.html

Vortrag und Beispiele im Netz: http://www.inf.tu-dresden.de/~az461978/proseminar.html/