Java Server Faces Scope Kavramı

Scope’nin kelime anlamı alan,faaliyet alanı demek.  JSF sayfalarımızda ki yapmak istediğimiz işlemlerin her birine bu sayfaların ne amaç taşıdığını ne amaç için hizmet edeceğini söylememiz gerekir. Yapacağımız işe göre JSF sayfalarımıza tanımlamalar yapmamız gerekmektedir. Önceki derste incelediğimiz JSF Yaşam Döngüsü ‘nde (Management Bean) Bean’ların faaliyet alanları ve süreleri scope’ler ile belirlenmektedir.

Bu Scope’lar 6 adettir.

Session Scope

HTTP stateless/durumsuz bir protokoldur. Yani browser/istemci server/sunucu ile baglanti kurar, istekte bulunur(request) cevabi alir(response) ve browser ile server arasinda baglanti kapanir. Yani her baglanti bir request/response icindir.

Session Scope ( @SessionScoped ) Managed Bean’ler , HTTP session boyunca yasayacaktir. Session, ayni client/istemcinin birden fazla istek/request icin devamliligi saglar.

Kullanıcılarımız için Session oluştururuz. Bu Session Scope oturum kapanana kadar işlemlerimizi gerçekleştirebiliriz.

View Scope

View Scope ( @ViewScoped ) Managed Bean’ler sadece ayni view /page boyunca yasayacaktir, farkli page icin yasam alani (scope ) sonlanir. View Scope xhtml sayfamizda Ajax kullanildiginda kullanisli olmaktadir.Eger bean’in sadece sayfa boyunca yasamasini istersek bu durumda ViewScoped kullanabiliriz.

Kullanıcı aynı sayfada kaldığı süre boyunca Bean’ler le gerçekleştirdiğimiz Scope çeşididir.

None Scope

NoneScoped bean tek basina kullanildiginda yasam alani son derece kisitli olmaktadir.
Her bir EL (Expression Language) ifadesinde yeni bir bean objesi olusturulmaktadir.

Yani su ifade icin 3 tane NoneScopedBean objesi olusacaktir. Bu bean’lerin yasam alani property ulastiktan sonra son bulmaktadir.

{noneScopedBean.myPropery}
{noneScopedBean.myPropery}
{noneScopedBean.myPropery}

Kendiliğinden oluşmayan ve belirli süresi olmayan Scope çeşididir. Bir Bean’dan istek gelmedikçe çalışmaz / yaratılmaz / saklanmaz.

Request Scope

Request Scope ( @RequestScoped ) olarak tanimli bir managed bean son derece kisa omurludur. HTTP request submit edilip response client’a donene kadar Request Scope bean yasayacaktir. HTTP request’i tamamlandiginda yasam alani sonlanir. Her bir request sonucunda yeni bir bean objesi (instance) olusur.

Kullanıcıdan gelen bir istek geldiğinde çalışan Scope çeşididir. Yaşam süresi başka bir istek gelene kadar devam eder.

Application Scope

Application Scope ( @ApplicationScoped ) Managed Bean’ler  , tum web application boyunca yasayacaktir. Yani tum request’ler ve tum session’lar icin gecerli olacaktir.

Yazılımımız server sayesinde başladığı an aktif olur yaşam süresi server kapatılıncaya kadardır.

Custom Scope

Bir bean in yaşam döngüsü kullanıcı tarafından belirlenir. Mesela X bean i üzerinde işlem yapıldığı sürece memory de kalsın , Y bean ine geçtği zaman X bean i destroy edilsin diyebiliriz

Kullanım

Yukarıda açıkladığım Scope’ların kullanımı Annotation olarak kullanılmakta. Sırasıyla;

  • @SessionScoped
  • @ViewedScope
  • @NoneScoped
  • @RequestScoped
  • @ApplicationScoped
  • @CustomScoped

şeklinde kullanılmaktadır.

 

lc_scope

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*
*