Servlet Filter Nedir ve Kullanımı

Servlet Filter Nedir ve Kullanımı hakkında bilgi verelim.Servlet Filter requestin kaynaklara erişimini kesmek için kullanılabilir.Kullanıcı girişi yapılan bir site düşünelim.Bazı kaynaklara kullanıcı giriş yapmadan erişememesi gerekiyor.Filters içerisinde bu kontrolü yaptırıp eğer kullanıcı giriş yapmış ise yönlendirme işlemini yapabiliriz.
Servlet Filter Nedir ve Kullanımı
Bir filter içerisinde üç adet metot vardır.
doFilter(ServletRequest,ServletResponse,FilterChain):Her hangi bir zamanda filter çağırıdığı zaman çalışır.
init(FilterConfig filterConfig):Filter yüklendiğinde çalışır.Sadece bir kez çalışır.
destroy():Filter sonlandırılmadan hemen önce çalışır.
Basit bir örnek ile açıklayalım.Kullanıcı girişinin olduğu bir sistem düşünelim.Giriş yapıldığında bir filtre olduğunu varsayalım.Kullanıcı adı ve şifre girildikten sonra oluşturduğumuz filter’da işlem görecek eğer koşulları sağlıyorsa o servlet veya jsp dosyamıza erişmesine izin vereceğiz.”index.jsp” dosyamızı oluşturalım.
Servlet Filter Nedir ve Kullanımı
Kullanıcı giriş servleti oluşturalım ve içerisine aşağıdaki kodlarımızı yazalım.
Servlet Filter Nedir ve Kullanımı
Buraya kadar herhangi bir problem yok.”index.jsp” dosyası içerisinde post işlemi yaptığımızda KullaniciGirisServlet’i içerisindeki işlemler yapılacaktır.Bu servlet içerisinde bir Session oluşturup içerisine kullanıcı adı ve şifremizi atıyoruz.Urunler jsp dosyamızı oluşturalım.
Servlet Filter Nedir ve Kullanımı
Urunler jsp dosyama erişim sağlandığında etiketi içerisindeki yazıyı gösterecektir.Şimdi bir filter ekleyelim ve o filtreden geçerse urunler.jsp dosyamıza ulaşılsın.File->New->Filter seçeneğine tıklayarak yeni bir filter oluşturalım.
Servlet Filter Nedir ve Kullanımı
Filterimize bir isim verip Next’e tıklayalım.
Servlet Filter Nedir ve Kullanımı
Alt kısımda bulunan Filter Mappings’e tıklayıp Edit’e tıklayalım.Filter Mapping bize hangi dosyalar için bu filtre uygulayacağımızı seçmemize olanak sağlıyor.Örnek olarak urunler klasörümüz olduğunu düşünelim.Bu ürünler klasörü içerisindeki herhangi bir servlet veya jsp dosyasına erişmek istenirse bu filtre çalışacaktır.Filtre içerisinde yaptığımız işleme göre yol izlenecektir.Yani ürünler içerisine kullanıcı giriş yapmadan herhangi bir veriye erişmesini istemiyorsak filters içerisinde Session kontrolü yapıp eğer kullanıcı giriş yapmış ise oradaki dosyalara erişim sağlanacaktır.(Session konusuna bir önceki yazımda değindim.Oradan ulaşabilirsiniz.)Bu olayı klasör olarak değilde servlet dosyası veya jsp dosyası içinde yapabiliriz.
Burada urunler.jsp dosyası için bu filterin çalışmasını istiyorum.Select dispatcher kısmında ise bu filter hangi işlemde çalışması gerektiğini belirtiyoruz.Yani dosyamız request , forward veya include işlemi yapıldığı zaman bu filter çalışmaktadır.Finish’e tıklayarak Filter’ımızı oluşturalım.
Servlet Filter Nedir ve Kullanımı
KullaniciGirisServlet’imiz içerisinde Session oluşturduk.Eğer kullanıcı adı ve şifre doğru girilmişse Session içerisine kullanıcı adını atadık.Ardından sendRedirect metodu ile urunler.jsp dosyamıza yönlendirme yapmıştık.Fakat urunler.jsp dosyasına ulaşması için oluşturduğumuz bu filtreden geçmek zorundaydı.Bu filtre içerisinde doFilter metodunda Session içerisindeki kullanıcı adını kontrol ettirdik.Eğer kullanıcı adı null ise yani kullanıcı herhangi bir şekilde doğru giriş yapmamış ise kullanıcı adı null olacaktır.Yani urunler.jsp dosyası içerisine ulaşamayacaktır.Filtre içerisinde null kontrolü yaptırdık ve eğer null ise index.jsp yani kullanıcı giriş sayfasına yönlendirdik.
Servlet Filter Nedir ve Kullanımı

Proje dosyasına buradan ulaşabilirsiniz.

Bir cevap yazın

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