JSP İstemci İsteği, Sunucu Yanıtı & HTTP Durum Kodları

İçindekiler:

Anonim

Sunucu uygulaması motorunun davranışını kontrol etmek için XML sözdizimindeki yapıları kullanan JSP eylemleri. İstemci isteği, sunucu yanıtı, HTTP durum kodları gibi çeşitli JSP Eylem öğeleri hakkında daha ayrıntılı bilgi edineceğiz.

Bu eğitimde öğreneceksiniz-

  • JSP İstemci İsteği
  • JSP Sunucusu Yanıtı
  • JSP HTTP Durum Kodları

JSP İstemci İsteği

  • Web sayfası istendiğinde, HTTP başlığında web sunucusuna bilgi gönderir.
  • Bu bilgiyi HTTPServletRequest nesnesini kullanarak kullanabiliriz.
  • Tarayıcı tarafından gönderilen bilgiler, HTTP isteğinin istek başlığında saklanır.
  • Talep nesnesine bilgi göndermek için farklı başlıklar kullanıyoruz.

Aşağıda farklı başlıklar açıklanmıştır:

Üstbilgi Açıklama Misal
Kabul etmek Tarayıcının veya diğer istemcilerin işleyebileceği MIME türlerini belirtir. Resim / png veya resim / jpeg.webp
Karakter kümesini kabul et Bilgileri görüntülemek için tarayıcı tarafından kullanılan karakter kümesini kullanır. ISO-8859-1
Kabul - Kodlama Tarayıcı tarafından işlenen kodlama türünü belirtir Gzip veya sıkıştır
Kabul dili İstemcilerin belirttiği dili belirtir En, en_us
yetki Parola korumalı web sayfalarına erişmeye çalışırken istemciler tarafından kullanılan başlık
Bağ İstemcinin kalıcı HTTP bağlantılarını işleyip işlemediğini gösterir (tarayıcı birden fazla dosya alabilir) Hayatta kal
İçerik Uzunluğu Talepleri göndermek için geçerlidir. Baytlık gönderi verilerinin boyutunu verir
Kurabiye Çerezi sunucuya döndürür (daha önce tarayıcıya gönderilmiş olanlar)
Ev sahibi Orijinal URL'nin ana bilgisayarını ve bağlantı noktasını belirtir
O zamandan beri değiştirildiyse Yalnızca değiştirilmiş veya modifiye edilmişse bir sayfa gerektirdiğini gösterir.
O zamandan beri değiştirilmemişse Yalnızca değiştirilmemiş veya değiştirilmemişse bir sayfa gerektirdiğini belirtir
Yönlendiren Yönlendiren URL sayfasının URL'sini gösterir
Kullanıcı aracısı Tarayıcı veya istemcinin talepte bulunduğunu tanımlar

JSP sayfasındaki HTTP başlığını okumak için aşağıdaki yöntemler kullanılır:

  1. Çerez [] getCookies () - istemcinin gönderdiği çerez nesnelerini içeren bir dizi döndürür
  2. Numaralandırma getAttributeNames () - istek için öznitelik adlarının numaralandırılmasını içerir
  3. Numaralandırma getHeaderNames () - başlık adlarının numaralandırılmasını içerir.
  4. Numaralandırma getParameterNames () - istekte parametre adlarının alınmasına ilişkin numaralandırmayı içerir.
  5. HttpSessiongetSession () - istekle ilişkili mevcut oturumu döndürür veya bir oturumu yoksa yeni bir oturum oluşturur.
  6. Yerel ayar getLocale () - istemcinin içeriği kabul edeceği tercih edilen yerel ayarı döndürür. Yanıta atanmıştır. Varsayılan olarak, değer sunucunun varsayılan yerel ayarı olacaktır.
  7. Object getAttribute (String name) - bir nesne olarak adlandırılmış özniteliğin değerini döndürür.
  8. ServletInputStreamgetInputStream () - istek gövdesini ikili veri olarak alır.
  9. String getAuthType () - sunucu uygulamasını korumak için kimlik doğrulama şemasının adını döndürür
  10. String getCharacterEncoding () - isteğin gövdesinde kullanılan karakter kodlamasının adını döndürür.
  11. String getContentType () - isteğin gövdesinin MIME türünü döndürür.
  12. String getContextPath () - istek URI'sinin URI'nin bağlam yolunu gösteren kısmını döndürür
  13. String getHeader (String name) - istek başlığını bir dizge olarak döndürür
  14. String getMethod () - GET, POST gibi HTTP yönteminin adını döndürür
  15. String getParameter (String name) - isteğin parametresini bir dizge olarak döndürür.
  16. String getPathInfo () - URL ile ilişkili yol bilgisini döndürür
  17. String getQueryString () - istek URL'si ile ilişkili sorgu dizesini döndürür
  18. String getServletPath () - isteğin URL'lerinin JSP'yi çağıran kısmını döndürür
  19. String [] getParameterValues ​​(String name) - request parametresinin sahip olduğu değerleri içeren string nesneleri dizisini döndürür

