referat Clasa URL si exemple Java

Clasa URL si exemple Java

Referat Informatica - liceu

Acesta este doar o parte a referatului! Referatul original trebuie descarcat!

Preview

Clasa URL

Clasa URL este declarată în pachetul java.net prin:
public final class URL extends Object
implements Serializable

Un obiect de tip URL, numit şi locaţie URL, este o referinţă la o resursă Web. Resursa poate fi un fişier, un director, dar şi un obiect mai complex ca de exemplu o cerere către o bază de date sau un motor de căutare. Ca sintaxă, o astfel de adresă cuprinde 4 părţi:
protocol:// adresa :port /cale
unde protocol desemnează serviciul exportat de server sau căutat de client (de exemplu http sau ftp), adresa este adresa simbolică sau numerică a maşinii gazdă referite, port portul folosit pentru comunicare, iar cale identifică resursa.
Un exemplu este următorul:
http://www.ncsa.uiuc.edu:8080/demoweb/url-primer.html

Sunt folosite şi locaţii URL parţiale, ce specifică doar unele părţi din forma completă a locaţiei; acest lucru este posibil în situaţiile în care celelalte părţi sunt implicite sau se deduc din context. De exemplu poate lipsi numele maşinii gazdă (dacă facem referire la maşina locală) sau portul (dacă este folosit un port implicit).

Constructorul \"complet\" are forma:
public URL(String protocol, String gazda,
int port, String fisier)
Metode (publice), ale clasei URL :

String getPath()
întoarce calea din locaţia URL;
int getPort()
întoarce numărul portului din locaţia URL;
String getProtocol()
întoarce protocolul din locaţia URL;
String getHost()
întoarce adresa maşinii gazdă din locaţia URL;
String getFile()
întoarce numele fişierului din locaţia URL;
String toString()
întoarce reprezentarea sub formă de şir de caractere a locaţiei URL.


Exemplul 2. Dorim să aflăm dacă un server având o adresă dată oferă sau nu servicii Web.

Va fi creat un socket de tip client. Adresa este furnizată în comanda java.

