JSP İstemcisi İsteği

Sunucu uygulaması motorunun davranışını kontrol etmek için XML söz dizimindeki 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.

JSP İstemcisi İsteği

  • Web sayfası istendiğinde HTTP başlığındaki 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.
  • İstek nesnesine bilgi göndermek için farklı başlıklar kullanıyoruz.

JSP'deki başlıklar

JSP'deki farklı başlıklar aşağıda açıklanmıştır:

üstbilgi Açıklama Örnek E-posta
Kabul et Tarayıcının veya diğer istemcilerin işleyebileceği MIME türlerini belirtir Resim/png veya resim/jpeg
Kabul-karakter seti Bilgileri görüntülemek için tarayıcının kullandığı karakter setini kullanır. ISO-8859-1
Kabul Et- Kodlama Tarayıcı tarafından işlenen kodlamanın türünü belirtir Gzip yapın veya sıkıştırın
Kabul-dil İstemcilerin belirlediği dili belirtir Tr,tr_us
Yetki Parola korumalı web sayfalarına erişmeye çalışırken istemciler tarafından kullanılan başlık  
Komunite İstemcinin kalıcı HTTP bağlantılarını idare edip edemeyeceğini gösterir (tarayıcı birden fazla dosyayı alabilir) Hayatta kal
İçerik Uzunluğu Gönderi istekleri için geçerlidir. Bayt cinsinden gönderi verilerinin boyutunu verir  
kurabiye Çerezleri sunucuya döndürür (daha önce tarayıcıya gönderilenler)  
Ev Sahibi Orijinal sunucunun ana bilgisayarını ve bağlantı noktasını belirtir. URL  
O tarihten bu yana değiştirilmişse Değiştirilmiş veya değiştirilmişse yalnızca bir sayfaya ihtiyaç duyduğunu belirtir.  
O zamandan bu yana değiştirilmediyse Yalnızca değiştirilmemiş veya değiştirilmemişse bir sayfa gerektirdiğini belirtir.  
Yönlendirme gösterir URL atıfta bulunmak URL Kanal  
Kullanıcı aracısı Tarayıcıyı veya istemcinin istekte bulunduğunu tanımlar  

JSP'de HTTP Başlık Yöntemleri

JSP sayfasında 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 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(Dize adı) – Adlandırılmış özelliğin değerini bir nesne olarak döndürür.
  8. ServletInputStreamgetInputStream() – İsteğin gövdesini ikili veri olarak alır.
  9. Dize getAuthType() – servlet'i korumak için kimlik doğrulama şemasının adını döndürür
  10. Dize getCharacterEncoding() – isteğin gövdesinde kullanılan karakter kodlamasının adını döndürür.
  11. Dize getContentType() – isteğin gövdesinin MIME türünü döndürür.
  12. Dize getContextPath() – istek URI'sinin bir kısmını döndürür URI'nin bağlam yolunu gösterir
  13. Dize getHeader(Dize adı) – istek başlığını bir dize olarak döndürür
  14. Dize getMethod() – GET, POST gibi HTTP yönteminin adını döndürür
  15. String getParameter(Dize adı) – İsteğin parametresini bir dize olarak döndürür.
  16. Dize getPathInfo() – İlgili yol bilgilerini döndürür. URL
  17. Dize getQueryString() – İstekle ilişkili sorgu dizesini döndürür. URL
  18. Dize getServletPath() – parçayı döndürür URLJSP'yi çağıran isteğin ayrıntıları
  19. String[] getParameterValues(Dize adı) – istek parametresinin sahip olduğu değerleri içeren dize nesnelerinin dizisini döndürür

Örnek:

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.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Client Request Guru JSP</title>
</head>
<body>
<h2>Client Request Guru JSP</h2>

<table border="1">
<tr>
<th>guru header</th><th>guru header Value(s)</th>
</tr>
<%
	HttpSession gurusession = request.getSession(); 
	out.print("<tr><td>Session Name is </td><td>" +gurusession+ "</td.></tr>");
	Locale gurulocale = request.getLocale ();
	out.print("<tr><td>Locale Name is</td><td>" +gurulocale + "</td></tr>");
	String path = request.getPathInfo(); 
	out.print("<tr><td>Path Name is</td><td>" +path+ "</td></tr>"); 
	String lpath = request.get();
	out.print("<tr><td>Context path is</td><td>" +lipath + "</td></tr>"); 
	String servername = request.getServerName(); 
	out.print("<tr><td>Server Name is </td><td>" +servername+ "</td></tr>");
	int portname = request.getServerPort(); 
	out.print("<tr><td>Server Port is </td><td>" +portname+ "</td></tr>");
	Enumeration hnames = request.getHeaderNames();
	while(hnames.hasMoreElements()) { 
		String paramName = (String)hnames.nextElement();
		out.print ("<tr><td>" + paramName + "</td>" );
		
		String paramValue = request.getHeader(paramName);
		out.println("<td> " + paramValue + "</td></tr>");
	}

%>

Kodun açıklaması:

