Jsp Declaration Tag

Merhaba arkadaşlar, Ramazan ayının ilk blog yazısını yazıyorum. Ramazan ayı herkese hayırlı olsun, Allah oruçlarımızı kabul etsin. Cümlelerde oruçtan dolayı anlam bozulması vs hata olursa kusura bakmayın

Bugün JSP scripting element konusunu bitirmiş olacağız. Daha önce Scriptlet tag, Expression tag konularına değindik, bugün ise Declaration tag ile Scripting element konusu bitireceğiz.

Jsp – Declaration Tag

Scripting element’den biri olan Declaration tag adından da anlaşılabileceği gibi bir deklarasyon/tanımlama tag elementidir. Declaration tag ile method level scope değil class level scope olan deklarasyon gerçekleştirebiliriz.

Hatırlayacağınız üzere Scriptlet tag ve Expression tag’ları localdiler ve method oluşturamıyorduk. _jspService() methodu içerisine yazılıyordu Contaıner tarafından. Instance variable/method oluşturmak için ise Declaration tag kullanmalıyız. Ayrıca declaration tag ile her request için bellek kullanmamış oluruz.  Declaration tag içerine yazılanlar service methodunun dışında ve sınıf tanımının içerine yazılır Contaıner tarafından. Class level declaration olduğu için istenilen zamanda istenilen yerde kullanılabilinir.

Syntax : <%! field or method declaration %>

Xml olarak karşılığı : <jsp:declaration> field or method declaration </jsp:declaration>

İnstance variable olduğu için field yada method tanımı yapabiliriz.

Scripting tag yazımda kullanmış olduğum bir örneği Declaration tag kullanarak yapmak istiyorum. Hatırlarsanız o yazıdaki örnekte bir count değişkeni ile sayfaya ziyaret sayısını tutuyorduk ve başlangıçta 1 di bu sayı. Sayfayı refresh ettiğimizde ise 1 sayısının değişmedini görmüştük. Bunun nedeni Scriptlet tag’ının local değişken tanımı yapmasından dolayıdır. Aynı örneği Declaration tag ile yapalım;

Sayfayı ilk çalıştırdığımızda değişkenin değeri 1 olucaktır ve refresh ettiğimizde count değeri artacaktır.

Screenshot from 2015-06-21 14:49:20 Screenshot from 2015-06-21 14:49:30

 

 

 

 

 

 

 

 

 

 

 

 

Contaıner yukarıdaki jsp kodunu şu şekilde yorumlayacaktır;

Not : Declaration tag instance variable oluşturduğunda ; koymak zorundayız. Aksi halde compile error oluşturacaktır.

Method tanımı yapalım;

Not 2 : Değikenin , method tanımından sonra yapılmasında Java için bir referans sorunu yoktur. Contaıner tarafından oluşturulacak servlet class’ına bakalım;

Sayfayı refresh ettiğinizde count değişkeni 2 katlanarak ekrana yazdırılır.

 

Declaration tag ile Jsp lifecycle de bulunan methodları override edebiliriz, jspInıt() ve jspDestroy() methodlarını database bağlantılarını açmak/kapamak, resource initalizing  vs gibi amaçlar için kullanabiliriz.

Yazımı burada sonlandırmak istiyorum arkadaslar.

Bir sonraki yazımızda Jsp mimarisine ve lifecycle konusuna değinmeye çalışacağım.

Mutlu kalın, kod’la kalın ve bol bol Çay için( İftardan sonra ).

~ Alican Akkus

1033 Total Views 1 Views Today

  • Özkan

    Yazılar için sagol abi, gayet güzel aciklamışsın. Bu arada hayırlı Ramazanlar

    • Alican Akkus

      Sagolasın, iyi çalışmalar =) Hayırlı Ramazanlar.

  • taner

    son iki örnek tam bir karmaşa oldu sanırım ) yada oruç nedeni ile anlamadım..

    • Alican Akkus

      Selam Taner, son iki kod blogu declaration tag içerisinde instance değişken ve method tanımı yapmaya yarıyor. İlk kod bloğu jsp sayfası, ikincisi ise Contaıner tarafından jsp’nin servlete dönüştürülmesi ile oluşan servlet sınıfı. Oruçluyum bende belki ben anlatamamışımdır. Kolay gelsin =)