JavaServer Faces (JSF) Sunucu Yazılım Teknolojileri 2008



Benzer belgeler
Client Server Database

JavaServerFaces. Ahmet Demirelli. SCJP 5.0, SCWCD 1.4

MyFaces Özgür JSF Uyarlaması. Bora Güngören Portakal Teknoloji

Java EE web uygulamaları geliştirmek için kullanılan açık kaynak web uygulama framework üdür.

Üst Düzey Programlama

Java EE 5 Teknolojileri Jboss Seam

ÖZGÜR YAZILIMLAR İLE J2EE

.com. Özcan Acar 2009 Kurumsal Java.com

Üst Düzey Programlama

Öğr. Gör. Serkan AKSU 1

Üst Düzey Programlama

JSF Melih Sakarya. Java Server Faces

Tasarım Desenleri ve Java Web Servisleri ile Çok Katmanlı Bir Sistem Tasarımı

Üst Düzey Programlama

Veritabanı Dersi. Teoriden Pratiğe. Çağıltay N.E., Tokdemir G. Veritabanı Sistemleri Dersi -Bölüm XXV: Web'den Erişim Çağıltay, N., Tokdemir, G.

AJAX nedir? AJAX nasıl çalışır? AJAX. Tahir Emre KALAYCI. Sunucu Yazılım Teknolojileri

Web Uygulama Anaçatıları. Tahir Emre KALAYCI. May 5, 2009

BİH 605 Bilgi Teknolojisi Bahar Dönemi 2015

Java. Hakkımızda. Java Eğitimi

ĐSTEMCĐ SUNUCU SĐSTEMLER DERSĐ FĐNAL ÇALIŞMASI SORULAR YANITLAR

Üst Düzey Programlama

PHP I PHP I. E. Fatih Yetkin. 26 Eylül 2011

JSF Melih Sakarya. Java Server Faces Facelet

19 Şubat 2016 Cuma

Üst Düzey Programlama

Android e Giriş. Öğr.Gör. Utku SOBUTAY

4. Bağlantı (Köprü) Oluşturma

Cybersoft Bilişim Teknolojileri Sunucu Tarafı Programlaması Kursu Final soruları. Tarih: 27 Kasım 2010 Saat: 13:30 Süre: 3 saat

Aktarımı Çalıştırmak/Geri Almak 146 Alan Seçenekleri 148 Veri Tabanı Şeması 150 Veri Tabanı ile İlgili Bazı Rake Görevleri 162 Modeller 164

Programlama Yazılımı ile Web Sitesi Oluşturma

Spring Security Framework Harezmi Bilişim Çözümleri

JAVASCRIPT JAVASCRIPT DİLİ

COĞRAFİ BİLGİ SİSTEMLERİ SERVER MİMARİSİ SERVER UYGULAMA GELİŞTİRME EĞİTİMİ

1 İÇERİK YÖNETİM SİSTEMLERİ VE JOOMLA 1. İçerik Yönetim Sistemi (CMS) Nedir? 1. Neden Joomla? 2. Joomla nın Tarihi 3. Joomla nın Anlamı & Logosu 4

Bütün XML dökümanlarının bir kök elemanı olmalıdır. Diğer bütün elemanlar kök elemanı tarafından kapsanır.

Google Web Toolkit ile Öğretim Elemanı Otomasyon Sistemi

EGE ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ SUNUCU YAZILIM TEKNOLOJİLERİ LABORATUAR PROJESİ JAVA SERVER FACES

Bölüm 24. Java Ağ Uygulamaları 24.1 Java Appletleri. Bir Applet in Yaşam Döngüsü:

Spring Framework Eğitimi

Kaynak Kod Güvenliği Bir Güvensiz API Örneği

HTML isteklerini anlayarak HTML sonucu üreten ve yaygın olarak kullanılan temel Servlet sınıfı HttpServlet tir.

Üst Düzey Programlama

MVP, Observer ve Mediator Örüntüleri ile Yeniden Kullanılabilir Uygulama Bileşenleri Geliştirme

PROGRAMLAMA DERSİ 1. İNTERNET

T.C. MİLLÎ EĞİTİM BAKANLIĞI Talim ve Terbiye Kurulu Başkanlığı

Tekir (Ön Muhasebe Yazılımı)

Java Programlama Giriş

Video Management Software. ÜrünBilgileri

Struts2 ile Merhaba Dünya uygulamas