Code Çizgi 17: İstek nesnesini kullanarak, söz konusu oturumun oturum nesnesini alıyoruz ve o oturumun nesne değerini alıyoruz.

Code Çizgi 19: İstek nesnesini kullanarak, söz konusu JSP için söz konusu oturumun yerel ayarını (i.een_US yerel ayarını) alıyoruz.

Code Çizgi 21: İstek nesnesini kullanarak, o JSP sayfasına ait yol bilgilerini alıyoruz. Bu durumda, yol bilgisi olmadığı için değer null oluyor. URL bahsettiniz.

Code Çizgi 23: İstek nesnesini kullanarak içerik yolunu, yani kök yolunu alıyoruz.

Code Çizgi 25: İstek nesnesini kullanarak sunucu adını alıyoruz.

Code Çizgi 27: İstek nesnesini kullanarak sunucu portunu alıyoruz.

Code 29-35 satır: İstek nesnesini kullanarak numaralandırma olarak çıkan başlık adlarını alıyoruz ve dolayısıyla başlık adlarındaki tüm başlık değerlerini alıyoruz.

Bunda, tüm başlık değerlerini bir kurabiye, ana bilgisayar, bağlantı, dili kabul et, kodlamayı kabul et.

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

JSP İstemcisi İsteği

Çıktı:

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

JSP Sunucu Yanıtı

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

JSP'deki Yanıt Başlıkları

JSP'deki yanıt başlıkları aşağıda belirtilmiştir:

üstbilgi Açıklama
izin 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 önbelleksiz olabilir. Önbellek yok, belgenin önbelleğe alınmaması gerektiğini belirtir
Komunite Tarayıcının kayıtlıHTTPConnections'ı kullanıp kullanmayacağını belirtir. Kapatma değeri, tarayıcının HTTPConnections'da kalıcı bağlantı kullanmaması gerektiğini belirtir ve "canlı tutma", kalıcı bağlantıların kullanılması anlamına gelir
İçerik düzenlemesi Kullanıcıya yanıtın diske kaydedilip kaydedilmeyeceğini sormak için
İçerik kodlama Sayfanın iletim sırasında kodlanması gerekiyor
İçerik Uzunluğu Yanıttaki bayt sayısı
İçerik türü MIME yanıtının türünü belirtir
Bitiş tarihi İçeriğin ne zamana kadar güncelliğini yitirmiş sayılacağını ve önbelleğe alınmaması gerektiğini belirtir
Son değiştirilme Belgenin en son ne zaman değiştirildiğini gösterir
Konum Durum kodu 300 olan tüm yanıtlara durum kodu olarak dahil edilmelidir.
Yenile Güncellenen sayfanın nasıl bulunacağını belirtir.
Sonra yeniden dene Müşteriye isteği ne kadar sürede tekrarlayabileceğini bildirmek için 503 yanıtıyla birlikte kullanılabilir.
çerez Sayfayla ilişkili çerezi belirtir

JSP'de HTTP Yanıt Başlığı Yöntemleri

JSP'de yanıt nesnesini kullanan yöntemler şunlardır:

  1. String encodeRedirectURL(Sicim URL) - kodlar URL yönlendirmedeURL yöntemi.
  2. Dize kodlamaURL(Sicim URL) - kodlar URL Oturum kimliğini dahil ederek.
  3. Boolean includeHeader(Dize adı) – JSP'de bir başlık içerip içermediği.
  4. Boolean isCommited() – Yanıtın taahhüt edilip edilmediği.
  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ığını ekler
  8. Void addIntHeader(Dize adı, int değeri) – ad ve tamsayı değerini içeren yanıt başlığını ekler
  9. Geçersiz yıkamaBuffer() – tampondaki içeriği istemciye çıktı olarak zorlar.
  10. Geçersiz sıfırlama() – tampondaki verileri temizler.
  11. Sıfırlamayı geçersiz kılBuffer - durum kodlarını temizlemeden yanıttaki içerik arabelleğini temizler.
  12. SendError'ı geçersiz kıl(intsc,Stringmsg) – durum kodunu kullanarak istemciye bir hata yanıtı gönderir.
  13. SendRedirect'i geçersiz kıl (Dize konumu) – istemciye geçici bir yönlendirme yanıtı gönderir.
  14. geçersiz kümeBufferBoyut(int boyut) – gövdenin tampon boyutunu ayarlar
  15. Void setCharacterEncoding(Dize karakter kümesi) – karakter kodlamasını ayarlar
  16. Void setContentType(Dize türü) – yanıtın içerik türünü ayarlar
  17. Void setContentLength(intlen) – yanıtın içerik uzunluğunu ayarlar
  18. geçersiz setLocale(Yerel ayar lcl) – yanıtın yerel ayar türünü ayarlar
  19. SetStatus'u geçersiz kıl(intsc) – yanıtın durum kodunu ayarlar

Örnek:

Bu örnekte, getLocale, flushbuffer ve get yöntemlerinin farklı versiyonlarını ele alıyoruz.Writer, `get ContentType`, `setIntHeader`.

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ page import="java.io.* java.util.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Action Response</title>
</head>
<body>
<center>
<h2>Guru Response</h2>
<%
Locale lcl = response.getLocale();
out.println("Locale is : " + lcl + "\n");
response.flushBuffer();
PrintWriter output = response.getWriter();
output.println("This is from writer object");
String type = response.getContentType();
out.println("The content type : " + type + "\n");
	// Set refresh,autoload time as 5 seconds
	response.setIntHeader("Refresh", 5);
	//Get current time
	Date dt = new Date();
	out.println("Today's date is : " +dt.toString() + "\n");
%>
</center>
</body>
</html>

Kodun açıklaması:

Code Çizgi 13: Yanıt nesnesini kullanarak bu JSP oturumunun yerel ayar nesnesini alıyoruz

Code Çizgi 15: Yanıt nesnesini kullanarak, flushbuffer, arabellek içeriğini istemciye zorlamak için kullanılır

Code Çizgi 16: Yanıt nesnesini kullanarak, çıktı akışında çıktı alan yazar nesnesini elde ederiz.

Code Satır 18: Yanıt nesnesini kullanarak içerik türünü, yani yanıt nesnesinin MIME türünü elde ederiz.

Code Çizgi 21: Yanıt nesnesini kullanarak, ikinci parametre olarak 5 ayarlandığından her 5 saniyede bir otomatik yükleme yapmak için kullanılır.

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

JSP Sunucu Yanıtı

Çıktı:

  • Burada çıktıyı, yazıcı nesnesinden gelen get komutuyla elde ediyoruz.WriterBu bize bir nesne verir ve biz de bunu çıktı akışına aktarabiliriz.
  • Yerel ayarı en_us olarak, içerik türünü ise text/html olarak alıyoruz
  • Karakter setini ISO 8859 olarak alıyoruz
  • Bugünün tarihi, geçerli tarih olarak.

JSP HTTP Durumu Codes

  • İstek işlendiğinde yanıt oluşturulur. Yanıt durum satırı HTTP sürümünden, bir durum kodundan ve ilişkili bir mesajdan oluşur.
  • Mesaj doğrudan durum kodu ve HTTP sürümüyle ilişkilendirilir ve sunucu tarafından belirlenir.
  • Varsayılan olarak 200, JSP'de durum kodu olarak ayarlanmıştır, dolayısıyla açıkça ayarlamamıza gerek yoktur.
  • Response.setStatus() yöntemini 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 belirten bir konum başlığı içerirler
  • 400-499 – İstemcinin hatasını gösterir
  • 500-599 – Sunucunun hatasını 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 bu yana değiştirilmedi
  • 400 – Kötü istek
  • 404 Bulunamadı
  • 405 – Yöntem bulunamadı
  • 500 - Dahili Sunucu Hatası
  • 503 Hizmet Kullanılamıyor
  • 505 – HTTP sürümü desteklenmiyor

HTTP Durumu Code JSP'deki Yöntemler

JSP'deki durum kodu yöntemlerinden bazıları aşağıda listelenmiştir:

  1. Genel void setStatus(intstatusCode): Bu JSP Sayfasında ayarlamak istediğimiz durum kodunu ayarlar. Bu bize ayarlanan durum kodunun mesajını verecektir.
  2. Public void sendRedirect(String URL): Bu, konum başlığıyla birlikte 302 yanıtı oluşturur. URL yeni belgenin
  3. Genel void sendError(intcode,Stringmsg): Kısa mesajla birlikte durum kodunu da gönderir ve HTML belgesinin içinde biçimlendirilir.

Örnek:

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

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Status Code</title>
</head>
<body>
<% response.sendError(404,"Guru Page Not Found"); %>
</body>
</html>

Kodun açıklaması:

Code Çizgi 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ırdığınızda aşağıdaki çıktıyı alırsınız:

JSP HTTP Durumu Codes

Çıktı:

Burada, koddan gönderilen ve aynı zamanda görüntülenen 404 hata kodunu alıyoruz.Guru Çıktıda "Sayfa bulunamadı" mesajı görülüyor.

ÖZET

  • Bu yazımızda istemci isteği ve sunucu yanıtını, isteğin nasıl ele geçirildiğini ve yanıtların nasıl manipüle edildiğini öğrendik.
  • JSP eylemleri servlet motorunun davranışını kontrol etmek için XML sözdizimindeki yapıları kullanan.
  • Web sayfası istendiğinde HTTP başlığındaki web sunucusuna bilgi gönderir.
  • Bir istek işlendiğinde ve ardından web sunucusundan yanıt üretildiğinde. Bir durum satırı, yanıt başlıkları, boş bir satır ve belgeden oluşur.
  • İstek işlendiğinde yanıt oluşturulur. Yanıt durum satırı HTTP sürümünden, bir durum kodundan ve ilişkili bir mesajdan oluşur.

Bu yazıyı şu şekilde özetleyin: