Bilal Koçoğlu/ Ocak 15, 2019/ JSP

Directive Elements

JSP Directive’leri, web kapsayıcısının bir JSP sayfasını ilgili servislere nasıl çevireceğimizi söyleyen mesajlardır. Örnek olarak JSP sayfamızı bir hata sayfasına çevirmek istersek bunun için birazdan çeşitlerini göreceğimiz directive elementlerinden birini kullanarak gerçekleştirebiliriz.

Üç tip directive elementi mevcuttur. Bunlar;

  • page directive
  • include directive
  • taglib directive

Tüm directive elementleri için ortak syntax;

<%@ directive attribute=”value” %>

Page Directive

Tüm JSP sayfalarına uygulanacak özellikleri tanımlar. Sytax şu şekildedir;

<%@ page attribute=”value” %>

Şimdi ise page directive ile tanımlayabileceğimiz özelliklere göz atalım;

1- import

İmport özelliği; sınıf, interface veya bir paket altındaki tüm ögeleri sayfaya import etmek(sayfa içine aktarmak) için kullanılır. Bu özelliği aslında daha önceki derslerde incelediğimiz implicit objects konusunda kullanmıştık. Tekrar hangi durumlarda nasıl kullanıldığını görelim;

Görüldüğü üzerre LocalDateTime sınıfını kullanmak istedik. Bunun için bu sınıfı import etmemiz gerekirdi. Bu işi page directive ile gerçekleştirdik.

<%@ page import=”java.time.*” %>

Şeklinde kullanıp, java.time paketi içindeki tüm sınıfları import edebilirdik. Fakat sadece ihtiyacımız olan class ve interface’leri import etmek her zaman daha mantıklı bir tercihtir.

2- contentType 

ContentType özelliği, Http response tipini tanımlamak için kullanılır. Kullanılmazsa varsayılan olarak “text/html;charset=ISO-8859-1” olarak tanımlıdır. Örnek olarak birkaç çeşit vermek gerekirse;

<%@ page contentType=”text/html;charset=UTF-8″ %>

<%@ page contentType=”application/msword” %>


3- extends 

Nadiren kullanılan bu özellik, miras alınacak bir sınıf varsa, bu ilişkiyi tanımlamak için kullanılır.

4- info

Bu özellik sayesinde daha sonra diğer Servlet lerde sayfa hakkında bilgi alabilmek için JSP sayfasına ait bilgiler tanımlanabilir. Bu özellik ile tanımlanan değerler JSP sayfası hakkında bilgiler verir.

<%@ page info = “created by Bilal Kocoglu” %>

Bu özellik Servlet‘te kullanılan override edilebilen getServletInfo() methodu ile aynı işlevi görmektedir.

5- buffer

Buffer özelliği, JSP sayfası tarafından üretilen çıktıyı işlemek için gereken maksimum bellek boyutunu kilobyte cinsinden tanımlamak için kullanılır. Bu özellik kullanılmazsa varsayılan olarak arabellek boyutu 8kb’dir.

6- language

Language özelliği, script dilini belirtmek için kullanılır. Varsayılan değeri “java” dır.

7- isELIgnored

Bu özellik sayesinde JSP sayfasında Expression Language(EL)’i etkisizleştirebilir, görmezden gelebiliriz. Bu özelliğin varsayılan değeri false’tur. Yani sayfa içerisinde EL’in algılanmasını istiyorsak bu özelliği kullanmamıza gerek yoktur. Expression Language konusu daha sonraki derslerde detaylı bir şekilde incelenecektir.

8- isThreadSafe

JSP ve Servlet teknolojilerinin her ikisi de multi thread(iş parçacığı) ile çalışırlar. JSP sayfasının bu davranışını kontrol etmek için isThreadSafe özelliği kullanılır. Bu özelliğin Servlet teknolojisindeki karşılığı (servlet kategorisinde detaylı bilgiyi bulabilirsiniz) implement ettiğimiz SingleThreadModel interface’idir.

Bu özelliğin varsayılan değeri “true” dir. Bunu “false” yaparsak, artık JSP sayfamız çoklu thread ile çalışmayacaktır. Yani gelen tüm istekleri eş zamanlı olarak işleyemeyecek, bir istek işlenirken başka istek kabul edilemeyecektir. Karmaşık olarak gözükebilir ama bazı senaryolarda problem çözücü rol oynayabilecek bir özelliktir.

<%@ page isThreadSafe=”false” %>

9- errorPage

ErrorPage özelliği, error sayfası tanımlamak için kullanılır. Bu tanımlama yapıldığında JSP sayfasında bir hata oluştuğunda program çökmeyip sizin errorPage özelliğinde belirttiğiniz error sayfasına yönlendirilir. Böylece burada gerçekleşen hata ile ilgili kullanıcıya kendi kontrolünüzde mesajlar verebilirsiniz. Örnek verecek olursak;

index.jsp

Burada daha önceki örneklerimizden bir sayfa aldım ve ek olarak errorPage özelliğini tanımladım. Aynı zamanda nasıl çalıştığını gösterebilmek için hata almamız gerekiyordu. Bunun için 100/0 işlemini gerçekleştirdim. Şimdi error.jsp sayfasını inceleyelim.

9- isErrorPage

Bu özellik JSP sayfasının bir hata sayfası olup olmadığını belirtir. Kolayca açıklamak için yukarıdaki örnekte errorPage olarak error.jsp’ yi belirtmiştik.

error.jsp

Burada isErrorPage özelliğine “true” değerini vererek bu sayfanın bir hata sayfası olduğunu, yani diğer sayfalarda bir hata ile karşılaşılırsa bu sayfaya yönlendirme olacağını belirttik ve gelen hatayı kullanıcıya gösterdik.

Çıktıya bakacak olursak ilk olarak index.jsp sayfası açılmaya çalışılacak ancak burada hata oluştuğu için istek(request), index.jsp sayfasının isErrorPage özelliğinde belirttiğimiz sayfaya yönlendirilecek. Burada ise alınan hata bir mesaj olarak kullanıcıya bildirilecek.

Directive Element Page
Directive Element Page

Bir sonraki dersimizde include ve taglib directive elementlerini inceleyeceğiz. Sorularınızı ve önerilerinizi bizimle paylaşmayı ihmal etmeyin. İyi çalışmalar dilerim 🙂

Bir Yorum Yapın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*
*