JSP klienta pieprasījums, servera atbilde un amp; HTTP statusa kodi

Satura rādītājs:

Anonim

JSP darbības, kurās XML sintaksē tiek izmantotas konstrukcijas, lai kontrolētu servletīklu motora darbību. Mēs uzzināsim sīkāk par dažādiem JSP darbību elementiem, piemēram, klienta pieprasījumu, servera atbildi, HTTP statusa kodiem.

Šajā apmācībā jūs uzzināsiet

  • JSP klienta pieprasījums
  • JSP servera atbilde
  • JSP HTTP statusa kodi

JSP klienta pieprasījums

  • Kad tiek pieprasīta tīmekļa lapa, tā HTTP galvenē nosūta informāciju uz tīmekļa serveri.
  • Mēs varam izmantot šo informāciju, izmantojot objektu HTTPServletRequest.
  • Pārlūka nosūtītā informācija tiek glabāta HTTP pieprasījuma pieprasījuma galvenē.
  • Mēs izmantojam dažādas galvenes, lai nosūtītu informāciju pieprasījuma objektam.

Dažādas galvenes ir aprakstītas tālāk:

Galvene Apraksts Piemērs
Pieņemt Tas norāda MIME veidus, ar kuriem var rīkoties pārlūks vai citi klienti Attēls / png vai attēls / JPEG.webp
Pieņemt-charset Informācijas parādīšanai tā izmanto pārlūkprogrammas izmantoto rakstzīmju kopu ISO-8859-1
Pieņemt - kodēšana Tas norāda kodēšanas veidu, ko apstrādā pārlūks Gzip vai saspiest
Pieņemt valodu Tas norāda klientu norādīto valodu En, en_us
Atļauja Galvene, kuru klienti izmanto, mēģinot piekļūt ar paroli aizsargātām tīmekļa lapām
Savienojums Tas norāda, vai klients var apstrādāt pastāvīgus HTTP savienojumus (pārlūks var izgūt vairākus failus) Uzturēt dzīvu
Satura garums Attiecas uz pieprasījumu ievietošanu. Tas dod baitu pasta datu lielumu
Sīkdatne Atgriež sīkfailu serverim (tos, kas iepriekš tika nosūtīti pārlūkam)
Saimnieks Norāda sākotnējā URL resursdatoru un portu
Ja mainīts kopš Tas norāda, ka tam ir nepieciešama tikai lapa, ja tā ir mainīta vai modificēta
Ja kopš tā laika nav modificēts Tas norāda, ka tai nepieciešama lapa tikai tad, ja tā nav mainīta vai modificēta
Novirzītājs Norāda novirzošās URL lapas URL
Lietotāja aģents Identificē pārlūka vai klienta pieprasījumu

HTTP galvenes lasīšanai JSP lapā tiek izmantotas šādas metodes:

  1. Cookie [] getCookies () - atgriež masīvu, kurā ir klienta nosūtītie sīkfailu objekti
  2. Uzskaitījums getAttributeNames () - satur pieprasījuma atribūtu nosaukumu uzskaitījumu
  3. Uzskaitījums getHeaderNames () - satur galvenes nosaukumu uzskaitījumu.
  4. Uzskaitījums getParameterNames () - satur parametru nosaukumu iegūšanas pieprasījumā uzskaitījumu.
  5. HttpSessiongetSession () - atgriež pašreizējo sesiju, kas saistīta ar pieprasījumu, vai, ja tai nav sesijas, tā izveidos jaunu.
  6. Lokalizācija getLocale () - atgriež vēlamo lokalizāciju, kurā klients pieņems saturu. Tas ir piešķirts atbildei. Pēc noklusējuma vērtība būs servera noklusējuma lokalizācija.
  7. Object getAttribute (String name) - atgriež nosaukta atribūta kā objekta vērtību.
  8. ServletInputStreamgetInputStream () - pieprasījuma ķermenis tiek iegūts kā bināri dati.
  9. String getAuthType () - atgriež autentifikācijas shēmas nosaukumu, lai aizsargātu serveri
  10. String getCharacterEncoding () - atgriež pieprasījuma pamattekstā izmantotā rakstzīmju kodējuma nosaukumu.
  11. String getContentType () - atgriež pieprasījuma pamatteksta MIME tipu.
  12. String getContextPath () - atgriež pieprasījuma URI daļu, kas norāda URI konteksta ceļu
  13. String getHeader (virknes nosaukums) - atgriež pieprasījuma galveni kā virkni
  14. String getMethod () - atgriež HTTP metodes nosaukumu, piemēram, GET, POST
  15. String getParameter (virknes nosaukums) - atgriež pieprasījuma parametru kā virkni.
  16. String getPathInfo () - atgriež ar URL saistīto ceļa informāciju
  17. String getQueryString () - atgriež vaicājuma virkni, kas ir saistīta ar pieprasījuma URL
  18. String getServletPath () - atgriež pieprasījuma URL daļu, kas izsauc JSP
  19. String [] getParameterValues ​​(virknes nosaukums) - atgriež virknes objektu masīvu, kurā ir vērtības, kurām ir pieprasījuma parametrs