Misal:

Aşağıdaki örnekte, istek nesnesini kullanarak farklı yöntemler kullanıyoruz

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%><% @ page import = "java.io. * java.util. *"%> Client Request Guru JSP 

Client Request Guru JSP

<%HttpSession gurusession = request.getSession ();out.print (" ");Yerel gurulocale = request.getLocale ();out.print (" ");Dize yolu = request.getPathInfo ();out.print (" ");String lpath = request.get ();out.print (" ");Dize sunucuadı = request.getServerName ();out.print (" ");int bağlantı noktası = request.getServerPort ();out.print (" ");Numaralandırma hnames = request.getHeaderNames ();while (hnames.hasMoreElements ()) {String paramName = (String) hnames.nextElement ();out.print (" ");String paramValue = request.getHeader (paramName);out.println (" ");}%>

Kodun açıklaması:

Kod Satırı 17: İstek nesnesini kullanarak, o belirli oturumun oturum nesnesini alıyoruz ve o oturumun nesne değerini alıyoruz

Kod Satırı 19: İstek nesnesini kullanarak, o JSP için o belirli oturumun i.een_US yerel ayarını alıyoruz.

Kod Satırı 21: İstek nesnesini kullanarak, o JSP için yol bilgisi alıyoruz. Bu durumda, belirtilen URL için yol olmadığından boştur.

Kod Satırı 23: İstek nesnesini kullanarak bağlam yolunu, yani kök yolunu alıyoruz

Kod Satırı 25: İstek nesnesini kullanarak sunucu adını alıyoruz.

Kod Satırı 27: İstek nesnesini kullanarak sunucu portunu alıyoruz.

Kod Satırı 29-35: İstek nesnesini kullanarak, numaralandırma olarak ortaya çıkan başlık adlarını alıyoruz ve bu nedenle başlık adlarındaki tüm başlık değerlerini alıyoruz.

Bunda, tüm başlık değerlerini bir çerez, ana bilgisayar, bağlantı, dil kabul etme, kodlamayı kabul etme olarak alıyoruz.

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

Çıktı :

Oturum adı, yerel ayar adı, yol adı, sunucu adı, bağlantı noktası adı, ana bilgisayar, bağlam yolu ve bu JSP'nin tüm başlık değerleri gibi bir dizi değer alıyoruz.

JSP Sunucusu Yanıtı

  • Bir talep işlendiğinde ve ardından yanıt web sunucusundan üretilir. Bir durum satırı, yanıt başlıkları, boş bir satır ve belgeden oluşur.
  • Bir yanıt nesnesi olan HTTPServletResponseclass'ın nesnesidir.
  • Durum satırı bir HTML sürümüdür.

Yanıt başlıkları aşağıda belirtilmiştir:

guru başlığı guru başlığı Değer (ler)
Oturum Adı " + gurusession + "
Yerel Adı " + gurulocale + "
Yol Adı " + yol + "
Bağlam yolu " + lipath + "
Sunucu Adı " + sunucuadı + "
Sunucu Bağlantı Noktası " + bağlantı noktası + "
" + paramName + "" + paramValue + "
Üstbilgi Açıklama
İzin vermek Sunucunun istediği GET, POST gibi istek yöntemlerini belirtir.
Önbellek kontrolü Yanıt belgesi önbelleğe alınabilir. Herkese açık, özel olabilir ve önbellek olmayabilir. Hiçbir önbellek, belgenin önbelleğe alınmaması gerektiğini belirtmez
Bağ Tarayıcının kaydedilmiş HTTPC bağlantılarını kullanıp kullanmayacağını belirtir. Kapanış değeri, tarayıcının HTTPC bağlantılarında kalıcı kullanmaması gerektiğini ve "canlı tutma", kalıcı bağlantıların kullanılması anlamına gelir.
İçerik-düzenleme Kullanıcıya yanıtı diske kaydedip kaydetmeyeceğini sormak için
İçerik kodlama İletim sırasında sayfanın kodlanması gerekir
İçerik Uzunluğu Yanıttaki bayt sayısı
İçerik türü MIME yanıt türünü belirtir
Bitiş tarihi İçeriğin ne zaman eski olduğu ve önbelleğe alınmaması gerektiğini belirtir
Son düzenleme Belgenin en son ne zaman değiştirildiğini gösterir
yer Durum kodu 300 olan tüm yanıtlara dahil edilmelidir.
Yenile Güncellenen sayfanın nasıl bulunacağını belirtir.
Tekrar dene Müşteriye talebi ne kadar kısa sürede tekrarlayabileceğini söylemek için 503 yanıtıyla birlikte kullanılabilir.
Set-çerez Sayfayla ilişkili çerezi belirtir

Yanıt nesnesini kullanan yöntemler şunlardır:

  1. String encodeRedirectURL (String URL) - URL'yi redirectURL yönteminde kodlar.
  2. String encodeURL (String URL) - URL'yi oturum kimliğini ekleyerek kodlar.
  3. Boolean containsHeader (Dize adı) - JSP'de bir başlık içerir veya içermez.
  4. Boolean isCommited () - yanıt alındı veya yapılmadı.
  5. Void addCookie (Çerez çerezi) - yanıta çerez ekler
  6. Void addDateHeader (Dize adı, Dize değeri) - yanıt başlığı tarih adını ve değerini ekler
  7. Void addHeader (Dize adı, Dize değeri) - ad ve değer içeren yanıt başlığı ekler
  8. Void addIntHeader (Dize adı, int değeri) - ad ve tamsayı değerine sahip yanıt başlığı ekler
  9. Void flushBuffer () - arabellekteki içeriği istemcinin çıkışına zorlar.
  10. Void reset () - arabellekteki verileri temizler.
  11. Void resetBuffer - durum kodlarını silmeden yanıttaki içerik tamponunu temizler.
  12. Void sendError (intsc, Stringmsg) - durum kodunu kullanarak istemciye bir hata yanıtı gönderir.
  13. Void sendRedirect (Dize konumu) - istemciye geçici bir yönlendirme yanıtı gönderir.
  14. Void setBufferSize (int size) - gövdenin tampon boyutunu ayarlar
  15. Void setCharacterEncoding (String charset) - karakter kodlamasını ayarlar
  16. Void setContentType (String type) - yanıtın içerik türünü ayarlar
  17. Void setContentLength (intlen) - yanıtın içerik uzunluğunu ayarlar
  18. Void setLocale (Locale lcl) - yanıtın yerel türünü ayarlar
  19. Void setStatus (intsc) - yanıtın durum kodunu ayarlar

Misal:

Bu örnekte, getLocale, flushbuffer, getWriter, get ContentType, setIntHeader gibi farklı yöntemleri ele alıyoruz.

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%><% @ page import = "java.io. * java.util. *"%> Guru Eylem Yanıtı 

Guru Yanıtı

<%Yerel ayar lcl = response.getLocale ();out.println ("Yerel ayarlar: + lcl + "\ n");response.flushBuffer ();PrintWriter output = response.getWriter ();output.println ("Bu, yazıcı nesnesinden");Dize türü = response.getContentType ();out.println ("İçerik türü: + tür + "\ n");// Yenileme, otomatik yükleme süresini 5 saniye olarak ayarlayınresponse.setIntHeader ("Yenile", 5);// Geçerli zamanı alTarih dt = yeni Tarih ();out.println ("Bugünün tarihi: + dt.toString () + "\ n");%>

Kodun açıklaması:

Kod Satırı 13: Yanıt nesnesini kullanarak, bu JSP oturumunun yerel nesnesini alıyoruz

Kod Satırı 15: Yanıt nesnesini kullanarak, tampon içeriğini istemciye zorlamak için flushbuffer kullanılır

