29 Ocak 2014 Çarşamba

DWR Kullanımı Örneği (Direct Web Remoting) / How to use Dwr in Java

Bu yazımda DWR (Direct Web Remoting ) ‘dan bahsetmeye çalışacağım.

AJAX'a web uygulamalarımızda çok sık ihtiyaç duymaktayız. Peki nedir bu AJAX;
Aslinda ajax HTML / CSS/ DOM / JavaScript XML / XML/HttpRequest gibi birçok bileşenin birleştirlmesiyle geliştirilmiş bir teknolojidir. Adından da anlaşılacağı üzere Asenkron bir işletim söz konusu olduğundan şöyle bir fayda sağlamaktadır; güncellemelerde sayfanın değil istenilen kısımların sunucuya gidip gelmesidir. DWR' da aslında bir AJAX framework’ü olduğundan AJAX'a değinmek istedim önce.

DWR iki ana bölümden oluşmakta;
  • İstemciden gelecek request'leri işleyen ve istemciye tekrar bir cevap dönen Java Servlet'leri.
  • Request'leri gönderen ve servlet’lerden dönen responslarla sayfayı güncelleyen JavaScript parçalarından oluşur diyebiliriz.

Aşağıdaki resimde işleyişi anlatma adına güzel olmuş.

Şimdi de DWR'ı nasıl kullanacağımızı adım adım anlatmaya çalışayım;

1)  Önce bir Dynamic Web Project oluşturuyorsunuz.

2)  DWR Jar'ını sayfasından indirerek WEB-INF altında lib klasörünün altına koyuyoruz.Eğer lib klasörü yoksa bir tane oluşturabiliriz. Yalnız dwr.xml de kullanacağımız versiyonla jar'ın versiyon uyumluluğu önemli. Buna dikkat edelim. Ben dwr 2 kullanacağım bu örnekte.

3)  Aşağıdaki kodları web.xml'imize ekliyoruz. Bu yukarıda bahsettimiz DWR'ın ilk kısmına karşılık gelmekte aslında. Burada DwrServlet’imizi tanımlıyoruz. 

    
        dwr-invoker
        org.directwebremoting.servlet.DwrServlet
        
            activeReverseAjaxEnabled
            true
        
        
            debug
            true
        
         
             crossDomainSessionSecurity 
             false 
         
         
             allowScriptTagRemoting 
             true 
        
        1
    

    
        dwr-invoker
        /dwr/*
    
4)  web.xml ile aynı dizinde bulunan bir dwr.xml dosyası oluşturuyoruz. Web.xml'e eklediğimiz servlet name (dwr-invoker)kısmı aslında bu .xml’inde ismini belirlemekte. Buna dikkat edelim. Aşağıdaki kodları dwr.xml'e ekleyelim. Dwr DwrEngine isimli java clasımızı .js uzantılı bir JavaScript'e dönüştürecek.


 
   
     
     
   
 
5)  dwr.xml'de kullandığımız DwrEngine adlı  java clasımızı oluşturuyoruz.


package com.ahmetboz.dwr;

/**
 *
 * @author ahmet.boz
 */
public class DwrEngine {
       
    public DwrEngine(){}
    
    public String deneme() {
        return "Hello";
    }
}

Şu durumda dwr'ı kullanabilir durumdayız. Uygulamamızı çalıştırıp
http://localhost:8080/[YOUR-WEBAPP]/dwr/    adresini yazarsanız dwr.xml'de tanımladığımız class ve metodların listesini görebiliriz.




6)  Son olarak arayüzümüzü oluşturuyoruz ve dwr'ı deniyoruz.. Ben basit bir şekilde DwrEngine'den gelen mesajı alert ile ekrana bastırıyorum.


<%@ page contentType="text/html; charset=UTF-8"%>

<%@ page contentType="text/html; charset=UTF-8"%>


    
        
        
        

        
        
    
    
        
DWR Say Hello

Uygulamamızı çaılıştırıp deniyoruz.

İlerleyen yazılarımda Dwr'ı Spring bean'leriyle nasıl kullanırız buna değinmeğe çalışacağım.Kolay gelsin.