User Tools

Site Tools


java:urls

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
java:urls [2015/03/23 20:26] – [Αναλύοντας ένα URL με βάση το API της κλάσης] gthanosjava:urls [2020/03/09 08:27] (current) – [Χρησιμοποιώντας την κλάση URL για να ανοίξουμε ένα απομακρυσμένο resource] gthanos
Line 1: Line 1:
 ====== Δουλεύοντας με URLs ====== ====== Δουλεύοντας με URLs ======
-Το πρώτο μέρος του URL ονομάζεται αναγνωριστικό πρωτοκόλλου και δείχνει το τι πρωτόκολλο χρησιμοποιείται κάθε φορά, και το δεύτερο μέρος ονομάζεται όνομα του πόρου και διευκρινίζει τη διεύθυνση IP ή το όνομα τομέα όπου βρίσκεται ο πόρος. Το αναγνωριστικό πρωτοκόλλου και το όνομα του πόρου χωρίζονται από μια άνω και κάτω τελεία και δύο καθέτους.+Τα [[wp>Uniform_resource_locator|URL]]s (Uniform Resource Locators), είναι διαδικτυακές διευθύνσεις οι οποίες προϋποθέτουν την ύπαρξη ενός διαδικτυακού πρωτοκόλλου στο επίπεδο της εφαρμογής (π.χ http, ftp) το οποίο υλοποιείται πάνω από την [[http://en.wikipedia.org/wiki/Internet_protocol_suite|TCP/IP στοίβα]].  
 +Κάθε URL έχει τα εξής χαρακτηριστικά. 
 +  * **πρωτόκολλο:** το είδος το πρωτοκόλλου που θα χρησιμοποιηθεί (π.χ. http, ftp κλπ) 
 +  * **host name:** η IP διεύθυνση ή το Domain Name στο οποίο θα γίνει η σύνδεση. 
 +  * **port:** η πόρτα στην οποία θα γίνει η σύνδεση. 
 +  * **pathname:** το τμήμα του URL μετά το hostname και πριν τις παραμέτρους 
 +  * **parameters:** οι παράμετροι του URL. 
 +  * **ref:** (html specific) Μία αναφορά σε ένα συγκεκριμένο σημείο μέσα στο αρχείο html, η οποία παραπέμπει σε μία συγκεκριμένη θέση μέσα στο αρχείο
 + 
 +Με βάση τα παραπάνω το παρακάτω URL αναλύεται ως εξής 
 +<code> 
 +http://inf-server.inf.uth.gr:8888/courses/CE325/doku.php?id=java:urls&priority=max#writting_to_urls 
 + 
 +  * πρωτόκόλλο   --> 'http' 
 +  * hostname     --> 'inf-server.inf.uth.gr' 
 +  * port number  --> '8888' 
 +  * pathname     --> '/courses/CE325/doku.php' 
 +  * parameters   --> 'id=java:urls&priority=max' 
 +  * reference    --> 'writting_to_urls' 
 +</code> 
 + 
  
 ===== Δημιουργώντας ένα URL ===== ===== Δημιουργώντας ένα URL =====
Line 45: Line 66:
 </code> </code>
  
 +Το αποτέλεσμα εκτέλεσης του παραπάνω κώδικα είναι το εξής
 +<code>
 +protocol = http
 +authority = example.com:80
 +host = example.com
 +port = 80
 +path = /docs/books/tutorial/index.html
 +query = name=john&sirname=smith
 +filename = /docs/books/tutorial/index.html?name=john&sirname=smith
 +ref = flushing
 +</code>
 +
 +===== Χρησιμοποιώντας την κλάση URL για να ανοίξουμε ένα απομακρυσμένο resource =====
 +
 +<code java URLReader.java>
 +import java.net.*;
 +import java.io.*;
 +
 +public class URLReader {
 +  public static void main(String[] args) {    
 +    URL url=null;
 +    try {   
 +      url = new URL(args.length>0 ? args[0] : "http://feeds.bbci.co.uk/news/rss.xml");
 +      BufferedReader in = new BufferedReader(
 +        new InputStreamReader(url.openStream()) );
 +
 +      String inputLine;
 +      while ((inputLine = in.readLine()) != null) {
 +        System.out.println(inputLine);
 +      }
 +      in.close();
 +    } 
 +    catch(MalformedURLException ex) {
 +      System.out.println("Malformed URL: +"+ args[0] );
 +      ex.printStackTrace();
 +    }
 +    catch(IOException ex) {
 +      System.out.println("Error while reading or writing from URL: "+url.toString() );
 +    }
 +  }
 +}
 +</code>
 +
 +To παραπάνω θα μπορούσε να γραφεί ισοδύναμα ως εξής με χρήση ενός αντικειμένου [[http://docs.oracle.com/javase/7/docs/api/java/net/URLConnection.html|URLConnection]].
 +<code java URLConnectionReader.java>
 +import java.net.*;
 +import java.io.*;
 +
 +public class URLConnectionReader {
 +  public static void main(String[] args) {    
 +    URL url=null;
 +    try {   
 +      url = new URL(args.length>0 ? args[0] : "http://feeds.bbci.co.uk/news/rss.xml");
 +      URLConnection urlcon = url.openConnection();
 +      BufferedReader in = new BufferedReader(
 +        new InputStreamReader(urlcon.getInputStream()) );
 +
 +      String inputLine;
 +      while ((inputLine = in.readLine()) != null) {
 +        System.out.println(inputLine);
 +      }
 +      in.close();
 +    } 
 +    catch(MalformedURLException ex) {
 +      System.out.println("Malformed URL: +"+ args[0] );
 +      ex.printStackTrace();
 +    }
 +    catch(IOException ex) {
 +      System.out.println("Error while reading or writing from URL: "+url.toString() );
 +    }
 +  }
 +}
 +</code>
  
 +|Προηγούμενο: [[:java:sockets| Sockets  ]] | [[:toc | Περιεχόμενα ]] | Επόμενο: [[:java:generics| Generics ]]|
  
java/urls.1427142371.txt.gz · Last modified: 2015/03/23 20:26 (external edit)