PHP 1. Hafta 1. Sunum

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 7. LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ. LINUX Yapısı

Özcan Acar 2009 Kurumsal Java.com

Web Uygulamaları Mimarileri ve Güvenliği

Dünyanın bilgisine açılan pencere... Ya da sadece yeni çağın eğlencesi...

Spring Ekosisteminde Kurumsal Yazılım Geliştirme. Kenan Sevindik Harezmi Bilişim Çözümleri A.Ş.

C# ile e-posta Göndermek

Web Uygulama Güvenliği Kontrol Listesi 2010

1.PROGRAMLAMAYA GİRİŞ

Swing ve JDBC ile Database Erişimi

JBoss Seam Next Generation Integration Framework

Veritabanı İşlemleri

PAPERWORK TEKNİK MİMARİ

Eclipse, Nesneler ve Java 2 Java Nereden Çıktı? 2

PAKET TRANSFER SİSTEMİ

MOBILEPAX SOAP PRODUCT API KULLANIM ŞEKLİ

İNTERNET PROGRAMLAMA 2 A S P. N E T. Marmara Teknik Bilimler MYO / Hafta 4 MasterPage

HTML (Hyper Text Markup Language)

ORM & Hibernate. Ahmet Demirelli. SCJP 5.0, SCWCD 1.4 ahmetdemirelli@sabanciuniv.edu

Temel Bilgi Teknolojileri I

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

Asp.Net Veritabanı İşlemleri

JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması

Veritabanı Uygulamaları Tasarımı

COM API v.1.1 BELGE SÜRÜMÜ : 1.1

RightFax'e Tarama. Yönetici Kılavuzu

YAZILIM ÜRÜN HATTI DEĞĐŞKENLĐĞĐNĐN DENETĐM ÇEVRĐMĐ ĐLE ELE ALINMASI

Java Temel Özellikleri

Dünyanın bilgisine açılan pencere... Ya da sadece yeni çağın eğlencesi...

JBoss Seam. Melih Sakarya

Java Dersi. Altuğ Bilgin Altıntaş

Sunucu Taraflı JavaScript ile Gerçek Zamanlı Web Uygulamaları Geliştirme

Veri Tabanı Yönetim Sistemleri Bölüm - 02

Natura 2000 VERI TABANı (GÖREV 2)

İçerik. Temel Kavramlar. Yazılım Geliştirme Aşamaları. Problemi Anlama ve Çözümleme. Biçimsel Gösterim - 1. Nesneye Yönelik Programlama

XML'in Temelleri. XML veri tanimlamayi saglayan ve verilerin alisverisinde kullanilacak standart bir format olarak kullanilan bir dildir.

Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals

Rahman USTA Editör Altuğ B. ALTINTAŞ Papatya Yayıncılık Eğitim

Temel Kavramlar. BS-515 Nesneye Yönelik Programlama. Ders #1 (26 Ekim 2009)

Sevdiğiniz editörü açın, Notepad, vi, pico vb. Daha sonra da aşağıdaki kodu yazın:

Arama Sonuçlarında Üst Sıralarda Olmak. Temel SEO Çalışması

Spring Framework Eğitimi

MODEL VIEW - CONTROLLER (MVC) TASARIM KALIBI

YZM 3215 İleri Web Programlama

PAKET TRANSFER SİSTEMİ

ECLIPSE PROGRAMININ ÇALIŞTIRILMASI

Tarih Saat Modül Adı Öğretim Üyesi. 01/05/2018 Salı 3 Bilgisayar Bilimlerine Giriş Doç. Dr. Hacer Karacan

Durum Yönetimi. Olan sayfalar ekleyelim. BasitSayac.aspx

RightFax'e Tara. Yönetici Kılavuzu

Programlama Dillerinde Kullanılan Veri Tipleri

Transkript:

JavaServer Faces (JSF) Sunucu Yazılım Teknolojileri 2008

JSF Nedir? Yeni nesil Web uygulama anaçatısıdır. Bileşen modeline dayanır: UI Bileşenleri Olay tabanlı etkileşim modeli Geliştiriciler tarafından doğrudan kullanılmak yerine araçlara dayanmaktadır: Örnek: NetBeans Visual Web Pack (VWP) JSP sayfalarını elle yazarak JSF uygulaması geliştirmek de mümkündür

