A Dan Z Ye...Java |
07-01-2010 | #1 |
Şengül Şirin
|
A Dan Z Ye...Java A dan Z yeJava
Java HTML de HTML de Java Bir applet hazırladığınızda, bunu bir HTML dökümanına yerleştirmelisiniz HTML 32 ile birlikte, Java appletlerin kullanılmasını sağlayan iki yeni eleman çıktı Bunlar APPLET ve PARAM Diğer HTML elemanları gibi bu iki elemanın da birçok özellikleri mevcuttur Fakat ideali, sadece gerekli olan özelliklerin kullanılmasıdır
__________________
Arkadaşlar, efendiler ve ey millet, iyi biliniz ki, Türkiye Cumhuriyeti şeyhler, dervişler, müritler, meczuplar memleketi olamaz En doğru, en hakiki tarikat, medeniyet tarikatıdır
|
APPLET Elemanının kullanılması |
07-01-2010 | #2 |
Şengül Şirin
|
APPLET Elemanının kullanılmasıAPPLET Elemanının kullanılması APPLET elemanı, HTML dökümanına yerleştirdiğiniz appletin tanımlanmasını ve özelliklerinin tanımlanmasını sağlar Her HTML elemanı gibi, APPLET elemanının da bir başlangıç tagı <APPLET> ve bitiş tagı </APPLET> vardır APPLET elemanı için gerekli olan özellikler: CODE, WIDTH ve HEIGHT'tir CODE özelliği kullanılacak appleti, WIDTH özelliği appletin genişliğini (pixel), HEIGHT özelliği ise appletin yüksekliğini (pixel) belirlemenizi sağlar Aşağıda gerekli olan özellikleri ile bir appletin HTML dökümanına bağlanmış şeklini görüyorsunuz <HTML> <HEAD> <TITLE> Maximum Bilgi </TITLE> </HEAD> <BODY> <APPLET CODE="maximumbilgiclass" WIDTH=300 HEIGHT=100> </APPLET> </BODY> </HTML> Yukarıdaki örnekte HTML dökümanı ve "maximumbilgiclass" adlı java appleti aynı dizinde bulunmalıdırlar Şayet java appleti farklı bir dizinde ise, opsiyonel CODEBASE özelliğini kullanmanız gerekir CODEBASE özelliği, appletin bulunduğu URL‘yi belirtmenizi sağlar Aşağıdaki örnek, yukarıdaki örneğin hemen hemen aynısıdır Tek farkı, java appleti başka bir dizinde bulunduğu varsayılarak CODEBASE özelliği kullanılmıştır <HTML> <HEAD> <TITLE> Maximum Bilgi </TITLE> </HEAD> <BODY> <APPLET CODE="maximumbilgiclass" CODEBASE=""http://wwwmaximumbilgicom/java/classlar/"" WIDTH=300 HEIGHT=100> </APPLET> </BODY> </HTML> Diğer opsiyonel özellikleri şöyle sıralayabiliriz: ALIGN Appletin konumunu belirlemizi sağlar Alabileceği değerler ABSBOTTOM, ABSMIDDLE, BASELINE, BOTTOM, CENTER, LEFT, MIDDLE, RIGHT, TEXTTOP, TOP'tır HSPACE Appletin altında ve üstünde ne kadar boşluk bırakabileceğinizi belirleyebilirsiniz HSPACE‘e vereceğiniz değer, pixel olarak işlenir Örnek: HSPACE=10 VSPACE Appletin sağında ve solunda ne kadar boşluk bırakabileceğinizi belirleyebilirsiniz VSPACE‘e vereceğiniz değer pixel olarak işlenir Örnek: VSPACE=20 ALT Appletleri gösteremeyen browserlarda, appletin yerine alternatif bir yazı çıkmasını sağlayabilirsiniz NAME Applete bir isim vermenizi sağlar |
PARAM Elemanının kullanılması |
07-01-2010 | #3 |
Şengül Şirin
|
PARAM Elemanının kullanılmasıPARAM Elemanının kullanılması PARAM elemanı ile applete parametre gönderebilirsiniz PARAM elemanının sadece başlangıç tagı vardır: <PARAM> Applete göndermek istediğiniz her parametre için bir <PARAM> tagı kullanmalısınız PARAM taglarını başlangıç tagı <APPLET> ile bitiş tagı </APPLET> arasına yerleştirmelisiniz Appletler, <PARAM> tagında belirtilen parametrelere "getparameter()" metodu ile ulaşırlar <PARAM> tagının gerekli iki özelliği vardır NAME ve VALUE NAME özelliği ile parametrenin adı belirtilir ki "getparameter" metodu ile bu isme göre aranır VALUE özelliği ise parametrenin değerini verir Aşağıda, applette kullanılacak resmi, parametre ile girilen bir HTML dökümanı örneği verilmiştir <HTML> <HEAD> <TITLE> Maximum Bilgi </TITLE> </HEAD> <BODY> <APPLET CODE="maximumbilgiclass" WIDTH=300 HEIGHT=100> <PARAM NAME=Resim VALUE="logogif" > </APPLET> </BODY> </HTML> Java appletinde, resim parametresinin değeri; Resim_logo=getparameter("Resim") komutu ile okunur |
Veri Tipleri |
07-01-2010 | #4 |
Şengül Şirin
|
Veri TipleriVeri Tipleri Java'da her şey bir nesnedir Tek istisna veri tipleridir Java veri tipleri, bütün platformlarda standart büyüklüğe sahiptir Bu standart Java'nın taşınabilirliğini sağlıyor Aşağıda Java'da bulunan veri tipleri ve büyüklükleri listelenmiştir Veri tipi Büyüklük byte 8-bit short 16-bit int 32-bit long 64-bit float 32-bit kayan nokta double 64-bit kayan nokta char 16-bit Unicode Eğer C/C++ programcısı iseniz "unsigned" tipinin olmadığı dikkatinizi çekmiştir Byte tipi ise C/C++'daki "char" tipinin yerini almıştır Java'daki char tipi 16 bittir Çünkü Java karakter verisinde Unicode karakter setini temel alır Unicode, uluslararası karakterleri destekleyen bir standarttır Programlarınızın değişik platformlarda ve ülkelerde çalıştırılacağında Unicode çok uygundur Yukarıdaki tabloda olmayan diğer bir veri tipi ise boolean'dır Bir boolean, değişken numerik değere çevrilemez ve sadece iki değer alabilir Bu değerler "true" ve "false" tur |
Literaller |
07-01-2010 | #5 |
Şengül Şirin
|
LiterallerLiteraller Literaller, değişkenlere değer atamak için kullanılır Integer'lara C/C++ benzer biçimde değer atanır 25 gibi tamsayı atayabilirsiniz Hexadecimal bir tamsayı atamak için, sayının önüne "0x" ifadesi koymanız gerekir Örneğin, 15 sayısını hexadecimal olarak 0xF şeklinde atamalısınız 8'lik tabanda bir sayı atamak için "0" ifadesini, sayının önüne koymalısınız Kayan noktalı sayıları ise direkt 52345 şeklinde atayabilirsiniz Bunlar 32 bit float veya 64 bit double olarak saklanabilirler Belirtmezseniz, varsayılan 64 bit double'dır Belirtmek için yapacağınız tek şey, sayının arkasına float için F, double için D koymaktır Örneğin 5323 F veya 5323 D Karakterler, tek tırnak içinde atanırlar Örneğin 'a'gibi Escape karakterleri için slash (\) kullanılır Bunlar da tırnak içinde belirtilir \t=tab, \n=satır atlama gibi Stringler için çift tırnak kullanılır "Maximum Bilgi" gibi Satır atlaması yapmak istiyorsanız "Maximum Bilgi \n" kullanmalısınız |
Cevap : A Dan Z Ye...Java |
07-01-2010 | #6 |
Şengül Şirin
|
Cevap : A Dan Z Ye...JavaDeğişkenler Java'da 3 tip değişken vardır: instance, class ve local Lokal değişkenler, metodların ve blokların içinde tanımlanabilirler Blok, "{" ile başlayan ve "}" ile biten ifadeler topluluğudur Blok içinde tanımlanan lokal değişkenler, blok sonuna kadar geçerlidir Genel formatı <tip> <değişken adı> şeklindedir Örneğin double tipinde pi adlı değişkeni tanımlayalım: double pi; bir değer de atayabilirdik: double pi=31415 Değişkenler; harf, sayı, dolar işareti, alt çizgi ile başlayıp bu karakterlerle devam edebilir Ama komutlar, operatörler değişken ismi olarak kullanılamazlar |
Açıklamalar |
07-01-2010 | #7 |
Şengül Şirin
|
AçıklamalarAçıklamalar Programlarınıza açıklama koymak için, Java'da kullanabileceğiniz iki stil vardır Birincisi çift slash ( // ) Çift slash'tan satır sonuna kadar olan kısımda bulunan her şey açıklama olarak kabul edilir İkincisi ise slash ve yıldız ( /*) ile başlar yıldız ve slash ile biter Bunlar arasındaki her şey, açıklama olarak kabul edilir Örnek 1: double pi; // pi değişkeni double olarak tanımlandı Örnek 1: /* Bu programın amacı sayısal loto tahmini yapmaktır |
Operatörler |
07-01-2010 | #8 |
Şengül Şirin
|
OperatörlerOperatörler Java'da bulunan operatörler aşağıdaki tabloda verilmiştir Kategori Operatör Aritmetik + - * / % İlişkisel < > >= <= == != && || Bit işlemeri & | ^ << >> >>> ~ &= |= ^= Artırma ++ Azaltma -- Aşağıda iki değişken tanımlanıp, bunlara değer atanıyor Daha sonra ise bu iki değişkenin içeriği toplanıyor: int x,y ; x= 3 ; y=4 ; int z=x+y ; Z 'nin değeri yedidir Operatörlerin öncelik sırası aşağıdaki tabloda gösterilmiştir [] () ++ - ! ~ * / % + - << >> >>> < > <= >= == != & ^ | && || = ve diğerleri Bit işlemleri |
Ayrılmış Kelimeler |
07-01-2010 | #9 |
Şengül Şirin
|
Ayrılmış KelimelerAyrılmış Kelimeler Aşağıdaki tabloda, Java'nın komutları olarak kullanılan kelimeler listelenmiştir Bu kelimeler, Java için ayrılmıştır Yani bu kelimeleri değişken ismi gibi şeyler için kullanamazsınız Bunlar sınıf tanımlaması, değişken tipi belirleme, koşul, döngü gibi işlemler için kullanılır Abstract boolean break byte byvalue case catch char class const continue default do double else extends false final finally float for goto if implements import instanceof int interface long native new null package private protected public return short static super switch synchronized this threadsafe throw transient true try void while alıntıdır |
Karşılaştırmalar |
07-01-2010 | #10 |
Şengül Şirin
|
KarşılaştırmalarKarşılaştırmalar Karşılaştırmalar, genelde bir karşılaştırmanın sonucuna göre belirtilen komut veya komutları çalıştırırlar Eğer birden fazla komut kullanılacak ise blok içinde olmalıdır Tek bir komut için buna gerek yoktur Örneğin; a değişkenin değerinin bir olup olmadığını kontrol ediyoruz Eğer a=1 ise a=2, değil ise a=1 Görüldüğü üzere karşılaştırma, boolean bir değer döndürmelidir Yani true (doğru) veya false (yanlış) değerini döndürmelidir ki bu değere göre işlenecek komutlar belirlenebilsin Java'da karşılaştırma yapmak için "ifelse" kullanılır Formatı şu şekildedir: if (karşılaştırma) { karşılaştırmanın sonucu doğru ise işlencek komutlar } else { karşılaştırmanın sonucu yanlış ise işlencek komutlar } Yukarıdaki örneği java formatında yazarsak : if (a==1) // Java'da = operatörü atama için kullanılır // Karşılaştırma için == operatörünü kullanılır a=2; else a=1; // Tek komut olduğu için blok içine alınmasına gerek yoktur Eğer birçok karşılaştırma varsa, iç içe karşılaştırmalar (if ) kullanılabilir Sonucu nümerik olan karşılaştırmalar için "switchcase" komutu kullanılır Bu komut, sadece nümerik değerler için kullanılır Formatı şu şekildedir: switch (değişken) { case 1: // değişkenin değeri 1 ise break; case 2:{ // değişkenin değeri 2 ise break; } default: // yukarıdaki değerler haricindeki değer ise break; } Döngüler Java 'da üç tane döngü işlemi vardır "for" döngüsünün yapısı aşağıdaki şekildedir for (ilk değer; test; değer artırma/azaltma) Bu yapıda görülen ilk değer ifadesi, değişkeninizin alacağı ilk değerdir Test ifadesinde ise basit veya kompleks bir karşılaştırma kullanabilrisiniz Değer arttırma veya azaltma ise değişkeninizin o anki değerini değiştirecek bir ifadedir "for" döngüsünü örnek kullanımı: for (sayac=0;sayac<3;sayac++) Bu örnekte, sayaç değişkenine ilk değer olarak sıfır verilmiş ve her döngüde bir arttırılması istenmiş Döngüden çıkma koşulu ise sayaç değişkeninin 3 ve daha yukarı değerleri olarak belirlenmiş Bu durumda sayaç değişkeni 0,1,2 değerleri için döngüye girecektir "for" döngüsünden sonra bir komut veya blok komutları gelebilir "while" döngüsünün yapısı şu şekildedir: while (test) Test ifadesi "for" döngüsündeki ile eşdeğerdir Örnek: sayac=0; while (sayac<3) { //komutlar sayac++; } "do" döngüsünün yapısı: do { //komutlar } while (test); "do" döngüsünün "while" döngüsünden farkı en az bir kere döngüye girmesidir Tüm döngülerde "break" komutu döngüden çıkılmasını, "continue" komutu ise bir sonraki değere geçmeyi sağlar |
Diziler |
07-01-2010 | #11 |
Şengül Şirin
|
DizilerDiziler Java'da diziler nesnedirler, C'deki gibi hafızada yer kaplayan pointer değillerdir Java 'da diziler, C 'ye göre daha güvenilirdir Dizilerin elemanlarına gelişigüzel değerler atayamazsınız Java, dizi elemanlarını sırasıyla kontrol eder Dolayısıyla arada değer atanmamış bir elemana rastlanırsa hata oluşur Bu da C'de çıkan hafıza bozulmalarını önler Java'da dizi kullanmak için ilk önce dizinin tipi verilir Tip verilirken dizinin büyüklüğü belirtilmez int numbers[]; // Integer diziler için String myStrings[]; // String diziler için Diğer metod ise tipin arkasına köşeli parantez koymaktır String[] myStrings; // String diziler için İkisi de tanımlamada aynıdır Her ikisi de kullanılabilir Size hangisi daha kolay geliyorsa onu kullanın Java dizileri örneklerden de görüldüğü üzere tüm veri tipleri için kullanılabilir Sonraki adım ise dizinin "new" operatörü kullanılarak yaratılmasında, bu adımda dizinin büyüklüğü de belirtilir int numbers[] = new int[5]; // 5 büyüklüğünde integer dizi String myStrings[] = new String[20]; // 20 büyüklüğünde string dizi Bu adımdan sonra diziler yaratılmış oldu Dizinin her bir elemanına varsayılan değer atanır Varsayılan değerler integer veri tipi için "0 (sıfır)", string veri tipi için "null" değeridir Dizi elemanlarına bu adımdan sonra değer atamak çok kolaydır C++ 'da olduğu gibi Java 'da da dizilerin elemanları sıfırdan başlayan tamsayı değerleridir Dizinin ilk elemanına değer atamak için: myStrings[0] = "ilk dizim"; numbers[0] = 10; Java'da bir dizinin eleman sayısını (büyüklüğü) bulmak için "length" metodu kullanılır Bu metodun döndürdüğü değer "int" tipindedir int boyut=numberslength // boyut=5 olur Java'da çok boyutlu diziler yoktur Fakat bu tür diziler dizi içinde dizi oluşturularak simüle edilebilir int k[][] = new int[5][4]; // 5-4 boyutunda bir dizi k[1][3] = 999; // Değer atama |
Bilgi Alma ve Yazdırma |
07-01-2010 | #12 |
Şengül Şirin
|
Bilgi Alma ve YazdırmaBilgi Alma ve Yazdırma Ekrandan bilgi almak için BufferReader sınıfını kullanacağız BufferReader giris=new BufferReader( new InputStreamReader (Systemin)); Bu sınıfın readLine() metodunu kullanarak bilgiyi alıyoruz: try { String girilen=girisreadLine(); } catch (IOException e ) { Systemoutprinln(e);} try-catch bloğu olası bir hatayı yakalamak için kullanılıyor Eğer bir hata oluşursa hatayı ekrana yazacak Şimdi de girileni yazdıralım Ekran birşey yazdırmak için Systemout sınıfının println metodunu kullanacağız : Systemoutprintln ("Girdiğiniz şey : " + girilen ); println metodu ekrana verilen parametredeki yazıyı yazdıktan sonra imleci bir alt satıra geçirir Şayet imlecin bir alt satıra geçmesini istemiyorsanız print metodunu kullanın Ama bu metodu kullandığınızda ekrana bilginin çıkması için akabinde flush metodunuda kullanmalısınız Şu şekilde : Systemoutprint("Ali "); Systemoutflush(); |
Java Sertifikası |
07-01-2010 | #13 |
Şengül Şirin
|
Java SertifikasıJava Sertifikası Java internet ortamına girdiğinde, javayı destekleyen browserlardaki buglar yüzünden çoğu kullanıcı java özelliğini kapatmak durumunda kalmıştı Günümüzde javanın güvenliği artmış durumda Bunda browserların buglarının azalmasının rolü olduğu gibi sertifika kavramınında büyük rolü vardır Sertikasız/İşaretsiz Appletler Neler Yapabilir? Kullanıcıların bilgisayarında istenmeyen işlemlerin yapılmasını engellemek için, her browserın güvenlik sınırlamaları vardır Bu güvenlik sınırlamasının türü browsera göre değişir Günümüzdeki browserların java appletlerin için aşağıdaki güvenlik sınırlamaları vardır: - Appletler kullanıcının bilgisayarından veri okumaz ve yazamazlar - Kullanıcının bilgisayarında program çalıştıramazlar - Ağ bağlantısı sadece appletin bulunduğu server ile kurulabilir - Sistem ayarlarını değiştiremezler Bu güvenlik sınırlamalarına bakıldığı zaman normal bir applet sadece grafik veya yazı gösterme, ses ve animasyon işlemlerini yapabilir Büyük işler için normal appletler uygun değildir ki küçük bir veri girişi dahi olamadan dişe dokunur uygulama yapmak mümkün değildir Sertifikalı ve İşaretli Nedi? Appletlerin web sayfalarını daha görsel hale getirmekten başka bir işe yaramadığı çabuk anlaşıldı Ama daha fazlasını; mesela kulanıcıdan bilgi almak ve yazmak; yapabilmek için güvenlik sınırlamalarını kaldırmak gerekiyordu Fakat bunun mümkün olduğu güvenli olması için, appletler yeni browserlar için işaretlenebiliyor Bunun için applet geliştiricisinin amacını belirten sertifaya ihtiyacı vardır Sertifa browser okuyabileceği şekilde açıktır ve geliştiricinin adını ve kontrol kodu içerir Bu sertifaka ile geliştirici appleti güvenli olarak işaretler Başka hiç kimse bu sertifikayı kullanarak bir appleti işaretletyemez Çünkü geliştirici appleti işaretlemek için sertifika ile birlikte verilen özel kodu kullanır Kullanıcı, appleti çalıştırdığında ( applet olan bir web sayfasını çağırdığında ) browser appletin işareti ile sertifikayı karşılaştırır Böylece appletin işareti sertifaka ile uyumlu ise çalıştırır Bu şu anlama geliyor: Doğru işaretli bir appletin geliştiricisini kullanıcı applet yüklenirken görür Ama sadece applet yüklenirken İşaretli Appletler Neler Yapabilir? İşaretli bir applet yüklendiğinde kullanıcının karşısına bir pencere gelir Bu pencerede sertifika hakkında bilgiler vardır ve kullanıcı onayı istenir Kullanıcı bu bilgiler ışığında appletin çalışmasına izin verir veya vermez Kullanıcının çalışmasını onaylamış bir applet normal programların yapabildiği her şeyi yapabilir Bu Durumdaki Güvenlik Buradaki problem onaylama işleminin ya hep ya hiç mantığında işlemesidir Bunun anlamı onayladığınız bir appletin gerçek amacının dışındaki verileride okuyabildiği veya istenmeyen bir yere veri yazabildiğidir Tam anlamıyla erişim haklarının belirlenmesi programcılara ağır geldiği için çoğu programcı tarafından yapılmıyor Yine de Microsoft ve Netscape'in browserları için erişim haklarının değişik şekilde belirlenmesi karşısında programcılar minimum düzeyde erişim hakkıyle yetiniyorlar İkinci bir problem ise sertifikanın gerçekliğidir Gerçek sertifikalar, programcı tarafından değil, programcının güvenilirliğine kefil olan şirketler tarafından oluşturulmuş sertifikalardır Bu şirtketler para karşılığında sertifika oluşturmaktadır Bir sertifika en az $200 başlayıp sertifikaya göre artmaktadır Programcı yıllık olarak $100 başlayan fiyatlarıda ödemek zorundadır Çoğu programcı için bu fiyatlar aşırı pahalı gelmektedir En azından herkes bedava kendi sertifasını oluşturabilir Fakat böyle bir sertifa, programcının gerçekte kim olduğunu ve amacının doğruluğunu belirtmez Hatta test sertifikaları diye anılanlar istenen herhangi bir isim ile oluşturulabilir Her ne kadar insanı korkutsada, bilinmeyen bir shareware programı denemekten daha güvenlidir Appleti onaylamak veya onaylamamak bizim elimizde değil mi? Sertika Şirketleri Gerçek sertifakalar sertifa şirketleri ( Certificate Authority kısa CA ) tarafından veriliyor Bu şirketler programncının yada şirketlerin amacını kontrol ettikten sonra sertifika veriyorlar En tanınmış sertifika şirketleri VeriSign, Thawte ve BelSign Her CA, vereceği sertifikaları kendi sertifikası altına tanımlar ki daha önceden güvenliğ belirlenmiş kendi sertifikaları gibi işlem grösünler CA'lar kendilerine ait sertifikaları daha önceden browserlara tanımlanmış ve kurulmuştur Maalesef bu şirketlerin verdikleri hizmetin bedeli yüksek Bir defaya mahsus ücret $200 dan başlıyor, yıllık ücretler ise 100$ dan Şuana kadar işaretli appletlerın yaygınlaşmamasının en büyük nedeni bu olsa gerek Test Setifikaları Test sertifikası herkes tarafından beş kuruş ödenmeden oluşturulabilen sertifikalardır Ama programcının amacını gerçek olarak ispatlamayan sertifikalar bunlar Bu sertifikalarda browsera göre değişiyor Bir Netscape ve birde Microsoft için oluşturmak gerekiyor Sun'ın HotJava browserına hiç girmeyeceğim burda, belki ileride onuda ele alırım Microsoft Browser İçin Test Sertifakası Microsoft browser sertifikası oluşturmak için, Microsoft'un sitesinden bedava indirebileceğiniz " Software Developer's Kit ( SDK) " e ihtiyacınız var Bu yazılım kitinin içindeki programların tek tek indirilememesi tabii ki çok kötü bir durum Bu kitin içindeki herhangi bir program için 20 MB büyüklüğündeki bu kiti indirmek zorunda kalıyorsunuz Ama bu kiti CD olarakta sipariş edebiliyorsunuz Bu kit ile gelen ingilizce dökümantasyon tam olarak okunmalı, nitekim olmazsa olmaz birçok önemli parametre mevcut Burada bu kitin içindeki DOS programlarıyla sertifika oluşturulmasını kısaca anlatmaya çalışacağım Bu sadece başlangıç için yardım niteliğindedir Gerisini dökümana bırakıyorum makecert ile Private/Public Key oluşturun Sertifika için gerekli olan cer uzantılı bir dosya oluşacaktır cerrt2spc ile sertifikayı oluşturun Birinci adımda oluşturduğunuz cer uzantılı dosyadan spc uzantılı bir dosya oluşturur cabarc ile class dosyalarınızı cab dosyası haline getirin Bu cab dosyası Internet Explorer tarafından indirilecek dosyadır Oluşturduğunuz cab dosyasını signcode ile işaretleyin Bu işlem sırasında oluşturduğunuz spc uzantılı dosyada kullanılacaktır Netscape Browser İçin Test Sertifakası Netscape programcıların işini biraz daha kolaylaştırmış Microsoft'a göre, sertifika için gerekli olan "Signtool" uğraşmadan indirebilecek ve Microsoft'un kitine göre daha kolay kullanımı var Signtool Win95 ve Unix sürümleri var Kısaca adımlar: • signtool ile Private ve Public Key oluşturmak için -G parametresini kullanın • Bu işlem ile x509cacert adlı bir dosya oluşacaktır • signtool ile class dosyalarınızı jar dosyası haline getirin Bu işlemleri batch dosyası ile de yapabilirsiniz |
JAVA plug-ın |
07-01-2010 | #14 |
Şengül Şirin
|
JAVA plug-ınJAVA PLUG-IN Bundan birkaç yıl önce Sun, HotJava adlı web browserı piyasaya çıkardı Sun'ın bu web browserı, Java'yı destekliyordu Buda içine java nesneleri gömülebilen uygulamaların ilk örneğini teşkil ediyordu Bunun ardından Netscape kendi web browserınada Java desteğini ekledi Ardından da MS Gün geçtikce Java'nın yeni sürümleri çıktı Bununla birlikte Netscape ve MS kendi ihtiyaçlarına uygun sınıf kütüphanelerini eklediler browserlarına Böylece her browserın kendine özel JVM ( Java Virtual Machine ) 'i oldu Dolayısıyla browserların içine gömülen JVM ile browserdan bağımsız olarak JVM 'i güncellemek imkansızdı Sun, herhangi bir ortamda Java'nın çalışabilmesi için gerekli olan her şeyi içeren ( Java VM ve sınıf kütüphaneleri ) JRE 'yi çıkardı Eğer JRE bilgisayarınızda yüklüyse, herhangi bir uygulamaya ( örneğin browser ) gömülmüş java nesneleri çalışabiyor Sorun, browserların sadece kendi JVM lerine bakmaları ve makinada yüklü olan JRE 'ye ulaşmak için bir mekanizmaya sahip olmamalarıydı Sun olaya el attı : Java Plug-In Sun'ın geliştirdiği Java Plug-In, JRE 'ye HTML sayfalarından browserı kullanarak ulaşmak için bir mekanizma Java Plug-In, Sun'ın web sitesinden bedavaya indirilebiliyor Sayfaya girildiğinde, istenen java sürümü kullanıcının makinasında yüklü değilse, kullanıcı Java Plug-In sayfasına yönlendirilir Java Plug-In, Netscape'de plug-in olarak, IE 'de ise ActiveX Control olarak otomatik yüklenir Java Plug-In Kullanmak Java Plug-In, Netscape'de EMBED, IE 'de ise OBJECT tagı sayesinde kullanılabilir MIME tipi ile istenen java sürümünü belirtmelisiniz Örneğin Java 12 sürümünün özelliklerini kullanan bir appletiniz varsa, MIME tipinde bunu belirterek appletinizin doğru çalışmasını sağlarsınız |
Java Plug-In Kullanmak |
07-01-2010 | #15 |
Şengül Şirin
|
Java Plug-In KullanmakJava Plug-In Kullanmak MIME Tipi Nesne Tipi / Sürüm application/x-java-applet; Applet / Mevcut sürüm application/x-java-applet;version=11 Applet / Java 11 application/x-java-applet;version=12 Applet / Java 12 application/x-java-bean; Bean / Mevcut sürüm application/x-java-bean;version=11 Bean / Java 11 HTML sayfasına appletinizi geleneksel yöntemlerle koymak isterseniz, yani Java Plug-In kullanmak istemiyorsanız APPLET tagını kullanmanız gerekir Java Plug-In kullanmak istiyorsanız; Netscape için EMBED tagını kullanmalısınız : <HTML> <BODY> <EMBED type="application/x-java-applet;version=11" width="200" height="200" code="Appletimclass" codebase="/appletler/" parametre1="2" pluginspage="http://javasuncom/products/plugin/11/plugin-installhtml"> <NOEMBED> Applet Desteklenmiyor </NOEMBED> </EMBED> </BODY> </HTML> PLUGINSPAGE ve TYPE alt tagını kullanmanız gerektiğini unutmayınız Çünkü browser Java Plug-In yükleme sayfasını ve sürümü bilmesi gerekir APPLET tagında kullanılan PARAM alt tagını bu durumda kullanmazsınız Parametreleri direkt, örnekte görüldüğü gibi ( parametre1="2") direkt yazmalısınızCODE, CODEBASE,WIDTH,HEIGHT gibi alt taglar APPLET tagında olduğu gibi kullanılır Internet Explorer için OBJECT tagını kullanmalısınız : <HTML> <BODY> <OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" width="200" height="200" codebase="http://javasuncom/products/plugin/ 11/jinstall-11-win32cab#Version=1,1,0,0"> <PARAM NAME="code" VALUE="Appletimclass"> <PARAM NAME="codebase" VALUE="/appletler/"> <PARAM NAME="type" VALUE="application/x-java-applet;version=11"> <PARAM NAME="parametre1" VALUE="2"> Applet desteklenmiyor </OBJECT> </BODY> </HTML> Burada CODEBASE alt tagı gömülü nesnenin gerektirdiği ActiveX Controlünün yeridir Java'ya ait codebase, type, code gibi taglar PARAM alt tagı ile belirtilir Netscape ve IE için farklı yöntemlerin kullanılması, her biri için ayrı web sayfalarımız olacağı anlamına gelmiyor HTML kodu kullanarak her ikisi içinde geçerli bir sayfa hazırlayabilirsiniz Fakat böyle bir HTML kodu yazmak için kendinizi kasmayın Çünkü Sun, Java Plug-In ile beraber HTML Çeviricisi ( HTML Converter ) sunuyor Bu çevirici sayesinde HTML sayfasında kullanılan APPLET tagları her iki browserda da kullanılabilecek şekilde çevriliyor Applet Neden Çalışmıyor? Appletler, dinamik web tabanlı içerik için en ideal progr*****lardır Teorikte bir kere yaz, her bilgisayarda, her browserda ve her işletim sisteminde çalıştır; mantığını ileri süren Sun bunu "Bir kere yaz, her yerde çalıştır ( Run Once, Run Anywhere ) " sloganıyla lanse ediyor Pratikte, birçok java programcısı ve birçok kullanıcı Java appletlerinin başağrısına sebep olduğunu söylüyorlar "Neden applet çalışmıyor ?" içerikli birçok mail geliyor Applet çalıştığı zaman tam çalışıyor, çalışmadığı zaman ise büyük bir sorun halini alıyor Hatayı bulmak ve hatayı düzeltmek gerçekten başağrısına neden olabiliyor Hatta Java ile program geliştirmeyi bu yüzden bırakanlar bile var Değişik browserlar, browser sürümlerinin farklılıkları, hatta browser konfigürasyonlarındaki farklılıklar appletlerin çalışmasında rol oynayabiliyor Browserlara gömülü Java Sanal Makinasındaki ( Java Virtual Machine ) buglar ve bilgisayarın performansıda etkili oluyor Şayet browser'ınız hiçbir appleti çalıştıramıyor ise, java applet ihtiva eden bir sayfayı çağırdığınızda takılıp kalıyorsa browser yazılımını tekrar kurmak çoğu zaman problemi ortadan kaldırıyor Bu söz konusu değilde, gri bir dikdörtgenden başka bir şey göremiyorsanız bunun bir kaç sebebi olabilir Neden Gri Dikdörtgen? Appletin yüklenmesi sırasında veya yüklendikten sonra çalıştırılması sırasında meydana gelen hatalardan dolayı oluşur Java programlama dilinde bunun teknik adı "Exception" dır Java'da hataları yakalama imkanı olduğunu biliyoruz, daha doğrusu bilinen çoğu hatayı desek daha iyi olur Oluşan hatalar bilinmedik, beklenmedik hata veya appletden kaynaklanmayan hatalar olabildiği için bu hataları yakalama imkanı yok Şimdi en çok karşılaşılan ve bilinen hataları inceleyelim : Class dosyasına ulaşamama veya yükleyememe Bilindiği gibi applet dediğimiz progr*****lar, derlendikten sonra class dosyası halini alıyorlar Appletlerin çalışması için bu class dosyalarının yüklenmesi gerekiyor Şayet class dosyasının yeri bulunamaz veya dosya yüklenirken hata oluşur ise gri kutunun içinde class dosyasını bulunamadığına dair veya yüklenirken hata oluştuğuna dair bir hata mesajı çıkar ve applet çalışmaz Applet çalışmadığı için, ki hata daha applet yüklenirken oluştuğu için, applet kodu içinden bu hatayı yakalamanız ve engellemeniz mümkün değildir Bu hata çoğu durumda, <applet> tagı içinde class dosyasının bulunduğu yeri yanlış olarak belirtildiği zaman ortaya çıkıyor Ağ kaynaklarına erişememe Bazı zamanlar ağ üzerinde bulunana server göçer veya herhangi bir sebepten bağlantı kurulamaz Kullanıcı firewall arkasındadır ve Socket, DatagramSocket istekleri çalışmaz Eğer ağ kaynaklarına erişim gerektiren bir applet yazıyorsanız, iletişim için TCP/UDP protokülü yerine HTTP protokülünü kullanın Çünkü firewall arkasında olan kullanıcı sayısı gün geçtikçe artıyor Karşılaşılan diğer bir hata sebebi ise, browserların appletler ile ilgili kısıtlamalarından kaynaklanıyor Appletviewer'da sorunsuz çalışan applet, browserda çalışmıyor Applet sadece bulunduğu server ile bağlantı kurabilir Birçok applet ise domain isimlerini IP adresine çevirirken hata oluşturuyorlar Bunu önlemek için domain ismi yerine IP adresi kullanın Null Hataları Çok karşılaşılan hatalardan biriside NULL hatalarıdır Bu appletin kodundan kaynaklanan ve appletin çalışmamasını sağlayan bir hatadır Bir değişkene bir nesne atarken, nesnenin değerinin Null ( değersiz ) olmamasına dikkat edin Aşağıdaki örneği inceleyin: Örnek: String sayac = getParameter ("sayac"); //sayac parametresini al if ( sayac == null ) // Eğer sayac null ise sayac = "1"; // sayac değerini "1" yap Biraz dikkat ile, web sayfalarında önümüze çıkan gri dikdörgen kutucukları azaltabiliriz alıntıdır |
|