SlideShare une entreprise Scribd logo
1  sur  29
Télécharger pour lire hors ligne
Java Server Faces

  Ahmet Demirelli
Sabancı Üniversitesi
      2007
Ajanda
 Model-1 Mimari
 Model-2 Mimari
 MVC Framework
 Java Server Faces
 Örnek Uygulama
Model 1 Mimari
                 1                        2                    3
                             JSP                  JavaBeans
                                                               4
                            (View)                 (Model)
                 6                        5


Client                                                             Database
                                         Server
         HTML form bilgisini JSP veya Servlet`e gönderir (1)
         JSP den ş bileşenlerine bağlanır (2)
          ş bileşenleri database işlemlerini yapar (3-4)
         Yapılan işlem sonucu JSP ye bil gi döner (5)
         JSP dönen sonucu clienta gönderir (6)
Model 1 Dezavantajları
 Bakım zorluğu
 Hataların bulunma zorluğu
 Sayfa akış düzenini değiştirme zorluğu
 Modüler olmayan uygulamalar
   Sisteme yeni modüller ekleme zorluğu
   Güncelleme problemi
Model 2 Mimari (MVC)
                   1
                            Controller
                                              2
                            (Servlet)                                  3
                                                    JavaBeans
                                   2`        5                         4
                                                     (Model)
                               JSP
                  6
                              (View)                                          Database
