İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır

JSP 2.0 Geliyor.

JaveServer Pages : Version 2

Enterprise computing piyasasında devrim yaratan JSP (JavaServer Pages) teknolojisi, yeni spesifikasyon (JSP 2.0)'la birlikte bir çok yenilik getiriyor. Çeşitli eklemelerden oluşan bu değişiklikte temel amaç JSP yazımını kolay ve basit hale getirmek. Bu gelişmeyle birlikte hiç Java bilmeyen insanlar da JSP sayfalarında bir çok gelişmiş programlama özelliklerini kullanabilecekler. Yeni özellikler öncelikle Apache Tomcat 5.0'da uygulamaya sokulurken diğer application server üreticilerinin de şimdiye kadar kısmen benimsedikleri özellikleri içeren yeni spesifkasyonu en kısa zamanda tamamen benimsemeleri bekleniyor.

EL : Expression Language

En önemli değişikliklerden biri JSP Expression Language (EL) adında bir tanımlama dilinin geliştirilmiş olması. EL ile bir tag'e attribute aktarmak veya bir bean'in herhangi bir property'sine erişmek çok kolay hale geliyor. JSP 2.0 öncesinde bir tag'a attribute aktarmak için

	<mytags:mytag attribute="<%= pageContext.getAttribute("myattribute") %>">

şeklinde bir ifade gerekirken JSP 2.0'da

	<mytags:mytag attribute="${myattribute}">

demek yeterli olacak. Burada sağlanan, geliştirme kolaylığı ve kod okunaklılığın artırılması. İşlevsel açıdan bir değişiklik yok.

Bean'lere erişim için daha önce

	<%= mybean.getXxxxx().getYyyyy() %> 

şekinde kullanılan bir ifade yerine

	${mybean.xxxxx.yyyyy} 

yazmak yeterli oluyor. Adı verilen bir property'ye erişmek için

	$mybean["property"];

şeklinde bir yöntem kullanmak da mümkün. Köşeli parantezler dizi ve collection'lara index'le veya key'le erişim için kullanılabilir. Örneğin

	$myarray[3]
	$mylist[3]	
	$myhashtable["mykey"]	

gibi ifadeler kullanılabiliyor

EL bir '+','-','*','/' gibi bir çok operatörü destekliyor. Hatta '/' yerine 'div', '%' yerine 'mod', '<' yerine 'lt' gibi karşılıklar da diğer dillerden bu operatörleri bilenler için konulmuş. Geliştiriciler Java kodu yazmadan bir çok değere erişebilsinler diye çok sayıda iç (implicit) nesne tanımlanmış. Bunların cookie, header, param gibi çok kullanılan nesneler de var. EL sintaksı JavaScript'e benzerlik gösterdiği için bu dile aşina olanlar tarafından da kolaylıkla benimsenebilir.

Function Tanımlama

En ilginç özelliklerden biri, bean tanımına uyan Java nesnelerini çağırmada kolaylık dışında, Java'da tanımlanan static bir method'un bir function descriptor yazılarak EL içerisinde kullanılabilmesidir. Örneğin

Göster Gizle Kopar Satır Gizle Satır Göster
  1 package jsp2.examples.el;
  2 import java.util.*;
  3 public class Compute {
  4    public static int add(String x, String y) {
  5       int a = 0;
  6       int b = 0;
  7       try {
  8         a = Integer.parseInt(x);
  9         b = Integer.parseInt(y);
 10       }catch(Exception e) {} 
 11       return a + b;
 12    }
 13 }

şeklinde bir class'ta tanımlanan static add() methodu bir tag library'de

Göster Gizle Kopar Satır Gizle Satır Göster
  1 <function>
  2     <description>add x and y</description>
  3     <name>add</name>
  4     <function-class>jsp2.examples.el.Compute
  5         </function-class>
  6     <function-signature>int
  7         add(java.lang.String,java.lang.String)
  8             </function-signature>
  9 </function>

şeklinde tanıtılırsa şu şekilde kullanılabilir :