Neden JSF? Web uygulaması geliştirmede Daha yüksek seviyeli soyutlama Olay güdümlü programlama modeli (HTTP'nin istek/yanıt programlama modeline karşıt olarak) MVC tasarım deseni Genişletilebilir bileşen ve rendering mimarisi İstemci aygıt bağımsızlığı desteği Standart Geniş çaplı marka ve endüstri desteği

Neden JSF? Davranış ve görüntüleme arasında iyi bir ayrım sağlar Bileşene özgü olay kotarma UI öğeleri sunucuda durum bilgili (stateful) nesneler halinde Belirli bir görüntüleme (veya dile) sınırlamayan UI bileşenleri ve Web katmanı kavramları JSP de dahil olmak üzere herhangi bir görüntüleme teknolojisiyle çalışır Facelets e olan ilgi artıyor

Neden JSF? JSP ve Servlet JSF içerisinde UI bileşen modeli yok Struts ve JSF birlikte kullanılabilir Struts'ın farkı UI bileşen modeli içermiyor UI bileşenleri için olay modeli içermiyor UI bileşenleri için durum yönetimi içermiyor Birden çok renderer desteği içermiyor (Struts HTML ile daha iç içe)

JSF Nasıl Olmalı Araç dostu İstemci aygıt/protokolunden bağımsız JSP ile kullanılabilir JSP olmadan kullanılabilir HTML kapsamında ve günümüz tarayıcılarında kullanışlı Genişletilebilir Facelets, Seam, vb.

JSF Belirtimi JSF Uygulaması JSF Tags JSF Uyg. JSP (1.2) JSF API Servlets (2.3)

JSF UI Anaçatısıdır Sunucu İstemci istek (olaylar) UI Yanıt (markup)

Masaüstü Tarayıcısı HTML JSF Mimarisi Sunucu JSF Sayfası HTML RenderKit Ön Denetleyici JSF Sayfası Uygulama Telefon WML RenderKit WML

Önemli Basit Yetenekler Genişletilebilir UI component model Esnek rendering modeli Olay kotarma modeli Doğrulama anaçatısı Basit sayfa dolaşım desteği Uluslararasılaştırma Erişim

JSF bileşen ağacı View Form input input combo command

Anahtar JSF Kavramları UIComponent Render bağımsız özellikler Temel sınıfta standart davranışlar Standart UIComponent alt sınıfları: UICommand, UIForm, UIGraphic, UIInput, UIOutput, UIPanel, UISelectBoolean, UISelectMany, UISelectOne FacesEvent İstek ve uygulama olayları için temel sınıf Validator Standart ve uygulama tanımlı doğrulayıcılar için temel sınıf

Anahtar JSF Kavramları Converter String Nesne çevrimi için eklenti FacesContext Servlet istek, yanıt, oturum JSF istek, yanıt ağaçları Model referans ifade değerlendiriciler

Anahtar JSF Kavramları Renderer Bileşenleri belli bir markup diline veya işaret dilini bileşenlere çevirir Bileşenlerdeki render bağımlı özellikleri destekler Birden fazla bileşen tipini destekleyebilir RenderKit Renderer kütüphanesidir Çalışma zamanında genişletilebilir Basit HTML RenderKit'i belirtimin parçasıdır

Application Class Represents a per web application singleton object Maintains application wide objects set of supported locales converters validators Serves as a factory for creating components, converters, and validators public abstract UIComponent createcomponent(string componenttype) throws FacesException

Uygulama Yapılandırma Dosyası Uygulamanın başlamasında gereken kaynakları yapılandırmak için kullanılan XML dosyasıdır Dolaşım kuralları, dönüştürücüler, doğrulayıcılar, render kitleri faces config.xml Tüm tanımlamalar <faces config> etiketi içinde olmalı <faces config>... </faces config>

<?xml version="1.0"?> Örnek: faces config.xml <! Copyright 2003 Sun Microsystems, Inc. All rights reserved. SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. > <!DOCTYPE faces config PUBLIC " //Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN" "http://java.sun.com/dtd/web facesconfig_1_0.dtd"> <faces config> <application> <locale config> <default locale>en</default locale> <supported locale>de</supported locale> <supported locale>fr</supported locale> <supported locale>es</supported locale> </locale config> </application>

Örnek: faces config.xml <navigation rule>... <from view id>/greeting.jsp</from view id>... </navigation rule> <navigation rule>... <from view id>/response.jsp</from view id>... </navigation rule> <managed bean>... <managed bean name>usernumberbean</managed bean name>... <managed bean> </faces config>

Uygulama Yapılandırma Dosyası Birden fazla yapılandırma dosyası olabilir Bu dosyanın uygulama tarafından kullanılabilmesi için üç yol vardır /META INF/faces config.xml isimli bir dosyanın /WEB INF/lib altındaki herhangi bir JAR içerisinde olması Başlangıç parametresi kullanımı : javax.faces.application faces config.xml isimli dosyanın /WEB INF/ dizininde bulunması (en sık kullanılan yöntem)

Application Sınıfı Uygulama başlayınca JSF gerçekleştirimi Application sınıfının tek bir örneğini yaratır. Her uygulama için otomatik olarak yaratılır FacesContext.getApplication()

Backing Beans Sayfada kullanılan UI nesneleriyle ilişkili sunucu taraflı nesnelerdir UI bileşen özellikleri tanımlar Bileşenin değeri veya Bileşen örneği Bileşen ile ilişkili işlemleri gerçekleştiren metotları tanımlar (doğrulama, olay kotarma ve dolaşım işleme de dahil)

Neden Backing Bean ler? Modeli, görünümden ayırmak için (MVC) Model uygulama mantığını ve veriyi yürütmek içindir: Backing Bean ler ve Model nesneleri Görünüm sunumu gerçekleştirir: UI bileşenleri

Backing Bean Kullanımı Sayfayı yazan kişi JSF İfade Dilini (JSF EL) kullanarak bileşen değerini veya örneğini bir Backing Bean özelliğine bağlar: JSF EL "#{...}" biçimindedir Ayrıca JSF EL ile backing bean metotlarını da referans edebilir.

Örnek: greeting.jsp <h:inputtext id="userno" value="#{usernumberbean.usernumber}" validator="#{usernumberbean.validate}"/> userno, UserNumberBean.userNumber backing bean özelliğine bağlanan bileşen değeri

faces config.xml içerisinde UserNumberBean <managed bean> <description> The "backing file" bean that backs up the guessnumber webapp </description> <managed bean name>usernumberbean</managed bean name> <managed bean class>guessnumber.usernumberbean</managed bean class> <managed bean scope>session</managed bean scope> <managed property> <property name>minimum</property name> <property class>int</property class> <value>0</value> </managed property> <managed property> <property name>maximum</property name> <property class>int</property class> <value>10</value> </managed property> </managed bean>

Sayfa Dolaşımı Dolaşım kuralları uygulama yapılandırma dosyasında tanımlanır Dolaşım kuralları kullanıcı bir düğmeye veya bağlantıya bastıktan sonra hangi sayfaya gidileceğini belirler.

Örnek 1 <navigation rule> <description> The decision rule used by the NavigationHandler to determine which view must be displayed after the current view, greeting.jsp is processed. </description> <from view id>/greeting.jsp</from view id> <navigation case> <description> Indicates to the NavigationHandler that the response.jsp view must be displayed if the Action referenced by a UICommand component on the greeting.jsp view returns the outcome "success". </description> <from outcome>success</from outcome> <to view id>/response.jsp</to view id> </navigation case> </navigation rule>

Örnek 2 <navigation rule> <description> The decision rules used by the NavigationHandler to determine which view must be displayed after the current view, response.jsp is processed. </description> <from view id>/response.jsp</from view id> <navigation case> <description> Indicates to the NavigationHandler that the greeting.jsp view must be displayed if the Action referenced by a UICommand component on the response.jsp view returns the outcome "success". </description> <from outcome>success</from outcome> <to view id>/greeting.jsp</to view id> </navigation case> </navigation rule>

Dolaşım Kuralı <navigation rule> (from tree id öğesi ile tanımlanmış) bir sayfadan uygulamanın diğer sayfalarına nasıl gidileceğini belirler Herhangi sayıda <navigation case> öğesi içerebilir <navigation case> Mantıksal çıkarsamaya (from outcome ile tanımlı) dayanarak açık sonraki (to tree id) sayfayı tanımlar

Outcome? Outcome formu gönderen UICommand bileşeninin action özelliğiyle tanımlanır action string veya olay metotu olabilir (#{<BackingBean>.<Method>}) <h:commandbutton id="submit" action="success" label="submit" /> <h:commandbutton action="#{carstore.buycurrentcar}" value="#{bundle.buy}" />

İleri Konular MyFaces Seam Facelets PhaseListener Geliştirici rolleri