Next previous Innehåll Klassen URL Arbeta med URLer, exempel Speciella referenser (som används i här) Harold, dvs kursboken ”Java Network Programming”

Slides:



Advertisements
Liknande presentationer
Next previous Björn Eiderbäck NADA, KTH Innehåll Klassdiagram i mer detalj Visibility och modifierare (vilka.
Advertisements

Avlusning Debugger (”avlusare”) Breakpoints Watch.
Array Skriv ett program som frågar följande: ”Hur många tal vill du mata in?” användaren matat in ett tal t.ex n. då frågar programmet n ggr följande.
Stefan Möller OOP F16:1 OOP Objekt-orienterad programmering Föreläsning 16 Grafiska användargränssnitt, GUI Ytor Komponenter Layout-managers Lyssnare.
Imperativ Programmering
Next previous Internetprogrammering 2000 Internetprogrammering 2000 Föreläsning 10 Distribuerad programmering med Javas RMI, Remote Method Invocation.
Next previous Innehåll Klassen URL Arbeta med URLer, exempel Referenser Harold,”Java Network Programming”, Elliotte Harold Hall, "CORE Web Programming"
Objektorienterad utveckling Lektion 2 Objekt, överlagring, överskuggning, klasshierarkier och dynamisk bindning KTH Peter Mozelius.
Filhantering Grundprincipen för filhantering Öppna filen
Metoder i java Det finns två typer av metoder i java
Övning5 Så här ska man tänka när man löser uppgift 1 på tentan lite grafik, så här söker man genom en lista så här läser man från en fil i java lösa uppgift.
Välkommen Vahid Mosavat
Programmeringsteknik för K och Media
Programmeringsteknik för K och Media
Programkodens uppbyggnad
Att programmera i språket Java
Att integrera databaser med Java
Next previous Lite mer om synkronisering. Mer om Java och trådar. RMI Objektorienterad Realtidsprogrammering 2000 Objektorienterad Realtidsprogrammering.
Föreläsning 2 Primitiva datatyper Variabler och konstanter Tilldelning Inläsning Operatorer Villkorssatsen if Slingor: while och for.
Next previous Innehåll Inledning Några enkla exempel Pekare till och kort beskrivning av större exempel Speciella referenser (som används i marginalen)
Next previous Innehåll Inledning Några enkla exempel Pekare till och kort beskrivning av större exempel Speciella referenser Harold, dvs boken ”Java Network.
Strömmar Vid läsning och skrivning används något som kallas strömmar.
Java Nätverks API URL sockets.
Next previous Introduktion till Java Av Björn Eiderbäck Adress: Rum 1641, 6tr NADA Osquars Backe 2 Tel: OOMPAE 2000.
Exception Handling Kapitel 9. Agenda Exceptions try, throw and catch Skapa en egen exception-klass Multipla throw / catch Slänga vidare en exception Olika.
Streams and File I/O Kapitel 10. Agenda Exceptions Textfiler Skriva Appenda Läsa File Sökvägar.
OOP F4:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 4 Metoder klass-metoder instans-metoder.
Variabler: Datatyp - grundläggande : int, double, char, boolean eller
Föreläsning 2 Kort Översikt Över Javaspråket. Källkodsformat Unicode används åäöμψζ tillåtna Inte alla miljöer klarar av det Källkod Bytekod Java VM för.
Next previous Föreläsning ii - Mer om Java bla this och konstruktorer Av Björn Eiderbäck Adress: Rum 1641, 6tr NADA Osquars Backe.
Vektorer (klassen Vector) Sortering
Objektorienterad Modellering Programmering och Analys
OOP Objekt-orienterad programmering
Programmeringsteknik för Media1 & K1
OOP F6:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 6 Mer om klasser och objekt Hantera många objekt ArrayList toString() – metoden.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser -Att definiera egna klasser -Klassvariabler -Klassmetoder.
OOP F3:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 3 Iteration Många variabler av samma sort – Arrayer.
Föreläsning 5, Kapitel 5 Använda Java-bibliotek för att få avancerad funktionalitet Kursbok: “Objects First with Java - A Practical Introduction using.
Föreläsning 14 ”Enkel” Filhantering.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
Föreläsning 10 Stränghantering.
Next previous RMI, Remote Method Invocation Om du har boken av Marty Hall, läs avsnitt 15.8 För fler exempel se:
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 11 C# I/O Streams C# använder “strömmar” för in- och utmatningsoperationer.
TILLÄMPAD DATALOGI (TILDA) Övning 3
1 ITK:P2 F6 Sortering av generiska containerklasser DSV Peter Mozelius.
PROGRAMMERINGSTEKNIK Övningsgrupp 3 Marcus Hjelm
Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305
Föreläsning 1 Om kursen Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
ITK:P1 Föreläsning 2 Introduktion till objektorientering DSV Marie Olsson.
0. Kod, Klassdiagram och Sekvensdiagram import java.awt.event.*; import javax.swing.*; import java.awt.*; public class TwoThreads implements ActionListener.
INTRODUKTION TILL PROGRAMMERING
1. Skriv programmet Fetkoll som läser igenom valfri webbsida och skriver ut alla ord och fraser som står med fetstil. I HTML anges det med starttaggen.
Class VattenKraft{ public static void main(String[] args){ int num=150; int i, totflöde, maxflöde; int[] fall = new int[num]; //vattenflödet i vattenfallen.
ITK:P2 F8 Strömmar och filhantering DSV Peter Mozelius.
OOP F13:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 13 Repetition variabler, selektion och iteration.
Köer -- Kapitel 16. Principen med en kö Köer är FIFO datastrukturer  First In – First Out  enqueue() Lägg till data i kön (först)  dequeue() Hämta.
Föreläsning 3 Villkorssatsen if Slingor: while och for Felsökning.
TILLÄMPAD DATALOGI (TILDA) Övningsgrupp 2 Marcus Hjelm
TILLÄMPAD DATALOGI (TILDA) Övning 1 Marcus Hjelm
OOP F5:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 5 Klasser och objekt Skapa objekt - new Referenser Konstruktorer Inkapsling.
Övning2 programmeringsteknik och Matlab 2D1312/ 2D1305
Övning 3. Repetition Metoder class RepetitionMetoder { public static void main(String [] args) double längd = 2.0; double bredd = 1.0; double area =
TILLÄMPAD DATALOGI (TILDA) Övning 2
TILLÄMPAD DATALOGI (TILDA) Övning 2
1 Föreläsning 2 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Föreläsning 8: Exempel och problemlösning
Föreläsning 12: Exempel och problemlösning
Nätverkskommunikation
10 Kommunikation i Java Skansholm kap 18
Presentationens avskrift:

next previous Innehåll Klassen URL Arbeta med URLer, exempel Speciella referenser (som används i här) Harold, dvs kursboken ”Java Network Programming” Tut, dvs SUNs tutorial (~kurs) om URLer på nätet, se Hämta data mha URLer Föreläsning 7 Se också Harold då beskrivningen där är ganska fullständig. Se också Tut som är ganska rättfram. Se också Harold då beskrivningen där är ganska fullständig. Se också Tut som är ganska rättfram.

previous next 2 Hämta data mha URLer Klassen URL I Java finns det en klass java.net.URL som hanterar URLer Med denna klass kan man enkelt hämta filer från webservrar En absolut URL skapas på följande sätt URL nada = new URL(” En URL kan skapas relativt en annan URL ip = new URL(nada, ”kurser/kth/2D4334/index.html"); Generellt kan vi ange både protokoll, webplats, fil och portnummer separat URL nada = new URL(”http”, ” 80, ”kurser/kth/2D4334/index.html");

previous next 3 Hämta data mha URLer Kastande av undantag vid konstruktion av URL … Då vi skapar en URL måste vi ta hand om undantaget MalformedURLException Så vi konstruerar en URL på följande sätt try { URL myURL = new URL(...) } catch (MalformedURLException e) {... // felhantering här... } dvs ta alltid ta hand om undantaget

previous next 4 Hämta data mha URLer Läsa data mha av URL … Vi kan med hjälp av en URL direkt be om innehållet i den fil den pekar ut –använd metoden getContent() –Observera att getContent() returnerar ett objekt som beror av innehållet, eller fallerar om den inte kan tolka vad som finns där try{ content = (BufferedInputStream)url.getContent(); } catch(IOException e) {} BufferedReader buffer = new BufferedReader(new InputStreamReader(content)); String line; while((line = readLine(buffer)) != null) System.out.println(line); Läs innehållet och i det här fallet ”casta” till lämplig typ Skapa läsström Läs radvis

previous next 5 Hämta data mha URLer... där readLine kan se ut ungefär så här: public String readLine(BufferedReader b) { String line = null; try{ line = b.readLine(); } catch(IOException e) {} return line; } Mer generellt kan vi läsa innehållet via en URLConnection, se nästa sida

previous next 6 Hämta data mha URLer Läsa och skriva mha URLConnection... Om vi från en URL skapar en instans av en subklass till den abstrakta klassen URLConnection. Denna instans ger oss möjlighet att kontrollera vad som skall hända i lite mer detalj –Bland annat kan vi förutom läsa information från URLen också där det är möjligt skriva information till den –Vissa metoder i URL använder en URLConnection för att ”lösa sina uppgifter”, tex metoden getContent() –Se paketet sun.net. för konkreta klasser, bland andra FtpURLConnection HttpURLConnection MailToURLConnection

previous next 7 Hämta data mha URLer …exempel med indirekt URLConnection... Man kan öppna en läsström men openStream() import java.net.*; import java.io.*; public class URLReader { public static void main(String[] args) throws Exception { URL nada = new URL(" BufferedReader in = new BufferedReader( new InputStreamReader(nada.openStream())); String inputLine; while ((inputLine = in.readLine()) != null) System.out.println(inputLine); in.close(); }

previous next 8 Hämta data mha URLer … vi kan också använda URLConnection mer explicit import java.net.*; import java.io.*; public class URLConnectionReader { public static void main(String[] args) throws Exception { URL nada = new URL(" URLConnection nc = nada.openConnection(); BufferedReader in = new BufferedReader( new InputStreamReader( nc.getInputStream())); String inputLine; while ((inputLine = in.readLine()) != null) System.out.println(inputLine); in.close(); } Om vi vill skriva kan vi använda URLConnections:s getOutputStream() (se Tut)

previous next 9 Hämta data mha URLer Några exempel Nu följer tre exempel på lite olika användning av URLer 1Hämta innehållet från vad som pekas ut av en URL och skriv det antingen på skärmen eller på en fil 2Skriv information om innehållet i den URL som pekas ut 3Använd en URL och mailto: för att skicka elektronisk post

previous next 10 Hämta data mha URLer Hämta innehållet i en URL import java.io.*; import java.net.*; public class GetURL { public static void main(String[] args) { InputStream in = null; OutputStream out = null; try { if ((args.length != 1) && (args.length != 2)) throw new IllegalArgumentException("Wrong number of arguments"); URL url = new URL(args[0]); in = url.openStream(); if (args.length == 2) out = new FileOutputStream(args[1]); else out = System.out; Deklarera in- och utmatningsströmmar Skapa URL öppna inström välj typ av utström (fil eller terminal)

previous next 11 Hämta data mha URLer... byte[] buffer = new byte[4096]; int bytes_read; while((bytes_read = in.read(buffer)) != -1) out.write(buffer, 0, bytes_read); } catch (Exception e) { System.err.println(e); System.err.println("Usage: java GetURL [ ]"); } finally { try { in.close(); out.close(); } catch (Exception e) {} } kopiera innehållet till utström stäng alltid strömmarna

previous next 12 Hämta data mha URLer Skriv information om URL via URLConnection import java.net.*; import java.io.*; import java.util.Date; public class GetURLInfo { public static void printinfo(URL url) throws IOException { URLConnection c = url.openConnection(); c.connect(); System.out.println(" Content Type: " + c.getContentType()); System.out.println(" Content Encoding: " + c.getContentEncoding()); System.out.println(" Content Length: " + c.getContentLength()); System.out.println(" Date: " + new Date(c.getDate())); System.out.println(" Last Modified: " + new Date(c.getLastModified())); System.out.println(" Expiration: " + new Date(c.getExpiration())); Använd URLConnection

previous next 13 Hämta data mha URLer... if (c instanceof HttpURLConnection) { HttpURLConnection h = (HttpURLConnection) c; System.out.println(" Request Method: " + h.getRequestMethod()); System.out.println(" Response Message: " + h.getResponseMessage()); System.out.println(" Response Code: " + h.getResponseCode()); } public static void main(String[] args) { try {printinfo(new URL(args[0])); } catch (Exception e) { System.err.println(e); System.err.println("Usage: java GetURLInfo "); } Om det är en HTTP- anslutning skriv ut lite mer info Skapa URL och skriv ut info

previous next 14 Hämta data mha URLer Skicka e-post via en URL import java.io.*; import java.net.*; public class SendMail { public static void main(String[] args) { try { if (args.length >= 1) System.getProperties().put("mail.host", args[0]); BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.print("From: "); String from = in.readLine(); System.out.print("To: "); String to = in.readLine(); System.out.print("Subject: "); String subject = in.readLine(); Om maildator angiven så tala om det för systemet Inmatningsström från terminal Be användaren om brevhuvud Notera att likheten med att skicka brev i ett vanligt program för elektronisk post

previous next 15 Hämta data mha URLer... URL u = new URL("mailto:" + to); URLConnection c = u.openConnection(); c.setDoInput(false); // Ingen inmatning från URLen c.setDoOutput(true); // men däremot utmatning till den System.out.println("Connecting..."); System.out.flush(); c.connect(); PrintWriter out = new PrintWriter(new OutputStreamWriter(c.getOutputStream())); out.println("From: \"" + from + "\" "); out.println("To: " + to); out.println("Subject: " + subject); out.println(); // vi avslutar med en tom rad (som indikerar att brevhuvudet är klart) Utmatnings- ström skapas Anslut Skapa en ”mailto:-url” Skriv sidhuvud ”på URLen” Vi vill skriva på “URLen” så vi använder en URLConnection

previous next 16 Hämta data mha URLer... System.out.println("Enter the message. " + "End with a '.' on a line by itself."); String line; for(;;) { line = in.readLine(); if ((line == null) || line.equals(".")) break; out.println(line); } out.close(); System.out.println("Message sent."); System.out.flush(); } catch (Exception e) { System.err.println(e); System.err.println("Usage: java SendMail [ ]"); } Läs brevkropp och skriv den på ”URLen” Be användaren skriva brev- kroppen