// Executarea se face prin: java WebCheck adresa
import java.io.*; import java.net.*;
public class WebCheck { public static void main(String[] adresa) { Socket web = null; System.out.print(\"Serverul \" + adresa[0]); try {
web = new Socket(adresa[0],80);
System.out.println(\" ofera servicii Web\"); web.close();
}
catch(IOException e) {
System.out.println(\" nu ofera servicii Web\");
}
}
}





Exemplul 3. Chat (o conversaţie) între două calculatoare.

Pentru simplificare, considerăm că fiecare mesaj trimis de la un calculator la celălalt se reduce la o linie de text.
Serverul este primul care trebuie pornit. Apoi clientul este cel care începe discuţia, transmiţând un mesaj şi aşteptând să primească mesajul de răspuns, activităţi care se repetă până când clientul transmite mesajul \"STOP\". Serverul repetă şi el succesiunea de activităţi recepţie + transmisie până când primeşte mesajul \"STOP\".
Clientul va folosi unitatea de compilare Client.java, iar serverul va folosi unitatea de compilare Server.java.

// Unitatea de compilare Client.java
import java.net.*; import java.io.*;
class Client {
public static void main (String[] sir)
throws IOException {
Socket cs = null;
DataInputStream is=null; DataOutputStream os=null;
try {
cs = new Socket(\"localhost\",5678);
is = new DataInputStream(cs.getInputStream());
os = new DataOutputStream(cs.getOutputStream());
}
catch(UnknownHostException e) {
System.out.println(\"Host inexistent\");
}
DataInputStream stdin =
new DataInputStream(System.in);
String linie;
for( ; ; ) {
linie = stdin.readLine()+\"\\n\"; os.writeBytes(linie);
System.out.println(\"Transmisie :\\t\" + linie);
if (linie.equals(\"STOP\\n\")) break;
linie = is.readLine();
System.out.println(\"Receptie :\\t\" + linie);
}
System.out.println(\"GATA\");
cs.close(); is.close(); os.close();
}
}

// Unitatea de compilare Server.java
import java.net.*; import java.io.*;
class Server {
public static void main (String[] sir)
throws IOException {
ServerSocket ss = null; Socket cs = null;
DataInputStream is=null; DataOutputStream os=null;
ss = new ServerSocket(5678);
System.out.println(\"Serverul a pornit !\");
cs = ss.accept();
is = new DataInputStream(cs.getInputStream());
os = new DataOutputStream(cs.getOutputStream());

DataInputStream stdin =
new DataInputStream(System.in);
String linie;
for( ; ; ) {
linie = is.readLine();
System.out.println(\"Receptie :\\t\" + linie);
if (linie.equals(\"STOP\")) break;
linie = stdin.readLine()+\"\\n\";
os.writeBytes(linie);
}
cs.close(); is.close(); os.close();
}
}
Observaţie. Metoda readLine este considerată \"depreciată\" (deprecated).


Exemplul 4. Dorim să descărcăm un fişier aflat pe o pagină Web.

Adresa serverului, numele fişierului căutat şi portul (80) vor fi specificate în această ordine în comanda java. Un exemplu este următorul:
java HTTPClient www.nus.edu.sg NUSinfo/UG/ug.html 80
Practic, vom transmite serverului, sub forma unui şir de caractere, mesajul:
GET nume_fişier
ce reprezintă o comandă din limbajul HTTP (HyperText Transmission Protocol) şi pe care un server de Web ştie să o interpreteze corespunzător. Comanda GET trebuie urmată de o linie vidă.
Fişierul recepţionat va fi inclus sub acelaşi nume (?) în directorul curent.


// Unitatea de compilare HTTPClient.java
import java.io.*; import java.net.*;
class HTTPClient {
public static void main(String[] sir)
throws IOException {
Socket cs = null;
int port = Integer.parseInt(sir[2]);
DataInputStream is=null; DataOutputStream os=null;

try {
cs = new Socket(sir[0],port);
is = new DataInputStream(cs.getInputStream());
os = new DataOutputStream(cs.getOutputStream());
}
catch(UnknownHostException e)
{ System.out.println(\"Host inexistent\"); }

String mesaj = \"GET \" + sir[1] + \"\\n\\n\";
os.writeBytes(mesaj);

DataOutputStream fis = new DataOutputStream(
new FileOutputStream(sir[1]) );
int c;
while( (c=is.read()) != -1) {
System.out.print(\"\" + (char) c); fis.write(c);
}
fis.close(); is.close(); os.close(); cs.close();
System.out.println(\"\\nGata!\");
}
}


Exemplul 5. Crearea propriului server de Web.

Dorim să creăm propriul nostru server Web, capabil doar să răspundă cererilor de descărcare a unui fişier efectuate prin comanda GET.
Pentru o implementare corectă, trebuie spus că la transmiterea unei comenzi GET, după această comandă şi până la linia vidă, vor mai fi transmise şi alte comenzi, care nu vor fi descrise aici. Mai precis, vom proceda astfel: vom ignora liniile de text vide ce preced comanda GET, vom citi informaţiile din această comandă şi le vom prelucra corespunzător, iar apoi vom ignora liniile până la şi inclusiv linia vidă.


import java.io.*; import java.net.*;
import java.util.*; // for StringTokenizer

class HTTPServer {
public static void main(String[] s) throws IOException {
ServerSocket ss = null; Socket cs = null; String line;
DataOutputStream os = null; DataInputStream is = null;
ss = new ServerSocket(8080);
System.out.println(\"The server is ready\");
cs = ss.accept();
System.out.print(\"The client is connected. Command: \");
is = new DataInputStream(cs.getInputStream());
os = new DataOutputStream(cs.getOutputStream());

String message = null, file = null;
try {
while ( (message = is.readLine()) != null) {
if (message.equals(\"\")) break;
System.out.println(message);
StringTokenizer t = new StringTokenizer(message);
String token = t.nextToken();
System.out.println(token);
if (token.equals(\"GET\")) file = t.nextToken();
System.out.println(file);
}
}
catch(IOException e) { System.out.println(\"Error\"); }

int c;
try {
FileInputStream f = new FileInputStream(file);
while( (c=f.read()) != -1) os.write(c);
os.write(-1); f.close();
cs.close(); is.close(); os.close();
}
catch(IOException e) { System.out.println(\"Eroare file cerut\"); }
}
}

download referatul Clasa URL si exemple Java
0 note
Vizualizari:3710
Dowload:250

Comentarii




Message from wvcsbxh
01-16-2012
reply
lH8l2h <a href="http://ukktirybston.com/">ukktirybston</a>, [url=http://bumooueyqpxj.com/]bumooueyqpxj[/url], [link=http://ulqnrgnlthyi.com/]ulqnrgnlthyi[/link], http://wpujfrxdmtql.com/
Message from Gratieptopord
11-23-2011
reply
who thinks that - DGG better to rest in the winter? <a href= http://viagravillage.com/ >v i a g r a from canada</a>
Message from lymnrigomoins
11-03-2011
reply
Which came first? chicken or the egg
Message from gtrzxbmbmf
11-03-2011
reply
8RUqE8 <a href="http://pxzntnnndgbs.com/">pxzntnnndgbs</a>, [url=http://occwepzdujpu.com/]occwepzdujpu[/url], [link=http://bqaropbmpflz.com/]bqaropbmpflz[/link], http://lidusbgxwnqs.com/