Piemērs:

Tālāk sniegtajā piemērā mēs izmantojam dažādas metodes, izmantojot pieprasījuma objektu

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%><% @ page import = "java.io. * java.util. *"%> Klienta pieprasījuma Guru JSP <ķermenis>

Klienta pieprasījuma Guru JSP

guru header guru header Vērtība (-as) <%HttpSession gurusession = pieprasījums.getSession ();out.print (" sesijas nosaukums ir " + gurusession + " ");Lokalizācijas vieta gurulocale = request.getLocale ();out.print (" Lokalizācijas nosaukums ir " + gurulocale + " ");Virknes ceļš = request.getPathInfo ();out.print (" Ceļa nosaukums ir " + ceļš + " ");Virknes lpath = pieprasījums.get ();out.print (" Konteksta ceļš ir " + lipāts + " ");Virknes servera vārds = request.getServerName ();out.print (" Servera nosaukums ir " + servera vārds + " ");int porta nosaukums = request.getServerPort ();out.print (" Servera ports ir " + porta nosaukums + " ");Uzskaitīšanas hnames = request.getHeaderNames ();while (hnames.hasMoreElements ()) {String paramName = (virkne) hnames.nextElement ();out.print (" " + paramName + "");String paramValue = request.getHeader (paramName);out.println ("" + paramValue + " ");}%>

Koda skaidrojums:

17. koda rindiņa: Izmantojot pieprasījuma objektu, mēs iegūstam konkrētās sesijas sesijas objektu un iegūstam šīs sesijas objekta vērtību

19. koda rindiņa: Izmantojot pieprasījuma objektu, mēs iegūstam konkrētās sesijas lokalizāciju i.een_US lokalizācijai šim JSP.

Koda rindiņa 21: Izmantojot pieprasījuma objektu, mēs iegūstam informāciju par šo JSP. Šajā gadījumā tas nav derīgs, jo nav norādīts URL ceļš.

Kodu rinda 23: Izmantojot pieprasījuma objektu, mēs iegūstam konteksta ceļu, ti, saknes ceļu

25. koda rindiņa: Izmantojot pieprasījuma objektu, mēs iegūstam servera nosaukumu.

27. koda rindiņa: Izmantojot pieprasījuma objektu, mēs iegūstam servera portu.

Kodu rinda 29-35: Izmantojot pieprasījuma objektu, mēs iegūstam galvenes nosaukumus, kas parādās kā uzskaitījums, un tādējādi mēs iegūstam visas galvenes vērtības galvenes nosaukumos.

Tajā mēs iegūstam visas galvenes vērtības kā sīkfailu, resursdatoru, savienojumu, pieņemam valodu, pieņemam kodējumu.

Izpildot iepriekš minēto kodu, tiek parādīta šāda izeja:

Izeja :

Mēs iegūstam tādu vērtību sēriju kā sesijas nosaukums, lokalizācijas nosaukums, ceļa nosaukums, servera nosaukums, porta nosaukums, resursdators, konteksta ceļš un visas šī JSP galvenes vērtības.

JSP servera atbilde

  • Kad pieprasījums tiek apstrādāts un atbilde tiek ģenerēta no tīmekļa servera. Tas sastāv no statusa rindas, atbildes galvenēm, tukšas rindas un dokumenta.
  • Tas ir HTTPServletResponseclass objekts, kas ir atbildes objekts.
  • Statusa rinda ir HTML versija.

Atbildes galvenes ir minētas tālāk:

Galvene Apraksts
Atļaut Tas norāda pieprasījuma metodes, piemēram, GET, POST, kuras pieprasa serveris
Kešatmiņas kontrole Atbildes dokumentu var saglabāt kešatmiņā. Tas var būt publisks, privāts un bez kešatmiņas. Neviena kešatmiņa nenorāda, ka dokumentu nevajadzētu saglabāt kešatmiņā
Savienojums Tas norāda, vai pārlūkprogrammai jāizmanto saglabātie HTTP savienojumi vai nē. Tuvā vērtība norāda, ka pārlūkprogrammai HTTPConnection savienojumos nevajadzētu izmantot pastāvīgu informāciju, un "saglabāt dzīvību" nozīmē pastāvīgu savienojumu izmantošanu
Satura izklāsts Jautāt lietotājam, vai saglabāt atbildi diskā vai nē
Satura kodēšana Pārraides laikā lapa ir jākodē
Satura garums Baitu skaits atbildē
Satura veids Tas norāda atbildes veidu MIME
Termiņš beidzas Norāda līdz brīdim, kad saturs jāuzskata par novecojušu, un to nedrīkst saglabāt kešatmiņā
Pēdējoreiz modificēts Tas norāda, kad dokuments pēdējo reizi tika modificēts
Atrašanās vieta Tas jāiekļauj visās atbildēs, kuru statusa kods ir 300 kā statusa kods
atjaunot Tas norāda, kā atrast atjaunināto lapu.
Mēģiniet vēlreiz To var izmantot ar 503 atbildēm, lai pastāstītu klientam, cik ātri tas var atkārtot pieprasījumu
Komplekts-cepums Norāda ar lapu saistīto sīkfailu

Šīs ir metodes, kurās tiek izmantots atbildes objekts:

  1. String encodeRedirectURL (virknes URL) - kodē URL redirectURL metodē.
  2. String encodeURL (virknes URL) - kodē URL, iekļaujot sesijas ID.
  3. Būla saturs saturHeader (virknes nosaukums) - tajā ir vai nav JSP galvene.
  4. Boolean isCommited () - atbilde ir izdarīta vai nav.
  5. Void addCookie (Cookie cookie) - atbildei pievieno sīkfailu
  6. Void addDateHeader (virknes nosaukums, virknes vērtība) - pievieno atbildes galvenes datuma nosaukumu un vērtību
  7. Void addHeader (virknes nosaukums, virknes vērtība) - pievieno atbildes galveni ar nosaukumu un vērtību
  8. Void addIntHeader (virknes nosaukums, int vērtība) - pievieno atbildes galveni ar nosaukumu un veselu skaitli
  9. Void flushBuffer () - piespiež bufera saturu klienta izvadei.
  10. Void reset () - notīra datus buferī.
  11. Void resetBuffer - notīra atbildes satura buferi, neizdzēšot statusa kodus.
  12. Void sendError (intsc, Stringmsg) - nosūta klientam kļūdas atbildi, izmantojot statusa kodu.
  13. Void sendRedirect (String location) - nosūta klientam pagaidu novirzīšanas atbildi.
  14. Void setBufferSize (int size) - iestata ķermeņa bufera lielumu
  15. Void setCharacterEncoding (String charset) - iestata rakstzīmju kodēšanu
  16. Void setContentType (String type) - nosaka atbildes satura tipu
  17. Void setContentLength (intlen) - nosaka atbildes satura garumu
  18. Void setLocale (Locale lcl) - nosaka atbildes lokalizācijas veidu
  19. Void setStatus (intsc) - nosaka atbildes statusa kodu

Piemērs:

Šajā piemērā mēs aplūkojam dažādas metodes getLocale, flushbuffer, getWriter, get ContentType, setIntHeader.

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%><% @ page import = "java.io. * java.util. *"%> Guru darbības atbilde <ķermenis>

Guru atbilde

<%Lokalizācija lcl = response.getLocale ();out.println ("Lokalizācija ir: + lcl + "\ n");response.flushBuffer ();PrintWriter izeja = response.getWriter ();output.println ("Šis ir no rakstnieka objekta");Virknes tips = response.getContentType ();out.println ("Satura tips: + tips + "\ n");// Iestatiet atsvaidzināšanas, automātiskās ielādes laiku kā 5 sekundesresponse.setIntHeader ("Atsvaidzināt", 5);// Iegūt pašreizējo laikuDatums dt = jauns Datums ();out.println ("Šodienas datums ir: + dt.toString () + "\ n");%>

Koda skaidrojums:

13. koda rinda: Izmantojot atbildes objektu, mēs iegūstam šīs JSP sesijas lokalizācijas objektu

15. koda rindiņa: izmantojot atbildes objektu, flushbuffer tiek izmantots, lai piespiestu bufera saturu klientam

Kodu rinda 16: Izmantojot atbildes objektu, mēs iegūstam rakstīšanas objektu, kas iegūst izvadi izvades straumē

Kods 18. rinda: Izmantojot atbildes objektu, mēs iegūstam satura tipu, ti, atbildes objekta MIME tipu

Kodu rinda 21: Izmantojot atbildes objektu, to izmanto automātiskai ielādēšanai ik pēc 5 sekundēm, jo ​​5 ir iestatīts kā otrais parametrs

Izpildot iepriekš minēto kodu, tiek parādīta šāda izeja:

Izeja:

  • Šeit mēs iegūstam izvadi, jo tas ir no rakstītāja objekta no getWriter, kas dod mums objektu, un mēs varam izvadīt izvades straumē.
  • Mēs iegūstam lokalizāciju kā en_us un satura veidu kā text / html
  • Mēs iegūstam apzīmējumu kā ISO 8859
  • Šodienas datums kā pašreizējais datums.

JSP HTTP statusa kodi

  • Apstrādājot pieprasījumu, tiek ģenerēta atbilde. Atbildes statusa rinda sastāv no HTTP versijas, statusa koda un saistītā ziņojuma.
  • Ziņojums ir tieši saistīts ar statusa kodu un HTTP versiju, un to nosaka serveris.
  • Pēc noklusējuma JSP JS ir iestatīts kā statusa kods, tāpēc mums tas nav skaidri jāiestata.
  • Mēs varam iestatīt kā response.setStatus () metodi

Kodi ietilpst šādās 5 kategorijās:

  • 100–199 - šeit klients norāda, ka tam būtu jāatbild ar kādu darbību
  • 200–299 - tas nozīmē, ka pieprasījums ir veiksmīgs
  • 300-399 - tos izmanto pārvietotiem failiem, un parasti tie ietver atrašanās vietas galveni, kas norāda jaunu adresi
  • 400-499 - norāda klienta kļūdu
  • 500–599 - norāda servera kļūdu

Daži no kopējiem statusa kodiem ir šādi:

  • 200 - norāda, ka viss ir kārtībā
  • 301 - tā ir pastāvīgi pārvietojusies
  • 304 - kopš pēdējām izmaiņām nav modificēts
  • 400 - Nepareizs pieprasījums
  • 404 nav atrasts
  • 405 - metode nav atrasta
  • 500 - iekšējā servera kļūda
  • 503 Pakalpojums nav pieejams
  • 505 - HTTP versija netiek atbalstīta

Dažas no tās metodēm ir uzskaitītas tālāk:

  1. Public void setStatus (intstatusCode)

    Tas nosaka statusa kodu neatkarīgi no tā, kuru mēs vēlamies iestatīt šajā JSP lapā. Tas mums paziņos par iestatītā statusa kodu

  2. Public void sendRedirect (virknes URL)

    Tas ģenerē 302 atbildes kopā ar atrašanās vietas galveni, norādot jaunā dokumenta URL

  3. Public void sendError (intcode, Stringmsg)

    Tas nosūta statusa kodu kopā ar īsziņu, un tas tiek formatēts HTML dokumentā.

Piemērs:

Šajā piemērā mēs nepārprotami nosūtām kļūdu uz JSP lapu.

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%> Guru statusa kods <ķermenis><% response.sendError (404, "Guru lapa nav atrasta"); %>

Koda skaidrojums:

10. koda rindiņa: izmantojot atbildes objektu, mēs nosūtām kļūdu uz lapu ar diviem parametriem.

  1. Statusa kods - tas var būt jebkurš no iepriekš minētajiem. Šajā gadījumā mēs esam aprakstījuši kā 404
  2. Ziņojums - tas var būt jebkurš konkrēts ziņojums, kurā mēs vēlamies parādīt kļūdu

Izpildot iepriekš minēto kodu, tiek parādīta šāda izeja:

Izeja:

Šeit mēs saņemam kļūdas kodu kā 404, kas tika nosūtīts no koda, kā arī parāda izvadē redzamo ziņojumu "Guru lapa nav atrasta".

Kopsavilkums:

  • Šajā rakstā mēs uzzinājām par klienta pieprasījumu un servera atbildi par to, kā pieprasījums tiek pārtverts un kā tiek apstrādātas atbildes.
  • Mēs arī uzzinājām par HTTP statusa kodiem, lai parādītu kļūdas kodus vai veiksmes kodus konkrētam failam.