Java Server Pages (JSP)
Bir java uygulama sunucusu üzerinde çalışan, HTML, CSS Javascript çıktısı üretebilen java gösterim teknolojisidir. JSP, Html içine özel taglar "<%.....%> kullanılarak, java kodları yazılması ile elde edilir. Web sunucusunda değil, uygulama sunucusunda çalışır.
Yazılış şekline basit örnek şu verilebilir :
<hmtl>
<head>
<title> İlk JSP </title>
<body>
<%
String name="Aylin";
System.out.println ("Merhaba" +name+ "Giriş yaptığın saat :"+ LocalTime.now(); +"olarak kaydedilmiştir");
%>
</body>
</html>
JSP platformdan bağımsızdır. Java Classları ile çalışabilmektedir. Apache Tomcat gibi uygulama sunucularında çalışır.
Servlet
Sunucu üzerinde çalışan dinamik içerik üreten web bileşenidir. HttpServlet buna örnektir. JSP kodu ilk çağrılınca, Tomcat gibi sunucular başlatıldığında JSP kodunun servlet tarafından classları oluşturulur. Sunucuda servletin bir instance i (örneği ) oluşturulur ve sunucunun yaşam süresi boyunca bekler, gelen isteklere yanıt verir.
Bir JSP nin yaşam döngüsünde ilk dört adım JSP 'nin Servlet ' e dönüşme adımlarıdır :
- Sayfa parse edilir, java sınıfına dönüştürülür.
- Compile edilir.
- Hafızaya yüklenir.
- instance yaratılır.
- jsplnit() metotu çağrılır.
- _jspService() metotu çağrılır
- jspDestroy() metotu çağrılır ve son bulur.
Java Server Faces (JSF)
JSF MVC tabanlı bir teknolojidir. Kontrol, modelleme ve gösterimi ayrı ayrı yapabilmek için geliştirilmiştir. İki tip MVC vardır ; request tabanlı ve olay(event) tabanlı MVC. Request tabanlı olan apache strutsdur . Olay tabanlı olan ise JSF dir. Kendi içinde hazır kütüphaneleri vardır. Bazı bileşenler daha önceden yapılmış hazır paketler halinde sunulur.
Sonuç olarak diyelim ki dataTable kullanacaksınız JSF ' nin hazır componentleri ile yapabileceğiniz gibi, JSP ile HTML ve CSS kodları yazarak da gerçekleştirebilirsiniz. JSP ve JSF nin basit olarak farkı budur diyebiliriz.
Java Bean
Bean sınıfları çok katmanlı uygulamalarda katmanlar arası iletişim , veri taşımak için kullanılır. Veritabanı işlemleri yaptığınız bir uygulamada sınıflar birbirlerinin metotlarını çağırıp kullanabilir. Bu çağrıları da parametrelerle gerçekleştirir. Bir çok özellik barındıran bir bileşen düşünün bunların her birini parametre olarak tek tek göndermek yerine bileşenlerin değerlerini bean sınıfa yazıp geri göndermek daha mantıklıdır. Bean sınıf, parametre almayan varsayılan yapıcı metotları içermeli, tüm değişkenleri private tanımlanmalı, get set metotları olmalı, java.io.Serializable arayüzünü implement etmeli !
Örnek bir bean sınıf :
public class StudentsBean implements java.io.Serializable
{
private String firstName = null;
private String lastName = null;
private int age = 0;
public StudentsBean() {
}
public String getFirstName(){
return firstName;
}
public String getLastName(){
return lastName;
}
public int getAge(){
return age;
}
public void setFirstName(String firstName){
this.firstName = firstName;
}
public void setLastName(String lastName){
this.lastName = lastName;
}
public void setAge(Integer age){
this.age = age;
}
}