Client                                   Server
         HTML form bilgisini Controller Servlete gönderir (1)
         Controller Servlet yapılması gereken işlemi belirler
             şlem sadece yönlendirme işlemi ise başka bir jsp ye yenlendirir (2)
             şlem iş bileşenleri ile ilgili ise iş bileşenlerini çağırır (2`)
          ş bileşenleri database işlemlerini yapar (3-4)
         Yapılan işlem sonucu JSP ye bilgi döner (5)
         JSP dönen sonucu clienta gönderir (6)
MVC – (Model)
 Model ( ş bileşenleri katmanı)
    Verilerin ve iş kurallarının işlendiği
   katmandır
    Bu katmanda yapılanlar;
     Database sorgulamaları
      ş kurallarının kontrolü
   Veri ve uygulama kuralları katmanını
   (business layer) sunum katmanından
   (presentation layer) ayırır
MVC – (View)
 View (Sunum katmanı)
   Client tiplerine göre sunumun
  düzenlenmesi
    ş katmanında işlenen verilerin
  gösterilmesi
MVC – (Controller)
 Controller (Kontrol katmanı)
   Uygulamaya gelen isteklerin nasıl işleneceğine ve
   sonucunun nasıl gösterileceği bilgisini tutar
   Kullanıcı isteklerine göre hangi iş bileşenlerinin
   çalışacağına karar verir
    ş bileşenlerinden gelen bilgilerin sunum
   katmanında hangi görüntü bileşenine
   yönlendirileceğineve nasıl görüntüleneceğine karar
   verir
      Ör : Dil seçenekeleri veya rollere göre sayfaların
      görüntülenmesi
Model 2 (MVC) Avantajları
 Hızlı uygulama geliştirme imkanı (RAD)
 Esnek ve moduler yapı
 Sayfa akış kontrolu merkezi olması
 Katmanların net olarak birbirinden
 ayrılması
Model 2 (MVC)Dezavantajları
 Sağlam bir MVC uygulaması yazmak iyi
 bir tasarım ve kodlama gerektirir
 Her bir istek (request) için arka planı
 tasarlanmalıdır.(Controller, Model ve
 View bileşenleri tasarlanmalıdır)

   Fakat bunun için sıfırdan başlamamız gerekmiyor
 MVC Frameworkleri kullanabiliriz.
Neden MVC Framework?
  Uygulamaları MVC mimarisinde geliştirmek için iyi
  bir planlama ve katman tasarımı gerekir
  MVC Uygulaması geliştirmek için kendi mimarinizi
  oluşturmak uygulama geliştirme zamanını
  uzatabilir
  MVC Uygulamaları geliştirmeye hızlı bir başlangıç
  yapmayı sağlar
  Katmanların oluştururulmasını kolaylaştırır
  Uygulama geliştiricilere kullanabilecekleri ve
  genişletebilecekleri sınıflar sunarlar
  Girdi kontrolü kolaylaştırır
  Uygulamaların internalizationunu kolaylaştırır
Java Server Faces
 Web uygulamala arayüzleri geliştirmeyi
 kolaylaştıran java tabanlı Web
 Framework tanımlaması ve referans
 uygulamasıdır.
  JSF Açık kaynak kodlu standarttır: JSR
 127
   Java Community Process : www.jcp.org
   JSF, Java EE teknolojisinin bir parçasıdır
Java Server Faces
 Neden Kullanılmalı ?
   Hazır MVC altyaspısını sağlar
   Uygulama geliştiricilerin rollerini ayırır
   Genişletilerbilir bir komponent altyapısı sunar
   Standarttır ***
   Endüstri desteği hergün artmaktadır
   Hızlı uygulamalar geliştirmemizi sağlar (uygun
   geliştirme araçları ile sürükle-bırak yaparak
   geliştirme imkanı sunar)
   Java nın ASP.NET e cevabıdır
Java Server Faces
 • JSF Framework içerisinde;
   Java sınıfları
      “Faces” bileşenleri : HTML bileşenlerinin sunucu
      tarafındaki karşılıkları (text, buttons, checkboxes, etc.)
       FacesServlet (Controller)
       Yardımcı sınıflar (Validator, Converter..etc)
   Tag kütüphaneleri
       Hazır tag kütüphaneleri
   Konfigürasyon dosyası (faces-config.xml)
      JSF projesi konfigürasyonu: sayfa geçişleri ve
      yönlendirmeleri, Uygulamada kullanılacak olan JavaBean
      (ManagedBean / BackingBean) tanımları
Java Server Faces
 JSF yaşam döngüsü;
   Request geldiğinde sayfadaki view ID ile bir
Java Server Faces
 JSF Request yaşam döngüsü
   Komponent ağacının oluşturulması
   Request değerlerinin atanması
   Girdi kontrollerinin yapılması
   Model değerlerinin güncellenmesi
   Uygulamanın çağırılması
   Response un oluşturulması
Java Server Faces
        JSF önyüz (page1.jsp)
<f:view>
    <h:form>
      <h:inputText id=quot;namequot; value=quot;#{student.name}quot; /> <br>
       <h:inputText id=quot;lnamequot; value=quot;#{student.age}quot; /><br>
       <h:commandButton id=“clickquot; value=“click“
               action=quot;#{student.saveData}quot; /><br>
    </h:form>
</f:view>
Java Server Faces
             ManagedBean / BackingBean
public class Student {
   private String name;
   private String age;

        public   Student() {     }
        public   String getName() { return name;}
        public   void setName(String name) { this.name = name;}
        public   String getAge() { return age; }
        public   void setAge(String age) { this.age = age; }
        public   String saveData() {
                    //save data to database and return “success”
    }
}
Java Server Faces
           faces-config.xml

<managed-bean>
   <managed-bean-name>student</managed-bean-name>
   <managed-bean-class>edu.sabanciuniv.Student</managed-bean-class>
   <managed-bean-scope>session</managed-bean-scope>
 </managed-bean>


            Scopes
                request
                session
                application
Java Server Faces
 Sayfa yönlendirmesi
 <navigation-rule>
 <from-tree-id>/page1.jsp</from-tree-id>
         <navigation-case>
              <from-outcome>success</from-outcome>
              <to-tree-id>/success.jsp</to-tree-id>
           </navigation-case>
         <navigation-case>
              <from-outcome>failed</from-outcome>
               <to-tree-id>/fail.jsp</to-tree-id>
         </navigation-case>
 </navigation-rule>
Java Server Faces
 Arayüz Bileşenleri (UI Components)
   Sunucu tarafında çalışır


                              form.jsp


 Browser

                                 UI
Java Server Faces
 “Component tree”
                               View
 Sayfaya request geldiğinde
 eğer View Id mevcut değil ise
 yeni bir component tree            Form
 oluşturulur
 View-id var ise güncellenir             input

                                         input

                                        command
Java Server Faces
 “Validators” & “Converters”
   Validators—Girdi kontrollerini yapar
     UIInput bileşenlerini değerlerini kontrol eder
     Bir veya daha fazla bileşen kontrolü yapabilir
     Genel durumlar için hazır “Validator” ler vardır
    Converters—Veri Tipleri dönüşüm
   işlemlerini yapar
     Output: Object to String
     Input: String to Object
     Genel durumlar için hazır “Converter” ler vardır
Java Server Faces
Örnekler;
 Converter:
<h:inputText value=“#{bean.date}”>
       <f:convertDateTime pattern=“MM/dd/yyyy”/>
</h:inputText>


  Validator:
<h:input_text valueRef=”#{testingBean.today}” >
        <f:validator_length minimum=”6” maximum='10” />
</h:input_text>
J2EE Karikatürleri
 Java Server Faces
J2EE Karikatürleri
 Dependency Injection
J2EE Karikatürleri
 EJB
Örnek Uygulama
SORULAR

ahmetdemirelli@sabanciuniv.edu

http://people.sabanciuniv.edu/ahmetdemirelli

Contenu connexe

Similaire à Java Server Faces

Similaire à Java Server Faces (20)

Spring Framework
Spring FrameworkSpring Framework
Spring Framework
 
Aspnet M V C
Aspnet M V CAspnet M V C
Aspnet M V C
 
Java ee kursu-bagcilar
Java ee kursu-bagcilarJava ee kursu-bagcilar
Java ee kursu-bagcilar
 
Java ee kursu-cekmekoy
Java ee kursu-cekmekoyJava ee kursu-cekmekoy
Java ee kursu-cekmekoy
 
Java ee kursu-bahcelievler
Java ee kursu-bahcelievlerJava ee kursu-bahcelievler
Java ee kursu-bahcelievler
 
Java ee kursu-avcilar
Java ee kursu-avcilarJava ee kursu-avcilar
Java ee kursu-avcilar
 
Java ee kursu-catalca
Java ee kursu-catalcaJava ee kursu-catalca
Java ee kursu-catalca
 
React.js Web Programlama
React.js Web ProgramlamaReact.js Web Programlama
React.js Web Programlama
 
Primeface
PrimefacePrimeface
Primeface
 
Solarwinds SAM ve Patch Manager
Solarwinds SAM ve Patch ManagerSolarwinds SAM ve Patch Manager
Solarwinds SAM ve Patch Manager
 
Jsf
JsfJsf
Jsf
 
Mvc 4 Eğitim Sunusu
Mvc 4 Eğitim SunusuMvc 4 Eğitim Sunusu
Mvc 4 Eğitim Sunusu
 
Java ee kursu-gungoren
Java ee kursu-gungorenJava ee kursu-gungoren
Java ee kursu-gungoren
 
Java ee kursu-zeytinburnu
Java ee kursu-zeytinburnuJava ee kursu-zeytinburnu
Java ee kursu-zeytinburnu
 
Java ee kursu-adana
Java ee kursu-adanaJava ee kursu-adana
Java ee kursu-adana
 
Java ee kursu-kayseri
Java ee kursu-kayseriJava ee kursu-kayseri
Java ee kursu-kayseri
 
Java ee kursu-sultanbeyli
Java ee kursu-sultanbeyliJava ee kursu-sultanbeyli
Java ee kursu-sultanbeyli
 
Java ee kursu-kagithane
Java ee kursu-kagithaneJava ee kursu-kagithane
Java ee kursu-kagithane
 
Java ee kursu-gaziantep
Java ee kursu-gaziantepJava ee kursu-gaziantep
Java ee kursu-gaziantep
 
ASP.NET MVC V 2.0
ASP.NET MVC  V  2.0ASP.NET MVC  V  2.0
ASP.NET MVC V 2.0
 

Java Server Faces

  • 1. Java Server Faces Ahmet Demirelli Sabancı Üniversitesi 2007
  • 2. Ajanda Model-1 Mimari Model-2 Mimari MVC Framework Java Server Faces Örnek Uygulama
  • 3. Model 1 Mimari 1 2 3 JSP JavaBeans 4 (View) (Model) 6 5 Client Database Server HTML form bilgisini JSP veya Servlet`e gönderir (1) JSP den ş bileşenlerine bağlanır (2) ş bileşenleri database işlemlerini yapar (3-4) Yapılan işlem sonucu JSP ye bil gi döner (5) JSP dönen sonucu clienta gönderir (6)
  • 4. Model 1 Dezavantajları Bakım zorluğu Hataların bulunma zorluğu Sayfa akış düzenini değiştirme zorluğu Modüler olmayan uygulamalar Sisteme yeni modüller ekleme zorluğu Güncelleme problemi
  • 5. Model 2 Mimari (MVC) 1 Controller 2 (Servlet) 3 JavaBeans 2` 5 4 (Model) JSP 6 (View) Database Client Server HTML form bilgisini Controller Servlete gönderir (1) Controller Servlet yapılması gereken işlemi belirler şlem sadece yönlendirme işlemi ise başka bir jsp ye yenlendirir (2) şlem iş bileşenleri ile ilgili ise iş bileşenlerini çağırır (2`) ş bileşenleri database işlemlerini yapar (3-4) Yapılan işlem sonucu JSP ye bilgi döner (5) JSP dönen sonucu clienta gönderir (6)
  • 6. MVC – (Model) Model ( ş bileşenleri katmanı) Verilerin ve iş kurallarının işlendiği katmandır Bu katmanda yapılanlar; Database sorgulamaları ş kurallarının kontrolü Veri ve uygulama kuralları katmanını (business layer) sunum katmanından (presentation layer) ayırır
  • 7. MVC – (View) View (Sunum katmanı) Client tiplerine göre sunumun düzenlenmesi ş katmanında işlenen verilerin gösterilmesi
  • 8. MVC – (Controller) Controller (Kontrol katmanı) Uygulamaya gelen isteklerin nasıl işleneceğine ve sonucunun nasıl gösterileceği bilgisini tutar Kullanıcı isteklerine göre hangi iş bileşenlerinin çalışacağına karar verir ş bileşenlerinden gelen bilgilerin sunum katmanında hangi görüntü bileşenine yönlendirileceğineve nasıl görüntüleneceğine karar verir Ör : Dil seçenekeleri veya rollere göre sayfaların görüntülenmesi
  • 9. Model 2 (MVC) Avantajları Hızlı uygulama geliştirme imkanı (RAD) Esnek ve moduler yapı Sayfa akış kontrolu merkezi olması Katmanların net olarak birbirinden ayrılması
  • 10. Model 2 (MVC)Dezavantajları Sağlam bir MVC uygulaması yazmak iyi bir tasarım ve kodlama gerektirir Her bir istek (request) için arka planı tasarlanmalıdır.(Controller, Model ve View bileşenleri tasarlanmalıdır) Fakat bunun için sıfırdan başlamamız gerekmiyor MVC Frameworkleri kullanabiliriz.
  • 11. Neden MVC Framework? Uygulamaları MVC mimarisinde geliştirmek için iyi bir planlama ve katman tasarımı gerekir MVC Uygulaması geliştirmek için kendi mimarinizi oluşturmak uygulama geliştirme zamanını uzatabilir MVC Uygulamaları geliştirmeye hızlı bir başlangıç yapmayı sağlar Katmanların oluştururulmasını kolaylaştırır Uygulama geliştiricilere kullanabilecekleri ve genişletebilecekleri sınıflar sunarlar Girdi kontrolü kolaylaştırır Uygulamaların internalizationunu kolaylaştırır
  • 12. Java Server Faces Web uygulamala arayüzleri geliştirmeyi kolaylaştıran java tabanlı Web Framework tanımlaması ve referans uygulamasıdır. JSF Açık kaynak kodlu standarttır: JSR 127 Java Community Process : www.jcp.org JSF, Java EE teknolojisinin bir parçasıdır
  • 13. Java Server Faces Neden Kullanılmalı ? Hazır MVC altyaspısını sağlar Uygulama geliştiricilerin rollerini ayırır Genişletilerbilir bir komponent altyapısı sunar Standarttır *** Endüstri desteği hergün artmaktadır Hızlı uygulamalar geliştirmemizi sağlar (uygun geliştirme araçları ile sürükle-bırak yaparak geliştirme imkanı sunar) Java nın ASP.NET e cevabıdır
  • 14. Java Server Faces • JSF Framework içerisinde; Java sınıfları “Faces” bileşenleri : HTML bileşenlerinin sunucu tarafındaki karşılıkları (text, buttons, checkboxes, etc.) FacesServlet (Controller) Yardımcı sınıflar (Validator, Converter..etc) Tag kütüphaneleri Hazır tag kütüphaneleri Konfigürasyon dosyası (faces-config.xml) JSF projesi konfigürasyonu: sayfa geçişleri ve yönlendirmeleri, Uygulamada kullanılacak olan JavaBean (ManagedBean / BackingBean) tanımları
  • 15. Java Server Faces JSF yaşam döngüsü; Request geldiğinde sayfadaki view ID ile bir
  • 16. Java Server Faces JSF Request yaşam döngüsü Komponent ağacının oluşturulması Request değerlerinin atanması Girdi kontrollerinin yapılması Model değerlerinin güncellenmesi Uygulamanın çağırılması Response un oluşturulması
  • 17. Java Server Faces JSF önyüz (page1.jsp) <f:view> <h:form> <h:inputText id=quot;namequot; value=quot;#{student.name}quot; /> <br> <h:inputText id=quot;lnamequot; value=quot;#{student.age}quot; /><br> <h:commandButton id=“clickquot; value=“click“ action=quot;#{student.saveData}quot; /><br> </h:form> </f:view>
  • 18. Java Server Faces ManagedBean / BackingBean public class Student { private String name; private String age; public Student() { } public String getName() { return name;} public void setName(String name) { this.name = name;} public String getAge() { return age; } public void setAge(String age) { this.age = age; } public String saveData() { //save data to database and return “success” } }
  • 19. Java Server Faces faces-config.xml <managed-bean> <managed-bean-name>student</managed-bean-name> <managed-bean-class>edu.sabanciuniv.Student</managed-bean-class> <managed-bean-scope>session</managed-bean-scope> </managed-bean> Scopes request session application
  • 20. Java Server Faces Sayfa yönlendirmesi <navigation-rule> <from-tree-id>/page1.jsp</from-tree-id> <navigation-case> <from-outcome>success</from-outcome> <to-tree-id>/success.jsp</to-tree-id> </navigation-case> <navigation-case> <from-outcome>failed</from-outcome> <to-tree-id>/fail.jsp</to-tree-id> </navigation-case> </navigation-rule>
  • 21. Java Server Faces Arayüz Bileşenleri (UI Components) Sunucu tarafında çalışır form.jsp Browser UI
  • 22. Java Server Faces “Component tree” View Sayfaya request geldiğinde eğer View Id mevcut değil ise yeni bir component tree Form oluşturulur View-id var ise güncellenir input input command
  • 23. Java Server Faces “Validators” & “Converters” Validators—Girdi kontrollerini yapar UIInput bileşenlerini değerlerini kontrol eder Bir veya daha fazla bileşen kontrolü yapabilir Genel durumlar için hazır “Validator” ler vardır Converters—Veri Tipleri dönüşüm işlemlerini yapar Output: Object to String Input: String to Object Genel durumlar için hazır “Converter” ler vardır
  • 24. Java Server Faces Örnekler; Converter: <h:inputText value=“#{bean.date}”> <f:convertDateTime pattern=“MM/dd/yyyy”/> </h:inputText> Validator: <h:input_text valueRef=”#{testingBean.today}” > <f:validator_length minimum=”6” maximum='10” /> </h:input_text>