GİRİŞ..........................1
Halûk Gümüşkayanın Gözüyle Kitabın
Tarihçesi
Ömer Boyacının Gözüyle Kitabın
Tarihçesi
Kitabın Yapısı ve Konular
Internet
Desteği
KISIM
1: JAVA AĞ PROGRAMCILIĞININ TEMELLERİ
Bölüm 1: Java'ya Giriş...........................11
1.1. Giriş
1.2. Java
1.2.1. Javanın Temel Özellikleri
1.3. Web Programlama Dili Olarak Java
1.4. Uygulama Programlama Dili Olarak
Java
1.5. Elektronik Cihazlar Dili Olarak
Java
1.6. Gelişmekte Olan Yeni Özellikler
1.7. Özet
Sorular
Bölüm
2: Java Programlama Dili.................................21
2.1. Giriş
2.2. Derlenen, Yorumlanan Diller ve
Java
2.3. Java ile Program Geliştirmeye
Giriş
2.3.1. Java Platformunun İndirilmesi
ve Kurulması
2.3.2. Bir Programın Derlenmesi ve
Çalıştırılması
2.3.3. GUI Tabanlı Bir Java Programı
2.3.4. Metot ve Değişkenlerin
Kullanımı
2.3.5. Tümleşik Geliştirme Ortamları
(IDEler)
2.4. Temel Java Bileşenleri
2.4.1. Java API
2.4.2. Temel Veri Tipleri
2.4.3. Aritmetik Operatörler
2.4.4. Kontrol Yapıları
2.4.5. Dizi (Array) Veri Yapısı
2.4.6. Dinamik Dizi (Vector) Veri
Yapısı
2.5. Java ile Nesne-Yönelimli
Programcılık
2.5.1. OOPnin Özellikleri ve
Faydaları
2.5.2. Sınıf (Class)
ve Nesne (Object) Yapısı
2.5.3. Program Değişkenleri
2.5.4. Kurucu Metot: Constructor
2.5.5. Metot Tanımlama ve Sonuç
Döndürme
2.5.6. Metotlara Çok İşlev Yükleme: Overloading
2.5.7. Sınıf Türetme
2.5.8. Soyutlama ve Paketleme
2.5.9. Çok Şekillilik
2.5.10. Statik Değişkenler ve Metotlar
2.5.11. Nesne-Yönelimli Tasarlanmış
Bir Yazılım
2.6. Özet
Kaynaklar
Kitaplar
Internet
Sorular
Bölüm
3: Bilgisayar Ağları ve TCP/IP........................89
3.1. Giriş
3.2. Internet ve Bilgisayar Ağları
3.2.1. Internet
3.2.2. Haberleşme ve Bilgisayar Ağları
3.2.2. LAN ve WAN Cihazları
3.2.3. Geniş Alan Ağları
3.2.4. Yerel Alan Ağları
3.3. Protokol Katmanları ve Açık Sistem
Mimarisi
3.3.1. Protokol Katmanları
3.3.2. Açık Sistem
3.4. Ağ Protokol Katmanları
3.4.1. Katmanlı Ağ Modelinin Faydaları
3.4.2. Uygulama (Application) Katmanı
3.4.3. Sunum (Presentation)
Katmanı
3.4.4. Oturum (Session) Katmanı
3.4.5. Aktarım (Transport) Katmanı
3.4.6. Ağ (Network) Katmanı
3.4.7. Veri Bağı (Data Link) Katmanı
3.4.8. Fiziksel (Physical) Katman
3.4.9. Ağ Cihazları ve Katmanlar
3.5. TCP/IP Protokol Katmanları
3.5.1. TCP/IP Katmanları
3.6. Internet Protokol Adresi
3.6.1. IP Adres Hiyerarşisi
3.6.2. IP Adres Sınıfları
3.6.3. Bir Adresleme Örneği
3.6.4. Özel IP Adresleri
3.6.5. Yönlendiriciler ve IP Adresleme
3.6.6. IP Adresleri için Yetkili
Kurumlar
3.7. Temel TCP/IP Protokolleri
3.7.1. Ağ Seviyesindeki Protokoller
3.7.2. Aktarım Seviyesindeki
Protokoller
3.7.3. Uygulama Seviyesindeki
Protokoller
3.8. Gelecek: IPv6
3.9. RFC Dokümanları
3.10. Özet
Kaynaklar
Kitaplar
Sorular
Bölüm
4: Temel Web Kavramları ve Teknolojileri....................137
4.1. Giriş
4.2. Web Kaynakları ve URL
4.3. Internet Sunucuları ve
İstemcileri
4.3.1. Web Sunucuları ve Tarayıcıları
4.3.2. FTP Sunucuları ve İstemcileri
4.3.3. Akıcı Ortam (Streaming Media)
Programları
4.4. Protokoller ve Standartlar
4.4.1. HTTP
4.4.2. MIME
4.5. Web Teknolojileri
4.5.1. HTML
4.5.2. XML ve XHTML
4.5.3. CGI 146
4.5.4. Dinamik Sunucu Sayfaları
4.6. Java ile Web Programcılığı
4.7. Özet
Kaynaklar
Kitaplar
Internet
Sorular
Bölüm 5: Applet'ler ile Web Programcılığına Giriş......................155
5.1. Giriş
5.2. Applet Yazılması ve
Çalıştırılması
5.3. Bir HTML Dosyasına Applet
Yerleştirmek
5.3.1. HTML Java Uzantıları
5.4. Appletlerin Ağdaki Yolculuğu ve
Güvenlik
5.4.1. Appletler Sunucudan Nasıl
Gelir?
5.4.2. Applet Güvenliği
5.5. Bir Applet Uygulaması
5.6. Appletlerden Internet
Kaynaklarına Erişim
5.6.1 URL Sınıfı
5.6.2. Ses Dosyalarını Yükleme ve
Çalma
5.6.3. Resim Dosyalarını Yükleme ve
Gösterme
5.7. Bulmaca Appleti: Puzzle Light
5.8. Puzzle
5.9. Java Plug-in
5.10. Özet
Kaynaklar
Internet
Sorular
Bölüm 6: Ağ Yazılımları Haberleşme Modelleri...........................187
6.1. Giriş
6.2. Temel Haberleşme Yapıları
6.2.1. Gönderme ve Alma İşlemleri
6.2.2. Temel Haberleşme Modelleri ve
Teknolojileri
6.3. İstemci/Sunucu Haberleşme Modeli
6.3.1. Sunum, İşleme ve Saklama
6.3.2. İstemciler ve Sunucular
6.3.3. Ardışıl Bağlantılı Sunucu (TCP)
6.3.4. Eşzamanlı Bağlantılı Sunucu
(TCP)
6.3.5. Ardışıl Bağlantısız Sunucu
(UDP)
6.3.6. İstemci/Sunucu Programcılığı
İçin Java
6.4. Grup Multicast Haberleşme Modeli
6.5. P2P Haberleşme Modeli
6.6. Gezgin Etmen Haberleşme Modeli
6.7. İstemci ve Sunucularda Bazı
Kavramlar
6.7.1. İstemci/Sunucu Katmanları
6.7.2. İstemci ve Sunucu Bağlantıları
6.7.3. Güvenlik
6.7.4. İstemci Yazılımında Standartlar
6.7.5. Durumlu ve Durumsuz Sunucula
6.8. İstemci/Sunucu Yazılımında
Eşzamanlı İşleme
6.9. Özet
Kaynaklar
Kitaplar
Sorular
Bölüm 7: Java Thread'leri ve Çok-Thread'li
Yazılım Tasarımı.........................209
7.1. Giriş
7.2. Proses ve Thread Kavramlarına
Giriş
7.3. Çok-Prosesli ve Çok-Threadli
Programlar
7.3.1. Çok-Proseslilik ve
Çok-Threadlilik
7.3.2. CPU ve Giriş/Çıkış Yoğunluklu
Uygulamalar
7.3.3. Eşzamanlılık ve Paralellik
7.3.4. Çok-Proseslilik ve Javada
Çok-Threadlilik
7.3.5. Çok Görevliliğe Niçin Gerek
Duyurulur
7.4. Java Thread
Yapısı
7.4.1. Thread Oluşturma
7.4.2. Thread
Sınıfının Kurucu Metotları
7.4.3. Deamon Threadleri
7.4.4. Thread Kullanımına Bir Örnek: WebMaster
7.5. Bir Threadin Hayat Çevrimindeki
Durumlar
7.5.1. Thread Doğuşu
7.5.2. Yürütülebilir
7.5.3. Yürütülüyor
7.5.4. Yürütülemez
7.5.5. Ölü
7.5.6. Thread Durumları İçin Örnek
Program
7.6. Thread Yürütmesinde Sıralama ve
Öncelik
7.6.1. Görev Sıralama
7.6.2. Bencil Thread Davranışı
7.8. Çok-Threadli Programlar
7.8.1. Threadleri Senkronize Etmek
7.8.2. Ölümcül Kilitlenme (Deadlock)
Durumu
7.8.3. Üretici-Tüketici Yaklaşımı ile WebMaster
8.7. Özet
Kaynaklar
Kitaplar
Internet
Sorular
Bölüm 8: Ağ Programlarının Yapı Blokları: Java
Streamler...............................259
8.1. Giriş
8.2. Haberleşme Kanalları ve Streamler
8.3. Streamlerin Temel Özellikleri
8.4. Veri Tipine Göre Stream Çeşitleri
8.4.1. Byte Streamler
8.4.2. Karakter Streamler
8.4.3. Stream Süper Sınıflarının
Karşılaştırması
8.4.4. İstisnalar (Exceptions)
8.5. Veri Kaynağı Streamleri
8.5.1. Dosya (File) Streamleri
8.5.2. Veri Hattı (Pipe) Streamleri
8.5.3. Hafıza Streamleri
8.6. Veri İşleme Streamleri
8.6.1. DataOutput ve DataInput
Streamler
8.6.2. Tamponlu Streamler
8.6.3. Sıkıştırma Streamleri
8.7. Nesne Serileme
8.8. File Sınıfı
8.9. Karakter Dizisini Bileşenlerine Ayırmak
8.10. RandomAccessFile Sınıfı
8.11. Özet
Kaynaklar
Kitaplar
Internet
Sorular
KISIM
2: JAVA AĞ PROGRAMLARININ TEMEL YAPILARI
Bölüm 9: Java Ağ Paketi ve Yüksek Seviyeli Sınıflar
ile Ağ Programcılığına Giriş.........305
9.1. Giriş
9.2. Java Ağ Paketi
9.3. InetAddress Sınıfı
9.3.1. Yeni InetAddress Nesnesi
Oluşturmak
9.3.2. InetAddress Alanlarına Erişim
9.4. Web İçin Yüksek Seviyeli Sınıflar
ve APIler
9.5. URL Sınıfı ile Web Verisine
Erişim
9.5.1. Bir URL Oluşturmak
9.5.2. Bir Java Ortamında Desteklenen
Protokoller
9.5.3. Bir URLyi Bileşenlerine
Ayırmak
9.6. Bir Appletin bir Web Sayfasını
Yüklemesi
9.7. Bir URLden Doğrudan Okuma
9.8. Basit Bir Web Tarayıcısı
9.9. URL Sınıfı ile Dosya İndirme
9.10. URLConnection Kullanarak
Haberleşme
9.10.1. Bir URLConnectiondan Okuma
9.10.2. Bir URLConnectiona Yazma
9.11. GET ile Bir Sorgulama
Gerçekleştirme
9.11.1. URLEncoder Sınıfı
9.12. URLConnection ile Sunucuya Yazma
9.13. JavaMail API
9.13.1. E-Posta Gönderme
9.13.2. E-Posta Alma
9.14. Özet
Kaynaklar
Kitaplar
Internet
Sorular
Bölüm 10: TCP Soket Programcılığı....................................357
10.1. Giriş
10.2. Soket Nedir?
10.3. Socket Sınıfı
10.3.1. Soket Oluşturma: Soket Kurucu Metotları
10.3.2. Soket Bilgilerinin Alınması
10.3.3. Soketten Okuma
10.3.4. Sokete Yazma
10.3.5. Soketten Okuma ve Sokete Yazma
10.3.6. Açılan Soketi Kapatmak
10.3.7. Bir HTTP Sunucusuyla Haberleşmek
10.4. Sunucu Soketi
10.4.1. Sunucu Soketi Oluşturma
10.4.2. Bağlantıları Kabul Etme ve Kapatma
10.4.3. İstemci ile Haberleşme
10.5. Sıralı Bağlantılı Sunucu
10.5.1. Basit Bir İstemci/Sunucu Uygulaması
10.5.2. HTTP İstekleri
10.5.3. Sıralı Bağlantılı HTTP Sunucusu
10.6. Eşzamanlı Bağlantılı Sunucu
10.6.1. Inetd veya Benzeri Yapılar İle Eşzamanlılık
10.6.2. Sunucuda Oluşturulan Eşzamanlılık
10.6.3. Sunucu Çeşitlerini Karşılaştırma
10.6.4. Eşzamanlı İstemci/Sunucu Uygulaması
10.6.5. Eşzamanlı HTTP Sunucusu
10.7. Soket Ayarları
10.7.1. Socket Ayarları
10.7.2. ServerSocket Ayarları
10.8. Chat Uygulaması
10.9. Özet
Kaynaklar
Kitaplar
Internet
Sorular
Bölüm 11: UDP Soket Programcılığı.................................427
11.1. Giriş
11.2. UDP Datagram
11.3. TCP ve UDP Karşılaştırması
11.4. UDP Uygulama Alanları
11.5. Javada UDP Desteği
11.6. DatagramPacket Sınıfı
11.6.1. DatagramPacket Oluşturma
11.6.2. DatagramPacket Metotları
11.7. DatagramSocket Sınıfı
11.7.1. DatagramSocket Oluşturma
11.7.2. DatagramSocket Metotları
11.8. UDP Datagram Gönderme ve Alma
11.8.1. UDP Datagram Gönderme
11.8.2. UDP Datagram Alma
11.9. UDP Tabanlı İstemci/Sunucu
Tasarımı
11.10. UDP Uygulamaları
11.10.1. UDPCalc Sunucu ve İstemcisi
11.10.2. DatagramBomber Sunucu ve
İstemcisi
11.11. Özet
Kaynaklar
Kitaplar
Internet
Sorular
Bölüm 12: Multicast Haberleşme Modeli ve
Programcılığı.....................453
12.1. Giriş
12.2. Unicast ve Multicast
Karşılaştırması
12.3. Multicasting
12.3.1. Multicast Haberleşme için IP
Adresleme
12.3.2. Multicast Haberleşme ve UDP
12.3.3. Multicast Oturumuna Katılım ve
Ayrılma
12.3.4. IP Başlığındaki TimeToLive
Değeri
12.4. Multicast Uygulama Alanları
12.5. MBONE
12.6. MulticastSocket Sınıfı
12.6.1. Multicast Mesajları Gönderme
ve Alma
12.6.2. Multicast Tabanlı Hesap
Makinesi
12.7. Tünelleme (Tunneling) Tekniği
12.8. Özet
Sorular
KISIM
3: AĞ VERİSİ VE DAĞITIK NESNELER
Bölüm 13: JDBC ile Ağ Verisine Erişim..............................475
13.1. Giriş
13.2. Veritabanı ve SQL Temelleri
13.2.1. İlişkisel Veritabanları
13.2.2. DBMS Veritabanı Yönetim
Sistemleri
13.2.3. SQL-Yapısal Sorgu Dili
13.3. Veritabanı Bağlantısının
Kurulması
13.3.1. MS Access Kurulumu ve Ayarları
13.3.2. MySQL Kurulumu ve Ayarları
13.4. JDBCnin Temel Özellikleri
13.4.1. JDBC Sürücüleri
13.5. JDBC Sınıflarına Genel Bir Bakış
13.6. JDBCnin Kullanım Adımları
13.6.1. Bir JDBC Uygulamasının Yapısı
13.6.2. Ön İşlemler ve Veritabanına
Bağlanma
13.6.3. SQL Sorgulaması Yürütme
13.6.4. Bir ResultSeti İşleme
13.6.5. Basit Bir Veritabanı
Uygulaması
13.6.6. Bir Update İşlemi Yürütme
13.6.7. Veritabanına Erişim Sınıfı
13.6.8. Metadataya Erişim
13.6.9. PreparedStatement
13.7. İstemci/Sunucu JDBC Modelleri
13.7.1. 2-Katmanlı JDBC Modeli
13.7.2. 3-Katmanlı JDBC Modeli
13.8. JDBC Uygulamaları
13.8.1. JDBC ve SQL ile Tablo
Oluşturma
13.8.2. JDBC ve SQL ile Tablo Silme
13.8.3. JDBC ve SQL ile Kayıt Ekleme
13.8.4. GUI Tabanlı Tablo Göstericisi
13.9. Özet
Kaynaklar
Kitaplar
Internet
Sorular
Bölüm 14: RMI ile Dağıtık Uygulamalar........ 521
14.1. Giriş
14.2. RMI Sistem Mimarisi
14.2.1. Uzak Nesne ve Arabirimi
14.2.2. RMI Registry
14.2.3. Güvenlik
14.2.2. RMI Sistemindeki Mimari
Detaylar
14.3. Parametre Geçirme ve Nesne
Serileme
14.4. Bir RMI Uygulaması
Geliştirmedeki Adımlar
14.5. RMI Tabanlı Rezervasyon Sistemi
Tasarımı
14.6. RMI Tabanlı P2P Chat Programı
14.7. RMI Tabanlı JDBC Uygulaması
14.8. Özet
Kaynaklar
Kitaplar
Internet
Sorular
KISIM
4: JAVA WEB PROGRAMCILIĞI
Bölüm 15: Java Web Programcılığı..............................579
15.1. Giriş
15.2. Web Programcılığına Giriş
5.2.1. Scriptler
15.2.2. CGI Teknolojisi
15.2.3. Appletler
15.2.4. ASP ve PHP
15.3. Java Web Programcılığına Genel
Bir Bakış
15.3.1. Applet Teknolojisi
15.3.2. Servlet Teknolojisi
15.3.3. JSP Teknolojisi
15.4. Java Web Uygulamalarında
Teknoloji Seçimi
15.4. Ağ Uygulamalarının
Karşılaştırılması
15.5. Özet
Bölüm 16: Servletler ile Web Programcılığı....................589
16.1. Giriş
16.2. Servlet Programcılığına Giriş
16.2.1.
Servlet Nasıl Çalışır?
16.2.2. Servlet Nasıl Çalıştırılır?
16.2.3. Basit Bir
Servlet Uygulaması
16.2.4.
Servlet Uygulamalarının Dağıtımı
16.3. Servlet API
16.3.1. Servlet Arabirimi ve Bir Servletin Yaşamı
16.3.2. Basit Bir Servlet Örneği
16.3.3. HttpServlet Sınıfı
16.3.4. HttpServletRequest Arabirimi
16.3.5. HttpServletResponse Arabirimi
16.3.6. Basit Bir HttpServlet
Uygulaması
16.4. Bağlantı Oturum Takibi
16.4.1. İstemci Makinesine Cookie
Gönderme
16.4.2. HttpSession ile Oturum Takibi
16.5. Servletler ile JDBC Uygulaması
16.6. Özet
Kaynaklar
Kitaplar
Internet
Sorular
Bölüm
17: JSP ile Web Programcılığı..........................631
17.1. Giriş
17.2. JSP Programcılığına Giriş
17.2.1. JSP Sayfasının Yapısı
17.2.2. JSP Sayfasından Otomatik Servlet Üretimi
17.3. Dahili JSP Nesneleri
17.4. JSP Bileşenleri
17.4.1. Direktifler (Directives)
17.4.2. Tanımlamalar (Declarations)
17.4.3. İfadeler (Expressions)
17.4.4. Kod Parçaları (Scriptlets)
17.4.5. Yorumlar (Comments)
17.4.6. Aksiyonlar (Actions)
17.5. JSP ile JavaBeanlerin Kullanımı
17.5.1. JavaBeanler
17.5.2. JSP Aksiyonları ile JavaBean
Kullanımı
17.6. Alan (Scope) Kullanımı
17.7. JSP ile JDBC Bağlantısı ve Form
İşleme
17.9. Özet
Kaynaklar
Kitaplar
Internet
Sorular
KISIM
5: EKLER
EK A: UML........................681
A.1. Giriş
A.2. UML ile Nesne-Yönelimli Yazılım
Geliştirme
A.3. UML Diyagramları
A.3.1. Kullanım Hali (Use Case)
Diyagramı
A.3.2. Sınıf (Class) Diyagramı
A.3.3. Nesne (Object)
Diyagramı
A.3.4. Sıra (Sequence) Diyagramı
A.3.5. Ortaklık (Collaboration)
Diyagramı
EK B: SEMBOLLER..................................689
EK C: TÜRKÇE İNGİLİZCE SÖZLÜK...................................693
EK D: KAYNAKLAR................................697
D1. Java
D1.1. Programcılığa Java ile Giriş
D1.2. İleri Java
D1.3. Java ile Nesneye Yönelik
Programcılık
D1.4. Java El Kitapları
D1.5. Java AWT, Swing, JFC, Java
Grafik ve GUI
D1.6. Java ile Veri Yapıları ve
Algoritmalar
D1.7. Thread
Programcılığı ve İşletim Sistemleri
D1.8. Java Ağ Programcılığı
D1.9. JDBC
D1.10. RMI, CORBA ve Dağıtık Nesneler
D1.11. Java Enterprise
D1.12. Servletler, JSP ve Web
Programcılığı
D1.13. Java ve Güvenlik
D1.14. Jini
D2. Bilgisayar Ağları ve TCP/IP
D3. UML, Nesne Yönelimli Analiz ve
Tasarım