Kod Satırı 16: Yanıt nesnesini kullanarak, çıktı akışında çıktı alan yazar nesnesi elde ederiz.

Code Line18: Yanıt nesnesini kullanarak, içerik türü yani MIME türü yanıt nesnesi elde ederiz.

Kod Satırı 21: Yanıt nesnesini kullanarak, 5 saniyede bir otomatik yükleme yapmak için kullanılır, çünkü ikinci parametre olarak 5 ayarlanmıştır.

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

Çıktı:

  • Burada, çıktıyı getWriter'dan yazar nesnesinden alıyoruz, bu bize nesne verir ve çıktı akışında çıktı alabiliriz.
  • Yerel ayarı en_us ve içerik türünü text / html olarak alıyoruz
  • Karakter setini ISO 8859 olarak alıyoruz
  • Bugünün tarihi, günün tarihi olarak.

JSP HTTP Durum Kodları

  • Talep işlendiğinde yanıt üretilir. Yanıt durum satırı, HTTP sürümü, bir durum kodu ve ilgili bir mesajdan oluşur.
  • Mesaj, doğrudan durum kodu ve HTTP sürümü ile ilişkilendirilir ve sunucu tarafından belirlenir.
  • Varsayılan olarak 200, JSP'de bir durum kodu olarak ayarlanmıştır, bu nedenle açık bir şekilde ayarlamamıza gerek yoktur.
  • Response.setStatus () metodunu ayarlayabiliriz

Kodlar aşağıdaki 5 kategoriye ayrılır:

  • 100-199 - Burada müşteri, bazı eylemlerle yanıt vermesi gerektiğini belirtir
  • 200-299 - İsteğin başarılı olduğunu gösterir.
  • 300-399 - Taşınan dosyalar için kullanılırlar ve genellikle yeni adresi gösteren bir konum başlığı içerirler
  • 400-499 - İstemci tarafından hatayı gösterir
  • 500-599 - Sunucudaki hatayı gösterir

Yaygın durum kodlarından bazıları aşağıdadır:

  • 200 - Her şeyin yolunda olduğunu gösterir
  • 301 - Kalıcı olarak taşındı
  • 304 - Son değişiklikten beri değiştirilmedi
  • 400 - Hatalı istek
  • 404 Bulunamadı
  • 405 - Yöntem bulunamadı
  • 500 - Dahili Sunucu Hatası
  • 503 Hizmet Kullanılamıyor
  • 505 - HTTP sürümü desteklenmiyor

Yöntemlerinden bazıları aşağıda listelenmiştir:

  1. Genel void setStatus (intstatusCode)

    O JSP Sayfasında ayarlamak istediğimiz durum kodunu ayarlar.Bu bize ayarlanan durum kodu mesajını verir.

  2. Genel void sendRedirect (Dize URL'si)

    Yeni belgenin URL'sini veren konum başlığı ile birlikte 302 yanıtı oluşturur.

  3. Genel void sendError (intcode, Stringmsg)

    Durum kodunu kısa mesajla birlikte gönderir ve HTML belgesi içinde biçimlendirilir.

Misal:

Bu örnekte, JSP sayfasına açıkça hata gönderiyoruz.

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%> Guru Durum Kodu <% response.sendError (404, "Guru Sayfası Bulunamadı"); %>

Kodun açıklaması:

Kod Satırı 10: Yanıt nesnesini kullanarak hatayı iki parametreli bir sayfaya gönderiyoruz.

  1. Durum kodu - Yukarıdakilerden herhangi biri olabilir. Bu durumda 404 olarak tanımladık
  2. Mesaj - Hatayı göstermek istediğimiz herhangi bir özel mesaj olabilir

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

Çıktı:

Burada koddan gönderilen ve ayrıca çıktıda görülen "Guru Sayfa bulunamadı" mesajını görüntüleyen 404 hata kodunu alıyoruz.

Özet:

  • Bu makalede, isteğin nasıl durdurulduğuna ve yanıtların nasıl değiştirildiğine ilişkin istemci isteği ve sunucu yanıtı hakkında bilgi edindik.
  • Ayrıca, belirli bir dosya için hata kodlarını veya başarı kodlarını göstermek için HTTP durum kodlarını öğrendik.