-PDF

advertisement
JavaServerFaces
Ahmet Demirelli
SCJP 5.0, SCWCD 1.4
ahmetdemirelli@sabanciuniv.edu
Sabancı Üniversitesi Bilişim Teknolojileri
Yüksek Lisans Programı Seminerleri
2008
Hakkımızda
SabancıÜniversitesi BT Yüksek Lisans Programı
Yüksek Lisans Eğitimi
Kurumsal Java / .NET/ Network eğitimleri
Programlama (Java, JavaEE ,.NET, C#,Php)
Database (Oracle, MySQL,MSSQL, PL/SQL)
Network (LAN,WAN, Router Configuration.etc)
Sistem ve Network Güvenliği
http://www.sabanciuniv.edu/mdbf/kcenter/tr/
http://www.sabanciuniv.edu/mdbf/kurslar/tr/
Kurumlara teknoloji danışmanlığı ve proje yardımı
Ajanda
Hakkımızda
Model-1 ve Model-2 Mimari
Model View Controller (MVC)
MVC Frameworkleri
Java Server Faces
Örnek Uygulama
Sorular??
Model-1 Mimari
Application Server
Browser
JSP
(view)
JavaBean
(model)
HTML form bilgisini JSP veya Servlet`e gönderir
JSP den iş bilesenlerine baglanır
İs bileşenleri database işlemlerini yapar
Yapılan işlem sonucu JSP ye bilgi döner
JSP dönen sonucu client tarafına gönderir
Database
Model 1 Dezavantajları
Bakım zorlugu
Hataların bulunma zorlugu
Sayfa akış düzenini degistirme zorlugu
Modüler olmayan uygulamalar
Sisteme yeni modüller ekleme zorlugu
Güncelleme problemi
Model 2 Mimari (MVC)
Application Server
Controller
(Servlet)
Browser
View
(JSPs)
Model
(JavaBean)
Database
Bütün istekler Controller servlet tarafından karşılanır
Controller Servlet, Model sınıflarını kullanarak işlemi yapar
Model bilesenleri database ile ilgili islemleri yapar
Yapılan işlem sonucunda gösterilecek olan bilgi view
bileşenleri (JSP) ile gösterilir.
JSP dönen sonucu client tarafa gönderir
Model-View-Controller
Model (İş bileşenleri katmanı)
Verilerin ve iş kurallarının işlendigi katmandır
Bu katmanda yapılanlar;
Database sorgulamaları (Pesistence için JPA veya bir ORM
Frameworkü kullanılabilir)
İş kurallarının kontrolü
Veri ve uygulama kuralları katmanını (business layer)
sunum katmanından (presentation layer) ayırır
Model-View-Controller
View (Sunum katmanı)
Client tiplerine göre sunumun düzenlenmesi
İş katmanında işlenen verilerin gösterilmesi
Model-View-Controller
Controller (Kontrol katmanı)
Uygulamaya gelen isteklerin nasıl işlenecegine ve
sonucunun nasıl gösterileceği bilgisini tutar
Kullanıcı isteklerine göre hangi iş bilesenlerinin
çalısacagına karar verir
İş bilesenlerinden gelen bilgilerin sunum katmanında
hangi görüntü bileşenine yönlendirileceğine ve nasıl
görüntüleneceğine karar verir
Ör : Dil seçenekeleri veya rollere göre sayfaların görüntülenmesi
MVC Avantajları
Hızlı uygulama geliştirme imkanı (?)
Esnek ve moduler yapı
Sayfa akış kontrolu merkezi olması
Katmanların net olarak birbirinden ayrılması
MVC Dezavantajları
Saglam bir MVC uygulaması yazmak iyi bir
tasarım ve kodlama gerektirir
Eğer bir framework kullanılacak ise frameworkü
öğrenmek ve uygulama geliştirmeye başlamak vakit
alır
Her bir istek (request) için arka planı
tasarlanmalıdır. (Controller, model ve view
bilesenleri tasarlanmalıdır)
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
Java Server Faces
Web uygulamala arayüzleri geliştirmeyi
kolaylaştıran java tabanlı Web Framework
tanımlaması ve referans uygulamasıdır (JSF-RI).
JSF Açık kaynak kodlu standarttır: JSR127.
Java Community Process : www.jcp.org.
JSF, Java EE teknolojisinin bir parçasıdır.
JavaEE uyumlu tüm uygulama sunucularda
çalıştırılabilir.
Java`nın ASP.NET e karşılık gelen teknolojisidir.
Java Server Faces
Neden Kullanılmalı ?
Hazır MVC altyaspısını sağlar
Uygulama geliştiricilerin rollerini net bir şekilde
ayırır
Genisletilerbilir bir komponent altyapısı sunar
Standarttır ***
Endüstri desteği hergün artmaktadır
Hızlı uygulamalar geliştirmemizi sağlar
Uygun gelistirme araçları ile sürükle-bırak
şeklinde uygulama geliştirme imkanı sunar
Java Server Faces
Popüler JSF Implemantasyonları
MyFaces
http://myfaces.apache.org/
JSF-RI
http://java.sun.com/javaee/javaserverfaces/
http://javaserverfaces.dev.java.net/
Java Server Faces
JSF Framework içerisinde;
Java sınıfları
Tag kütüphaneleri
“Faces” bilesenleri : HTML bilesenlerinin sunucu tarafındaki
karsılıkları (text, buttons, checkboxes, etc.)
FacesServlet (Controller)
Yardımcı sınıflar (Validator, Converter..etc)
Hazır tag kütüphaneleri
Konfigürasyon dosyası (faces-config.xml)
JSF projesi konfigürasyonu: sayfa geçisleri ve yönlendirmeleri,
Uygulamada kullanılacak olan JavaBean (ManagedBean /
BackingBean) tanımları
Java Server Faces
JSF önyüz (loginpage.jsp)
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<f:view>
<h:form>
<h:inputText id="name" value="#{user.username}" /> <br>
<h:inputText id="lname" value="#{user.password}" /><br>
<h:commandButton id="click" value="click"
action="#{user.authenticateUser}" /><br>
</h:form>
</f:view>
Java Server Faces
ManagedBean
public class User {
private String username;
private String password;
public User() {
}
public String getUsername() { return username;}
public void setUsername(String username) { this. username
= username;}
public String getPassword() { return password; }
public void setPassword(String password) { this. password
= password; }
public String authenticateUser() {
// kullanıcıyı onayla ve “success” döndür
} }
Java Server Faces
faces-config.xml
<managed-bean>
<managed-bean-name>user</managed-bean-name>
<managed-bean-class>edu.sabanciuniv.User</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>/loginpage.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
Java Server Faces
JSF Request yasam döngüsü
Komponent agacının olusturulması
Request degerlerinin atanması
Girdi kontrollerinin yapılması
Model degerlerinin güncellenmesi
Uygulamanın çagırılması
Response un gönderilmesi
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=”#{user.password}” >
<f:validator_length minimum=”6” maximum='10” />
</h:input_text>
Örnek Uygulama
JSP with JSF tags
Required fields
ManagedBean
(user)
username
password
authenticate ( )
success.jsp
fail.jsp
SORULAR
ahmetdemirelli@sabanciuniv.edu
http://people.sabanciuniv.edu/ahmetdemirelli
Download