JSP Örtülü Nesneler: Tam Eğitim

İçindekiler:

Anonim

JSP Örtük nesne nedir?

  • JSP örtük nesneleri, JSP'nin sunucu uygulamasına çeviri aşamasında oluşturulur.
  • Bu nesneler, hizmet yöntemine giren betiklerde doğrudan kullanılabilir.
  • Konteyner tarafından otomatik olarak oluşturulurlar ve nesneler kullanılarak erişilebilirler.

JSP'de kaç Örtük Nesne mevcuttur?

Kapsayıcıda 9 tür örtük nesne vardır:

  1. dışarı
  2. istek
  3. tepki
  4. yapılandırma
  5. uygulama
  6. oturum, toplantı, celse
  7. pageContext
  8. sayfa
  9. istisna

Teker teker çalışalım

dışarı

  • Out, verileri arabelleğe yazmak ve yanıt olarak istemciye çıktı göndermek için örtük nesnelerden biridir.
  • Çıkış nesnesi, sunucu uygulamasının çıkış akışına erişmemizi sağlar
  • Out, javax.servlet.jsp.jspWriter sınıfının nesnesidir
  • Servlet ile çalışırken, printwriter nesnesine ihtiyacımız var

Misal:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Örtülü Guru JSP1 <% int num1 = 10; int num2 = 20;out.println ("num1" + num1);out.println ("num2 is" + num2);%>

Kodun açıklaması:

Kod Satırı 11-12 - çıkış, çıktı akışına yazdırmak için kullanılır

Yukarıdaki kodu çalıştırdığımızda aşağıdaki çıktıyı alıyoruz:

Çıktı:

  • Çıktıda num1 ve num2 değerlerini alıyoruz

İstek

  • İstek nesnesi, java.servlet.http.HttpServletRequest'in bir örneğidir ve hizmet yönteminin argümanlarından biridir.
  • Her istek için konteyner tarafından oluşturulacaktır.
  • Parametre, başlık bilgisi, sunucu adı vb. Bilgileri talep etmek için kullanılacaktır.
  • İstek parametresine erişmek için getParameter () kullanır.

Misal:

Implicit_jsp2.jsp (isteğin guru.jsp'ye gönderildiği form)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Örtülü Guru formu JSP2 

Guru.jsp (işlemin yapıldığı yer)

Kod açıklaması:

Kod Satırı 10-13: implicit_jsp2.jsp (form) 'da istek gönderilir, dolayısıyla kullanıcı adı değişkeni işlenir ve JSP'nin eylemi olan guru.jsp'ye gönderilir.

Guru.jsp

Kod Satırı 10-11: Talebin işlendiği eylem jsp ve kullanıcı adı jsp formundan alınır.

Yukarıdaki kodu çalıştırdığınızda, aşağıdaki çıktıyı alırsınız

Çıktı:

Test yazıp gönder düğmesini tıkladığınızda, aşağıdaki "Hoş Geldiniz Testi" çıktısını alırsınız.

Tepki

  • "Response", HttpServletResponse arayüzünü uygulayan bir sınıf örneğidir
  • Konteyner bu nesneyi oluşturur ve parametre olarak _jspservice () yöntemine geçer
  • Her istek için konteyner tarafından "yanıt nesnesi" oluşturulacaktır.
  • Müşteriye verilebilecek yanıtı temsil eder.
  • Yanıt örtük nesnesi içerik türü, tanımlama bilgisi eklemek ve yanıt sayfasına yönlendirmek için kullanılır.

Misal:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Örtülü Guru JSP4 <% response.setContentType ("text / html"); %>

Kodun açıklaması:

Kod Satırı 11: Yanıt nesnesinde içerik türünü ayarlayabiliriz

Burada sadece yanıt nesnesinde içerik türünü ayarlıyoruz. Dolayısıyla bunun için bir çıktı yok.

Yapılandırma

  • "Config" java.servlet.servletConfig türündedir
  • Her jsp sayfası için konteyner tarafından oluşturulur.
  • Web.xml'deki başlatma parametresini almak için kullanılır.

Misal:

Web.xml (sunucu uygulamasının adını ve eşlemesini belirtir)

Implicit_jsp5.jsp (sunucu uygulaması adının değerini alma)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Örtülü Guru JSP5 <% String servletName = config.getServletName ();out.println ("Servlet Adı" + servletName);%>

Kodun açıklaması:

Web.xml'de

Kod Satırı 14-17: web.xml'de servletlerin sınıflara eşlemesine sahibiz.

Implicit_jsp5.jsp

Kod Satırı 10-11: JSP'de sunucu uygulamasının adını almak için, sunucu uygulamasının adını almamıza yardımcı olacak config.getServletName kullanabiliriz.

Yukarıdaki kodu çalıştırdığınızda aşağıdaki çıktıyı alırsınız:

Çıktı:

  • Ad web.xml'de mevcut olduğundan, Servlet adı "GuruServlet" dir

Uygulama

  • Uygulama nesnesi (kod satırı 10) bir javax.servlet.ServletContext örneğidir ve JSP'deki bağlam bilgilerini ve öznitelikleri almak için kullanılır.
  • Uygulama nesnesi, uygulama dağıtıldığında, uygulama başına bir konteyner tarafından oluşturulur.
  • Servletcontext nesnesi, servlet konteyneri ile etkileşim için kullanılan bir dizi metot içerir. Servlet konteyneri hakkında bilgi bulabiliriz.

Misal:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Guru Örtülü JSP6 <% application.getContextPath (); %>

Kodun açıklaması:

  • Yukarıdaki kodda, uygulama özniteliği JSP sayfasının bağlam yolunu elde etmeye yardımcı olur.

Oturum, toplantı, celse

  • Oturum "httpsession" nesnesini tutuyor (kod satırı 10).
  • Oturum nesnesi, oturum kapsamının özniteliklerini almak, ayarlamak ve kaldırmak için kullanılır ve ayrıca oturum bilgilerini almak için kullanılır.

Misal:

Implicit_jsp7 (öznitelik ayarlanmış)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Örtülü JSP <% session.setAttribute ("kullanıcı", "GuruJSP"); %> Kullanıcı adını almak için burayı tıklayın 

Implicit_jsp8.jsp (getAttribute)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> örtük Guru JSP8 <% String name = (String) session.getAttribute ("kullanıcı");out.println ("Kullanıcı Adı" + ad);%>

Kodun açıklaması:

Implicit_jsp7.jsp

Kod Satırı 11: kullanıcı özniteliğini oturum değişkeninde ayarlıyoruz ve bu değer oturumdan hangi jsp çağrılırsa çağrılabilir (_jsp8.jsp).

Kod Satırı 12: href üzerinde set edilen user özniteliğinin değerini alacağımız başka bir jsp çağırıyoruz.

Implicit_jsp8.jsp

Kod Satırı 11: Kullanıcı özniteliğinin değerini oturum nesnesinden alıyoruz ve bu değeri görüntülüyoruz

Yukarıdaki kodu çalıştırdığınızda, aşağıdaki çıktıyı alırsınız:

Kullanıcı adı için bağlantıya tıkladığınızda. Aşağıdaki çıktıyı alacaksınız.

Çıktı:

  • İmplicit_jsp7.jsp'de verilen bağlantıya tıkladığımızda ikinci jsp sayfasına, yani (_jsp8.jsp) sayfasına yönlendiriliriz ve kullanıcı özniteliğinin (_jsp7.jsp) oturum nesnesinden değeri alırız.

pageContext:

  • Bu nesne, sayfa bağlamı türündedir.
  • Öznitelikleri belirli bir kapsamdan almak, ayarlamak ve kaldırmak için kullanılır.

Kapsamlar 4 türdendir:

  • Sayfa
  • İstek
  • Oturum, toplantı, celse
  • Uygulama

Misal:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Örtülü Guru JSP9 <% pageContext.setAttribute ("öğrenci", "gurustudent", pageContext.PAGE_SCOPE);Dize adı = (Dize) pageContext.getAttribute ("öğrenci");out.println ("öğrenci adı" + adı);%>

Kodun açıklaması:

Kod Satırı 11: PageContext nesnesini kullanarak özniteliği ayarlıyoruz ve üç parametresi var:

  • Anahtar
  • Değer
  • Dürbün

Yukarıdaki kodda, anahtar öğrenci ve değer, kapsam sayfa kapsamı iken değer "garantili" dir. Burada kapsam "sayfa" dır ve yalnızca sayfa kapsamını kullanabilir.

Code Line 12: pageContext kullanarak özniteliğin değerini alıyoruz

Yukarıdaki kodu çalıştırdığınızda, aşağıdaki çıktıyı alırsınız:

Çıktı:

  • Çıktı "öğrenci adı gurustudent" yazacaktır.

Sayfa

  • Sayfa örtük değişkeni, karşılık gelen jsp için geçerli olarak yürütülen sunucu uygulamacığı nesnesini tutar.
  • Mevcut jsp sayfası için bu nesne görevi görür.

Misal:

Bu örnekte, toString yöntemini kullanarak sayfa adını almak için sayfa nesnesini kullanıyoruz.

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Örtülü Guru JSP10 <% String pageName = page.toString ();out.println ("Sayfa Adı" + pageName);%>

Kodun açıklaması:

Kod Satırı 10-11: Bu örnekte, sayfa nesnesinin toString () yöntemini kullanmaya ve JSP Sayfasının dize adını almaya çalışıyoruz.

Kodu çalıştırdığınızda aşağıdaki çıktıyı alırsınız:

Çıktı:

  • Çıktı, yukarıdaki jsp sayfasının dize adıdır

İstisna

  • Özel durum, atılabilir sınıfın örtük nesnesidir.
  • JSP'de istisna işleme için kullanılır.
  • İstisna nesnesi yalnızca hata sayfalarında kullanılabilir.

    Misal:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1" isErrorPage = "true"%> Örtülü Guru JSP 11 <% int [] num1 = {1,2,3,4};out.println (num1 [5]);%><% = istisna%>

Kodun açıklaması:

Kod Satırı 10-12 - Bir sayı dizisi vardır, yani dört öğeli num1. Çıktıda, dizi listesinde bildirilmeyen num1'den dizinin beşinci elemanını yazdırmaya çalışıyoruz. Bu yüzden jsp'nin istisna nesnesini almak için kullanılır.

Çıktı:

Beşinci elemanın num1 dizisini aldığımız dizide ArrayIndexOfBoundsException alıyoruz.