JSP Direktifleri nelerdir?
- JSP direktifleri, JSP konteynerine gönderilen mesajlardır. JSP sayfasının tamamı hakkında küresel bilgi sağlarlar.
- JSP direktifleri, JSP'nin servlet koduna çevrilmesi için bir konteynere özel talimat vermek için kullanılır.
- JSP yaşam döngüsü aşamasında, JSP, çeviri aşaması olan bir sunucu uygulamasına dönüştürülmelidir.
- Konteynere JSP işlemenin belirli yönlerinin nasıl ele alınacağına dair talimatlar verirler.
- Yönergeler, anahtar-değer çiftleri olarak virgülle ayrılmış birçok özniteliğe sahip olabilir.
- JSP'de yönerge <% @%> etiketlerinde açıklanmıştır.
Direktifin Sözdizimi:
<%@ directive attribute %>
Üç tür yönerge vardır:
- Sayfa yönergesi
- Yönergeyi dahil et
- Taglib direktifi
Her biri aşağıda örneklerle ayrıntılı olarak açıklanmıştır:
Bu eğitimde öğreneceksiniz -
- JSP Page yönergesi
- JSP Include yönergesi
- JSP Taglib Yönergesi
JSP Page yönergesi
Sayfa sözdizimi yönergesi:
<%@ page… %>
- Tüm JSP sayfasına uygulanan öznitelikler sağlar.
- Komut dosyası dili, hata sayfası ve arabelleğe alma gereksinimleri gibi sayfaya bağlı öznitelikleri tanımlar.
- Geçerli JSP sayfasıyla ilgili bir kapsayıcıya talimatlar sağlamak için kullanılır.
Aşağıda, sayfa yönergesi ile ilişkili özniteliklerin listesi verilmiştir:
- Dil
- Uzatmalar
- İthalat
- içerik türü
- bilgi
- oturum, toplantı, celse
- isThreadSafe
- otomatik yıkama
- tampon
- IsErrorPage
- pageEncoding
- hatalı sayfa
- isELIgonored
Her özellik hakkında daha fazla ayrıntı
- dil : Sayfada kullanılan programlama dilini (temel dil) tanımlar.
Dil sözdizimi:
<%@ page language="value" %>
Buradaki değer programlama dilidir (temel dil)
Misal:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%>
Kod açıklaması: Yukarıdaki örnekte, öznitelik dil değeri, bu durumda temel dil olan Java'dır. Bu nedenle, ifade etiketlerindeki kod, java derleyicisi kullanılarak derlenecektir.
- Extends : Bu özellik, JAVA'nın yaptığı gibi sınıfı genişletmek (miras almak) için kullanılır.
Uzantı sözdizimi:
<%@ page extends="value" %>
Burada değer, miras alınması gereken sınıfı temsil eder.
Misal:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%><%@ page extends="demotest.DemoClass" %>
Kodun açıklaması: Yukarıdaki kodda JSP, demotest paketi içindeki DemoClass'ı genişletiyor ve tüm sınıf özelliklerini genişletecek.
- İçe Aktar : Bu öznitelik, sayfa yönergesi özniteliklerinde en çok kullanılan özniteliktir.Kaba servlet kodu üretirken diğer java sınıflarını, arabirimleri, numaralandırmaları vb. İçe aktarmasını söylemek için kullanılır.Java sınıfları, arabirimlerdeki içe aktarma deyimlerine benzer.
İçe aktarma sözdizimi :
<%@ page import="value" %>
Buradaki değer, içe aktarılması gereken sınıfları gösterir.
Misal:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"import="java.util.Date" pageEncoding="ISO-8859-1"%>
Kodun açıklaması:
Yukarıdaki kodda, Date sınıfını java.util paketinden (tüm yardımcı sınıflar) içe aktarıyoruz ve aşağıdaki sınıfın tüm yöntemlerini kullanabilir.
- contentType :
- Karakter kodlama şemasını tanımlar, yani içerik türünü ve cevabın karakter setini ayarlamak için kullanılır.
- Varsayılan contentType türü "text / html; charset = ISO-8859-1" şeklindedir.
ContentType sözdizimi:
<%@ page contentType="value" %>
Misal:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%>
Kodun açıklaması:
Yukarıdaki kodda, içerik türü metin / html olarak ayarlanmıştır, JSP için ve oluşturulan yanıt sayfası için karakter kodlamasını ayarlar.
- bilgi
- GetServletInfo () yöntemi ile erişilebilen bir dizeyi tanımlar.
- Bu öznitelik sunucu uygulaması açıklamasını ayarlamak için kullanılır.
Bilgi sözdizimi:
<%@ page info="value" %>
Buradaki değer sunucu uygulaması bilgisini temsil eder.
Misal:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"info="Guru Directive JSP" pageEncoding="ISO-8859-1"%>
Kodun açıklaması:
Yukarıdaki kodda, "Guru Directive JSP" dizisi getServletInfo () kullanılarak servlet arabirimi tarafından alınabilir.
- Oturum, toplantı, celse
- JSP sayfası varsayılan olarak oturum oluşturur.
- Bazen JSP'de oluşturulacak bir oturuma ihtiyacımız yoktur ve bu nedenle bu durumda bu özniteliği false olarak ayarlayabiliriz. Session özniteliğinin varsayılan değeri true'dur ve oturum oluşturulur.
False olarak ayarlandığında, derleyicinin varsayılan olarak oturumu oluşturmamasını belirtebiliriz.
Oturum sözdizimi:
<%@ page session="true/false"%>
Burada bu durumda oturum özniteliği doğru veya yanlış olarak ayarlanabilir
Misal:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"session="false"%>
Kod açıklaması:
Yukarıdaki örnekte, oturum özniteliği "yanlış" olarak ayarlanmıştır, bu nedenle bu JSP'de herhangi bir oturum oluşturmak istemediğimizi belirtiyoruz.
- isThreadSafe:
- Oluşturulan sunucu uygulaması için iş parçacığı modelini tanımlar.
- Sayfada uygulanan iş parçacığı güvenliği seviyesini gösterir.
- Varsayılan değeri doğrudur, çok eşzamanlı
- Bu özniteliği üretilen sunucu uygulamasında SingleThreadModel arabirimini uygulamak için kullanabiliriz.
- Bunu false olarak ayarlarsak, SingleThreadModel uygulayacak ve paylaşılan nesnelere erişebilir ve tutarsızlık yaratabilir.
İsThreadSafe sözdizimi:
<% @ page isThreadSafe="true/false" %>
Burada doğru veya yanlış, senkronizasyonun orada olup olmadığını gösterir, ardından doğru olarak ayarlanır ve yanlış olarak ayarlanır.
Misal:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"isThreadSafe="true"%>
Kodun açıklaması:
Yukarıdaki kodda, isThreadSafe "true" olarak ayarlanmıştır, bu nedenle senkronizasyon yapılır ve birden fazla evre kullanılabilir.
- Otomatik Yıkama:
Bu öznitelik, arabelleğe alınmış çıktının otomatik olarak boşaltılması gerektiğini ve bu özniteliğin varsayılan değerinin true olduğunu belirtir.
Değer false olarak ayarlanırsa, tampon otomatik olarak temizlenmez ve doluysa bir istisna alırız.
Arabellek yok olduğunda, yanlış meşru değildir ve arabelleğe alma yoktur, bu nedenle otomatik olarak temizlenir.
AutoFlush sözdizimi:
<% @ page autoFlush="true/false" %>
Burada doğru / yanlış, arabelleğe almanın yapılıp yapılmayacağını temsil eder.
Misal:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"autoFlush="false"%>
Kodun açıklaması:
Yukarıdaki kodda, autoflush false olarak ayarlanmıştır ve bu nedenle arabelleğe alma yapılmaz ve çıktıyı manuel olarak temizler.
- Tampon:
- Bu niteliği kullanarak çıktı yanıt nesnesi arabelleğe alınabilir.
- Bu özniteliği kullanarak yapılacak arabelleğe alma boyutunu tanımlayabiliriz ve varsayılan boyut 8KB'dir.
- Sunucu uygulamasına yanıt nesnesine yazmadan önce arabelleği yazmaya yönlendirir.
Arabellek sözdizimi:
<%@ page buffer="value" %>
Burada değer, tanımlanması gereken tamponun boyutunu temsil eder. Arabellek yoksa, yok olarak yazabiliriz ve herhangi bir değerden bahsetmezsek varsayılan 8KB'dir.
Misal:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"buffer="16KB"%>
Kodun açıklaması:
Yukarıdaki kodda, arabellek boyutu 16KB olarak belirtilmiştir, burada arabellek bu boyutta olacaktır
- isErrorPage:
- Bir errorPage'e sahip JSP Sayfasının başka bir JSP sayfasında kontrol edileceğini gösterir.
- "İsErrorPage" özniteliğiyle bildirilen herhangi bir JSP dosyası, hata sayfalarına sahip diğer JSP sayfalarından istisnalar alabilir.
- Yalnızca bu sayfalarda istisnalar mevcuttur.
- Varsayılan değer yanlıştır.
İsErrorPage sözdizimi:
<%@ page isErrorPage="true/false"%>
Misal:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"isErrorPage="true"%>
Kodun açıklaması:
Yukarıdaki kodda, isErrorPage true olarak ayarlanmıştır. Bu nedenle, diğer JSP'lerin errorPage (sonraki öznitelikte açıklanmıştır) öznitelik kümesine sahip olup olmadığını kontrol eder ve istisnaları işleyebilir.
- Sayfa Kodlaması:
Başkası belirtilmezse varsayılan "ISO-8859-1" olarak belirtilir.
PageEncoding sözdizimi:
<%@ page pageEncoding="vaue" %>
Buradaki değer, JSP için karakter seti değerini belirtir
Misal:
<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1"isErrorPage="true"%>
Kodun açıklaması:
Yukarıdaki kodda "pageEncoding" varsayılan karakter seti ISO-8859-1 olarak ayarlanmıştır.
- hatalı sayfa:
ErrorPage sözdizimi:
<%@ page errorPage="value" %>
Buradaki değer, hata JSP sayfası değerini temsil eder
Misal:
<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1"errorPage="errorHandler.jsp"%>
Kodun açıklaması:
Yukarıdaki kodda, istisnaları ele almak için errroHandler.jsp var
- göz ardı edildi:
- IsELIgnored, EL etiketlerini göz ardı edip etmemeye karar vermemiz gereken bir bayrak niteliğidir.
- Veri türü java enum'dur ve varsayılan değer false'tur, bu nedenle EL varsayılan olarak etkindir.
İsELIgnored sözdizimi:
<%@ page isELIgnored="true/false" %>
Burada doğru / yanlış, EL'nin göz ardı edilip edilmeyeceğini temsil eder.
Misal:
<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1"isELIgnored="true"%>
Kodun açıklaması:
Yukarıdaki kodda, isELIgnored doğrudur ve bu nedenle İfade Dili (EL) burada göz ardı edilir.
Aşağıdaki örnekte dört özellik kullanıyoruz (kod satırı 1-2)
Dört öznitelikli örnek
<% @ page language = "java" contentType = "text / html;" pageEncoding = "ISO-8859-1"isELIgnored = "false"%><% @ page import = "java.util.Date"%>Directive Guru JSP1 Tarih: <% = yeni java.util.Date ()%>
Kodun açıklaması:
Kod Satırı 1-2: Burada dört öznitelik tanımladık, yani
- Dil: Programlama dili olarak Java olarak ayarlanmıştır.
- contentType: derleyiciye html'nin biçimlendirilmesi gerektiğini söylemek için metin / html olarak ayarlayın
- pageEncoding: varsayılan karakter kümesi bu öznitelikte ayarlanır
- isELIgnored: İfade Etiketi yanlış olduğundan yok sayılmaz
Kod Satırı 3: Burada import özelliğini kullandık ve Java kullanım paketinden "Date class" i ithal ediyor ve kodda güncel tarihi göstermeye çalışıyoruz.
Yukarıdaki kodu çalıştırdığınızda, aşağıdaki çıktıyı alacaksınız
Çıktı :
- Tarih: Tarih sınıfının tarih yöntemini kullanan geçerli tarih
JSP Include yönergesi
- JSP "include yönergesi" (kod hattı 8) bir dosyayı diğerine dahil etmek için kullanılır
- Dahil edilen bu dosya HTML, JSP, metin dosyaları vb. Olabilir.
- Ayrıca, kullanıcı görünümleriyle şablonlar oluşturmada ve sayfaları üstbilgi, altbilgi ve kenar çubuğu eylemlerine ayırmada kullanışlıdır.
- Çeviri aşamasında dosya içerir
İnclude yönergesinin sözdizimi:
<%@ include… .%>
Misal:
Directive_jsp2.jsp (Ana dosya)
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ include file = "directive_header_jsp3.jsp"%>Guru Direktifi JSP2 Bu ana dosyadır
Directive_header_jsp3.jsp (ana dosyada bulunur)
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Başlık dosyası: <% int sayısı = 1; count ++;out.println (count);%>:
Kodun açıklaması:
Directive_jsp2.jsp:
Kod Satırı 3: Bu kodda, directive_header_jsp3.jsp dosyasını ana dosyaya (_jsp2.jsp) dahil ettiğimiz ve hem ana dosyanın hem de dahil edilen dosyanın çıktısını aldığımız yerde include etiketleri kullanıyoruz.
Directive_header_jsp3.jsp:
Kod Satırı 11-12: 1'e başlayan değişken sayımı aldık ve sonra artırdık. Bu, çıktıyı aşağıda gösterildiği gibi ana dosyada verecektir.
Yukarıdaki kodu çalıştırdığınızda aşağıdaki çıktıyı alırsınız:
Çıktı:
- Çıktı, Başlık dosyasıdır: 2: Bu ana dosyadır
- Çıktı, directive_jsp2.jsp dosyasından çalıştırılırken, directive_header_jsp3.jsp dahil edilen dosya ilk olarak derlenecektir.
- Dahil edilen dosya tamamlandıktan sonra, ana dosya çalıştırılır ve çıktı "Bu ana dosyadır" ana dosyasından alınır. Böylece çıktıyı _jsp3.jsp'den "Başlık dosyası: 2" ve _jsp2.jsp'den "Bu ana dosyadır" olarak alacaksınız.
JSP Taglib Yönergesi
- JSP taglib yönergesi, etiket kitaplığını JSP'de kullanabileceğimiz önek olarak "taglib" ile tanımlamak için kullanılır.
- JSP Özel Etiketler bölümünde daha fazla ayrıntı ele alınacaktır
- JSP taglib direktifi, JSP standart etiket kitaplıklarını kullanan JSP sayfalarında kullanılır.
- Bir dizi özel etiket kullanır, kitaplığın konumunu tanımlar ve JSP sayfasındaki özel etiketleri tanımlamanın yollarını sağlar.
Taglib yönergesinin sözdizimi:
<%@ taglib uri="uri" prefix="value"%>
Burada "uri" özelliği, etiket kitaplığı tanımlayıcısındaki benzersiz bir tanımlayıcıdır ve "önek" özelliği bir etiket adıdır.
Misal:
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib prefix = "gurutag" uri = "http://java.sun.com/jsp/jstl/core"%>Guru Direktifi JSP
Kodun açıklaması:
Kod Satırı 3: Burada "taglib", uri ve önek öznitelikleri ile tanımlanmıştır.
Kod Satırı 9: "gurutag" tanımlanan özel etikettir ve her yerde kullanılabilir