Czego sił nauczymy? Podstawowe pojł cia Adresowania w Internecie URL CGI Servlety i JSP Sokety Sokety dla aplikacji serwerowych UDP Obsóuga XMLa z poziomu Javy z wykorzystaniem interfejso w SAX i DOM WebServices, poro wananie z.net Nowe aspekty niskopoziomowego programowania sieciowego w Javie 1.4 Hosty Adresowanie Internetowe Porty Protokoóy 1 2 Pojł cia hosta Adresowanie Internetowe Urzćdzenia przypił te do sieci Internet bł dziemy nazywac hostem W wił kszosci przypadko w hostem jest komputer. Hostem moze byc ro wniez ruter, drukarka, faks, telefon komo rkowy a nawet ekspres do kawy Kazdy host jest adresowany za pomocć unikalnego 4 bajtowego adresu IP (Internet Protocol) Adres IP zapisany jest z kropkami np.. 192.168.1.1, gdzie kazdy bajt przyjmuje wartosci z zakresu 0 do 255 Istnieje 2 32 adreso w, kto re nieszczłsliwie sćńle zarzćdzane 3 4
Nazwy domenowe (DNS) DNS (Domain name System) pozwala na mapowanie adreso w numerycznych na postac www.firma.com lub www.organizacja.org Kazde odwoóanie do adresu domenowego kon czy sił wykonaniem oprogramowania zamieniajćcego ten adres na jego postac IP Serwery DNS sćpoóćczone ze sobćtworzćc siec drzewiastć Klasa InetAddress java.net.inetaddress to klasa reprezentujćca adres IP Dokonuje ona konwersji adresu numerycznego na nazwł hosta i na odwro t Jest uzywana przez inne klasy jak Socket i ServerSocket do identyfikacji hosto w 5 6 Metoda fabrykujćca getbyname() public static InetAdress getbyname(string host) throws UnknownHostException public static InetAdress[] getallbyname(string host) throws UnknownHostException public static InetAdress getlocalhost() throws UnknownHostException Uzyteczne metody Metody pobierajćce Metody narzł dziowe Tworzenie obiekto w InetAddress 7 8
Porty Protokoóy Porty pozwalajćna jednym hoscie uruchomic do 65536 niezaleznych poóćczen Wił kszosc standardowych usóug jest zwićzana z tzw. dobrze znanymi portami np.: www to 80 port Protokoó definiuje jak dwa hosty rozmawiajć ze sobć Protokoó daytimeś RFC 867 okresla postac ASCII czasu, zrozumiaóe dla czóowieka Protokoó timeś RFC 868 okresla postac binarnćczasu, zrozumiaóe przez komputery Sćtysićce protokoóo w kto re sćstandardami przemysóowymi lub luńnymi rozwićzaniami 9 10 Dokumenty IETF RFC Standardy W3C Requests For Comment Te dokumenty okreslajćjak dziaóa Internet Posiadajćroznorodny poziom statusu od uniewaznionych (obsolete), przez wymagana (required) do informacyjnych (informational) TCP/IP, telnet, SMTP, MIME, HTTP, i wiele innych http://www.faqs.org/rfc/ IETF jest oparty na wzglł dnym konsensusie i tworzonych implementacjach W3C stara sił tworzyc standardy niezalezne od implementacji IETF jest nieformalnćorganizacjćotwartćna uczestnictwo dowolnego podmiotu W3C jest konsorcjum otwartym tylko dla firm 11 12
Jakie standardy W3C URL HTTP, HTML, XML, RDF, MathML, SMIL, P3P 13 URL jest skro tem od Uniform Resource Locator, pozwala na identyfikowanie zasobo w w sieci Internet Przykóadowe URLe http://java.sun.com/ file:///macintosh%20hd/java/docs/jdk%201.1.1%20docs/api/ java.net.inetaddress.html#_top_ http://www.macintouch.com:80/newsrecent.shtml ftp://ftp.info.apple.com/pub/ mailto:elharo@metalab.unc.edu telnet://utopia.poly.edu ftp://mp3:mp3@138.247.121.61:21000/c%3a/stuff/mp3/ http://elharo@java.oreilly.com/ http://metalab.unc.edu/nywc/comps.phtml?category=choral+ Works 14 Elementy skóadowe URL Klasa java.net.url Protokoó Autoryzacja - informacje o uzytkowniku (login, hasóo) - adres i nazwa hosta - numer portu Sciezka (plik) Odsyóacz (sekcja, link na stronie) Cićg znako w zapytania (query string) Obiekt klasy URL reprezentuje URLe Klasa URL zawiera metody sóuzćce - tworzeniu nowego URLa - parsowaniu roznych człsci URLa - pobraniu strumienia wejsciowego z URL tak, ze mozna czytac dane z serwera - pobraniu zawartosciś serwera jako obiekt Javy 15 16
Content and Protocol Handlers Wyjćtki i wspierane protokoóy Uchwyt do protokoóu i zawartosci pozwala na rozdzielenie danych od protokoóu, kto ry je przesyóa Zarzćdca protokoóu negocjuje z serwerem i prasuje nagóo wki. Przekazuje zarzćdcy danych wóasciwe dane odwoóywanych zasobo w Zarzćdca zawartosci zamienia otrzymane bajty w obiekty Javy takie jak InputStream lub ImageProducer Kiedy VM tworzy nowy obiekt URL poszukiwany jest zarzćdca protokoóu Jezeli takiego sił nie odnajdzie wywoóywany jest wyjćtek MalformedURLExc eption Dokóadna liczba wspieranych protokoóo w zalezy od wersji Javy file ftp gopher http mailto 17 18 Jakie konstruktory URL Tworzenie obiektu URL Ponizej pokazano dostł pnych konstruktory (J2SDK 1.4) Przykóad tworzenia obiektu URL dla adresu http://www.w3c.org/help/siteindex#xml 19 20
Wzglł dny URL Parsowanie URLa Takie adresowanie pozwala na zmianł wskazywanego zasobu w ramach danej witryny Bardzo uzyteczne w przypadku parsowania (przetwarzania zawartosci) URLa Pokazane metody pozwalajć wycićgnćc odpowiednie informacje z URLa W przypadku braku zćdanego fragmentu dostaniemy wyjćtek NullPointerException 21 22 Czytanie danych z URLa Webcat.java Metoda openstream()pozwala na podóćczenie do serwera wskazywanego przez URL i pobieranie danych z wykorzystaniem zwracanego obiektu InputStream Omijamy nagóo wki protokoóo w dostajemy tylko strumien danych Poniewaz poóćczenia sieciowe nie sćtak wydajne jak lokalne dla przyspieszenia przetwarzania danych mozna uzywac buforowac przypóywajćce dane z wykorzystaniem BufferedReader oraz BufferedInputStream 23 24