Göster Gizle Kopar Satır Gizle Satır Göster
  1 <%@ taglib prefix="my" uri="http://jakarta.apache.org/tomcat/jsp2-example-taglib %>
  2 <HEAD>
  3 <TITLE>Functions</TITLE>
  4 </HEAD>
  5 <BODY>
  6 <H3>Add Numbers</H3>
  7 <P>
  8 <FORM action="math.jsp" method="GET">
  9    X = <input type="text" name="x" value="${param["x"]}"><BR>
 10    Y = <input type="text" name="y" value="${param["y"]}">
 11    <input type="submit" value="Add Numbers">
 12 </FORM>
 13 <P>
 14 The sum is: ${my:add(param["x"],param["y"])}
 15 </BODY>
 16 </HTML>

Görüldüğü gib JSP sayfasında hiç Java kodu bulunmamaktadır.

TAG'ler

Bilindiği gibi JSP teknolojisinin ilginç özelliklerinden biri tag extension'larıdır. Buna göre HTML veya herhangi bir markup diline ait taglara yenileri eklenebilir. Daha doğru bir deyişle belli bir işlev gören kod, herhangi bir markup element'iymiş gibi çağrılabilir. Ancak bir tag yaratmak çok da kolay olmadığı için bir çok geliştirici bu gelişmiş özelliği kullanmamaktadır. JSTL (Java Standart Tag Library) projesiyle birlikte bir çok kullanışlı tag geliştiricilerin hizmetine sunulmuştur. (JSTL, 2.0'den itibaren JSP'ye entegre edildi.) Ancak pek az geliştirici kendi taglarını yazma yoluna gitmiştir. JSP 2.0''la birlikte Simple Tag Extension adından basit tagları çok kolay geliştirebilmek için bir sistem geliştirilmiştir. Sadece doTag() diye bir methodu'un içini yazmak bir tag yaratmak için yeterli olmaktadır.

Simple Tag Extension kullanmanın doYag() methodu yazmaktan daha da basit bir yolu geliştirlmiştir. Buna göre herhangi bir tag'da yapılacak olanları .tag uzantılı bir dosyaya normal JSP sintaksını kullarak yazmak ve

	<%@ taglib prefix="tags" tagdir="/WEB-INF/mytags" %>

şeklinde tagların bulunduğu konumu belirtmek yeterlidir. Örneğin mytag.tag'da tanımlanmış bir tag'ı

	<mytags:mytag/>

şeklinde kullanmak mümkündür. Burada mytag.tag'ın içeriği herhangi bir JSP kodu, HTML, hatta düz text de olabilir.

Göster Gizle Kopar Satır Gizle Satır Göster
  1 <%@ attribute name="color" %>
  2 <%@ attribute name="bgcolor" %>
  3 <%@ attribute name="title" %>
  4 <TABLE border="0" bgcolor="${color}">
  5   <TR>
  6     <TD><B>${title}</B></TD>
  7   </TR>
  8   <TR>
  9     <TD bgcolor="${bgcolor}">
 10       <jsp:doBody/>
 11     </TD>
 12   </TR>
 13 </TABLE>

Burada tanımlanan tag

	<mytags:display color="#ffcc11" bgcolor="#ffffcc" title="Sports">

şeklinde kullanılabilir. Böylelikle tag kullanmanın kolaylığı yanısıra tag yazmak da kolaylaşmış oluyor.

JSP 2.0 Ve Ötesi

JSP'ye eklenmiş, yukarıda anlatılan (ve anlatılmayan) bir çok özellik, Java'nın server piyasasında önce Servlet'lerle başlayan sonra JSP ile devam eden çizgisinin giderek daha da gelişerek süreceğini gösteriyor. JSP'nin Servlet teknolojisinin üstüne kurulması, Tag'lerin ve EL'nin de bu teknolojiler üzerine bina edilmesi, sağlam bir teknolojinin özelliklerini kaybedecek kadar değişmeden gelişebileceğini göstermiş oluyor. Bu son gelişmelerle JSP gibi güçlü bir teknolojinin giderek kolaylaştığını görüyoruz. Önümüzdeki günlerde PHP, Perl, ASP, Phyton, CFML ve JavaScript gibi dilleri bilenlerin daha JSP'ye yöneleceği öngörülüyor. Her ne olursa olsun, artık kimse "Java zor!" demeyecek.

Dosya Listesi

İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır