Praxis der Internet-Programmierung

Slides:



Advertisements
Ähnliche Präsentationen
Dynamische WEB-Applikationen
Advertisements

M a r c – o l i v e r p a h l Informatik I – Kapitel 7 Klassen und höhere Datentypen Zusammenfassung des Kapitel 7 Küchlin, Weber, Einführung in die Informatik,
programmiert April-Juni 2003 von Knut Riechmann
Objektorientierte Programmierung
Dominic Ziegler 12c Webprogrammierung.
Kurt Rosenberg. C# für.NET oder.NET für C# is(C# == C++ && Java)? true : false ; reines C# Ausblick Überblick.
Programmierkurs Java WS 98/99 Vorlesung 15 Dietrich Boles 17/02/99Seite 1 Programmierkurs Java Vorlesung im WS 1998/1999 am FB Informatik der Universität.
Prof. Dr.-Ing. habil. B. Steinbach - Informatik / Softwaretechnologie und Programmierungstechnik - Institut für Informatik F Verteilte Software - Java.
Verteilte Software - Java - Prozedurale Programmierung 1
Prof. Dr.-Ing. habil. B. Steinbach - Informatik / Softwaretechnologie und Programmierungstechnik - Institut für Informatik Verteilte Software - Java -
Tomcat Web-Server installieren
Internetzugriff mit Strings und Streams
Ausnahmen HS Merseburg (FH) WS 06/07.
Java News & Music Der Chat
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
FH-Hof Fehlerbehandlung Richard Göbel. FH-Hof Konzept Fehler können mit dem Operator throw einer übergeordneten Funktion signalisiert werden. Parameter.
Internet Protokolle und Formate 1.1 HTTP 1.2 HTML 1.3 SGML 2. XML 3. WAP Matthias Thränhardt Sebastian Weber.
SWITCH - Anweisung.
Verzweigung oder bedingte Anweisung Weiter mit PP.
IF-ELSE-IF-Ketten Weiter mit PP..
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.
M a r c – o l i v e r p a h l Die ObjektOrientierte Mühle Das Beispiel soll noch einmal das Konzept der Objektorientiertheit erläutern. Dabei werden außerdem.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 9 IO – Streams in Java Sommersemester 2003 Lars Bernard.
Dynamische Webseiten Java servlets.
HTTP HyperText Transfer Protocol -
Objektorientierte Programmierung JDK-Klassenbibliothek
Filiale pea09 Die Einbindung der MySQL-Datenbank in das Servlet.
Seminar Internet Technologien
F açade P attern By Nicolas Lanquetin. Façade Pattern Structural Pattern Bietet ein gemeinsames Interface, anstatt vieler Interfaces eines Subsystems.
DVG Ausnahmen1 Ausnahmen. DVG Ausnahmen 2 Was sind Programmfehler? Programm erzielt gar kein Ergebnis. Berechnetes Ergebnis stimmt nicht.
EDV Parallelprogrammierung1 Parallelprogrammierung mit JAVA.
Datenströme DVG Datenströme.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
© 2005 Pohlig - Taulien Datenströme GK Informatik 1 Datenströme.
Bestimmung des ggT zweier Zahlen
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Sommersemester 2004 Jan Drewnak Entwicklung und Einsatz von Geosoftware I Praktikum Sitzung 7 Sitzung 7: User Interfaces in Java.
Einführung Servlets/JSPs
| AVS / Programmierung Kapitel 1: Programmierung Einführung Motivation – Entwicklung verteilter Anwendungen im Internet Welchen Dienst soll die Anwendung.
Servlet III Java Webanwendung Webcontainer Web.xml
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
Netzwerkprogrammierung
Parallel Programming Thread Synchronization. Heute 1. Lösung zu Assignment 2 2. Erstellen und Starten von Threads in Java 3. Das synchronized Schlüsselwort.
Exception Handling in Java
Praxis der Internet-Programmierung
XML IV: Cocoon 2.
CuP - Java Eingabe über Tastatur, AudioClips, überschreiben, Quiz Montag, 18. November 2002.
Optimale Ursprungsgerade
2002 XML 10.1XML I (Parsing) 17.1XML II (XLST,XPATH) (keinPraktikum) 24.1XML III FOP 31.1Cocoon2, XSP 7.2Struts, Turbine, Velocity 14.2Testat / Evaluation.
CuP - Java Zwölfte Vorlesung Klassen – Komposition und Vererbung Freitag, 15. November 2002.
Learning By Doing Ausnahmebehandlung Exceptions (Ausnahmebehandlung) Typische Fehlverhalten zur Laufzeit: s. Buch S. 287ff -Verwendung von null-Objekten.
Programmierung von Agenten in Java: Implementierung einer Supply-Chain
Java Thread Scheduling Jin Zhou Proseminar Java Thread Scheduling November 2000.
Beispielanwendung von Java Threads
Javelin Internet-based parallel computing using Java.
Programmiervorkurs WS 2014/15 Methoden
Java 7 Änderungen in der neuen Version Thomas Nagel 17. Juni 2012.
CuP - Java Achte Vorlesung Entspricht ungefähr Kapitel 4.1 des Skriptums Montag, 28. Oktober 2002.
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
Web und Mobile Apps Programmieren Marco Jakob Kurzvortrag OSS an Schulen
Ausnahmen Vorlesung besteht aus zwei Teilen Programmierung (4 SWS)
OOP mit Java Oder: Java in 5 Tagen. 1. Tag Klassen und Methoden Hello World in Variationen Von Menschen und Geschlechtern Horden (Schlange stehen)
Ein-/ Ausgabe in Java ein Überblick. © eigentlich ganz einfach ? Ein-/Ausgabe durch package java.io Ausgabe (auf Konsole) mit System.out.println()
Java I/O Input / Output stream Library
Java I/O Input / Output stream Library
java.net Klassenbibliothek für den Datentransport im Netz
Tutorstunde 10.
 Präsentation transkript:

Praxis der Internet-Programmierung Http Streams Sockets JAVA XML APACHE

Hypertext Transfer Protocol Server Client REQUEST RESPONSE WebConversation wc = new WebConversation(); WebRequest req = new GetMethodWebRequest( "http://..." ); WebResponse resp = wc.getResponse( req );

REQUEST GET /index.html HTTP 1.1 Accept: image/gif, image/x-xbitmap, image/jpeg, *.* Accept-Encoding: gzip, deflate Content-Type: text/html User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)

RESPONSE HTTP 1.1 200 OK (STATUS CODE, 404 File not found) Server: Medusa/1.26.4.2 Content-Type: text/html Content-Length: 136 Date: Fri, 26 Oct 2001 12:47:16 GMT <html> <head> <title>Test Page</title> </head> <body> Hallo …. </body> Weiter Informationen: http://www.w3.org/Protocols/

Wichtige Header Einträge Accept Unterstützte MIME Typen: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, */* Accept-Encoding Unterstützte Kodierungen: gzip, deflate Accept-Language Unterstützte Sprache: De Authorization Verschlüsselte Identifizierung: name:passwort Basic Z3VnZ2lzYmVyZzpub3NlMg== Connection Unterstützt anhaltende Verbindung, der Client kann mehrere Files über eine Socketverbindung erhalten Keep-Alive User-Agent Mozilla/5.0 (Windows; U; WinNT4.0; en-US; m18) Gecko/20001108 Netscape6/6.0 HTTP Request Header

Repetition Java Streams write() Byte Stream Unicode Stream

Einlesen eines Text Files import java.io.*; public class IOStreamDemo { // Throw exceptions to console: public static void main(String[] args) throws IOException { // Reading input by lines: BufferedReader in = new BufferedReader( new FileReader("tst.tex")); String s, s2 = new String(); while((s = in.readLine())!= null) s2 += s + "\n"; in.close(); System.out.print(s2); FileReader BufferedReader Anwendung

Java Anwendung FileOutputStream InputStreamReader (System.in) GZIPOutputStream BufferedReader BufferedOutputStream Java Anwendung

Console  Zip File import java.io.*; import java.util.zip.*; public class streamzip { public static void main(String[] args) throws IOException { BufferedReader in = new BufferedReader( new InputStreamReader(System.in)); BufferedOutputStream out = new BufferedOutputStream( new GZIPOutputStream( new FileOutputStream("test.gz"))); int c; while((c = in.read()) !=46) out.write(c); in.close(); out.close(); }}

Konzept von Sockets Client Server IP Adresse Port Nummer OUTPUT STREAM 131.152.85.122:1313 OUTPUT STREAM INPUT STREAM £S$dsf£sdf$dfd$d Abcd sd sf df sd Puffer Puffer

Socket Socket = Endpunkt einer Verbindung zwischen zwei Computern C1 TCP / UDP IP Ethernet

Java Socket Programmierung Link: http://www.javaworld.com/javaworld/jw-12-1996/jw-12-sockets_p.html // MyClient; try { Socket s_C = new Socket("Machine name", PortNumber); } catch (IOException e) { System.out.println(e); } // MyService; try { ServerSocket s_serv = new ServerSocket(PortNumber); } catch (IOException e) { System.out.println(e); }

Client Socket import java.net.*; import java.io.*; Verbindung herstellen: InetAddress addr = InetAddress.getByName("localhost"); Socket socket = new Socket(addr, PORT); Input und Output Streams initialisieren. BufferedReader in =new BufferedReader(new InputStreamReader(socket.getInputStream())); PrintWriter out =new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);

Client Socket Kommunizieren Verbindung trennen String str = in.readLine(); out.println(‘meine Meldung‘); Verbindung trennen socket.close();

Server Socket import java.net.*; import java.io.*; Verbindung ermöglichen: ServerSocket s = new ServerSocket(PORT); try { // wartet auf ein Client Socket socket = s.accept(); Input und Output Streams initialisieren. BufferedReader in =new BufferedReader(new InputStreamReader(socket.getInputStream())); PrintWriter out =new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);

Server Socket Kommunizieren Verbindung trennen while (true) { String str = in.readLine(); if (str.equals("END")) break; System.out.println("Echoing: " + str); out.println(str); } Verbindung trennen socket.close();

Multi Socket Server Klassen Modellierung Thread multi_echoserver PORT = 8131 main() 1..20 one_echoserver one_echoserver(socket) run()

Multi Socket Server public static void main(String[] args)throws IOException { ServerSocket s = new ServerSocket(PORT); try { while(true) { // Wartet auf einen Client Socket socket = s.accept(); new one_echoserver(socket); } catch(IOException e) { socket.close();} // Bei Fehler schliessen } } finally { s.close(); }}

Multi Socket Server class one_echoserver extends Thread { private Socket socket; private BufferedReader in; private PrintWriter out; public one_echoserver(Socket s) throws IOException { socket = s; in = new BufferedReader( new InputStreamReader(socket.getInputStream())); out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true); start(); // run() }

Multi Socket Server class one_echoserver … … public void run() { try { while (true) { String str = in.readLine(); if (str.equals("END")) break; System.out.println("Echoing: " + str); out.println(str); } System.out.println("closing...");

Praktikum Web Service basierend auf Sockets Client verbindet sich mit Server Passwortabfrage vom Server Server sendet die aktuelle aktuellen Börsenkurs (oder eine Wetterprognose) aus dem Internet (httpunit) 4. Beide schliessen den Socket Tip: mit ipconfig finden Sie ihre IP-Adresse FürFortgeschritten Java Chat Programm für 2 oder 3 Computer Der in der Vorlesung gezeigt Sourcecode finden Sie auf der Ifi-Homepage.

Tip & Tricks zum JBuilder Symbol markieren & Rechte Maustaste  Information über die selektierte Klasse

Tip & Tricks zum JBuilder Templates Ctrl-J

Tip & Tricks zum JBuilder Tastatur Belegung Ctrl+Space mögliche Klassen oder Methoden Ctrl+Shift+Space mögliche Parameter Ctrl+Enter springt in die Klasse Ctrl+Alt+Space öffnet Klassen Bibliothek Ctrl+J Code Templates Ctrl + Shift + I Rechts schieben eines markierten Blocks Ctrl + Shift + U Links schieben eines markierten Blocks Ctrl + G goto Line