Solicitare client JSP, răspuns server & Coduri de stare HTTP

Cuprins:

Anonim

Acțiuni JSP care utilizează construcții în sintaxă XML pentru a controla comportamentul motorului servlet. Vom afla mai multe detalii despre diferite elemente de acțiune JSP, cum ar fi cererea clientului, răspunsul serverului, codurile de stare HTTP.

În acest tutorial, veți învăța-

  • Solicitare client JSP
  • Răspuns server JSP
  • Coduri de stare HTTP JSP

Solicitare client JSP

  • Când pagina web este solicitată, aceasta trimite informații către serverul web din antetul HTTP.
  • Putem folosi aceste informații folosind obiectul HTTPServletRequest.
  • Informațiile trimise de browser sunt stocate în antetul solicitării cererii HTTP.
  • Folosim diferite antete pentru a trimite informații către obiectul cererii.

Diferite anteturi sunt descrise mai jos:

Antet Descriere Exemplu
Accept Specifică tipurile MIME pe care browserul sau alți clienți le pot gestiona Imagine / png sau imagine / jpeg.webp
Accept-set Folosește setul de caractere folosit de browser pentru a afișa informațiile ISO-8859-1
Accept- Codificare Specifică tipul de codificare gestionat de browser Gzip sau comprimă
Accept-language Specifică limba specificată de clienți En, en_us
Autorizare Antet folosit de clienți atunci când încearcă să acceseze pagini web protejate prin parolă
Conexiune Indică dacă clientul poate gestiona conexiuni HTTP persistente (browserul poate prelua mai multe fișiere) Ține în viață
Lungimea conținutului Aplicabil pentru a posta cereri. Oferă dimensiunea datelor de post ale octeților
Cookie Returnează cookie-ul către server (cele care au fost trimise anterior browserului)
Gazdă Specifică gazda și portul adresei URL originale
Dacă este modificat de atunci Indică faptul că necesită doar o pagină dacă a fost modificată sau modificată
Dacă nemodificat de atunci Indică faptul că necesită o pagină numai dacă nu a fost modificată sau modificată
Referent Indică adresa URL a paginii URL de referință
Agent utilizator Identifică solicitarea browserului sau clientului

Următoarele metode sunt folosite pentru a citi antetul HTTP în pagina JSP:

  1. Cookie [] getCookies () - returnează o matrice care conține obiecte cookie trimise de client
  2. Enumerare getAttributeNames () - conține enumerarea numelor atributelor pentru solicitare
  3. Enumerare getHeaderNames () - conține enumerarea numelor antetului.
  4. Enumerare getParameterNames () - conține enumerarea obținerii de nume de parametri în cerere.
  5. HttpSessiongetSession () - returnează sesiunea curentă asociată cu solicitarea sau dacă nu are o sesiune, atunci va crea una nouă.
  6. Locale getLocale () - returnează locația preferată în care clientul va accepta conținut. A fost atribuit răspunsului. În mod implicit, valoarea va fi setările locale implicite ale serverului.
  7. Obiect getAttribute (String name) - returnează valoarea atributului denumit ca obiect.
  8. ServletInputStreamgetInputStream () - recuperează corpul cererii ca date binare.
  9. Șir getAuthType () - returnează numele schemei de autentificare pentru a proteja servletul
  10. Șir getCharacterEncoding () - returnează numele codării caracterelor utilizate în corpul cererii.
  11. Șir getContentType () - returnează tipul MIME al corpului cererii.
  12. Șir getContextPath () - returnează partea de cerere URI indică calea contextuală a URI
  13. String getHeader (String name) - returnează antetul cererii ca șir
  14. String getMethod () - returnează numele metodei HTTP cum ar fi GET, POST
  15. String getParameter (String name) - returnează parametrul cererii ca șir.
  16. Șir getPathInfo () - returnează informațiile despre cale asociate adresei URL
  17. Șir getQueryString () - returnează șirul de interogare asociat cu adresa URL a cererii
  18. Șir getServletPath () - returnează partea URL-urilor cererii care apelează JSP
  19. String [] getParameterValues ​​(String name) - returnează matricea de obiecte șir care conțin valorile pe care parametrul de solicitare le are

Exemplu:

În exemplul de mai jos, folosim diferite metode folosind obiectul request

<% @ 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 (" ");Locale gurulocale = request.getLocale ();out.print (" ");String path = request.getPathInfo ();out.print (" ");String lpath = request.get ();out.print (" ");String servername = request.getServerName ();out.print (" ");int portname = request.getServerPort ();out.print (" ");Enumerare hnames = request.getHeaderNames ();while (hnames.hasMoreElements ()) {String paramName = (String) hnames.nextElement ();out.print (" ");String paramValue = request.getHeader (paramName);out.println (" ");}%>

Explicația codului:

Linia de cod 17: Folosind obiectul de solicitare, obținem obiectul sesiunii respectivei sesiuni și obținem valoarea obiectului acelei sesiuni

Linia de cod 19: Folosind obiectul de solicitare, obținem regiunea locală a acelei sesiuni, adică regiunea regională pentru acel JSP.

Linia de cod 21: Folosind obiectul de solicitare, obținem informații despre cale pentru acel JSP. În acest caz, este nul, deoarece nu există o cale pentru URL menționată.

Linia de cod 23: Folosind obiectul de solicitare, obținem calea contextului, adică calea rădăcină

Linia de cod 25: Folosind obiectul de solicitare, obținem numele serverului.

Linia de cod 27: Folosind obiectul de solicitare, obținem portul serverului.

Linia de cod 29-35: Folosind obiectul de solicitare, primim nume de antet care apar ca enumerare și, prin urmare, obținem toate valorile antetului în numele antetului.

În acest sens, obținem toate valorile antetului ca cookie, gazdă, conexiune, acceptăm limba, acceptăm codificarea.

Când executați codul de mai sus, obțineți următoarea ieșire:

Ieșire :

Obținem seria de valori precum numele sesiunii, numele localizării, numele căii, numele serverului, numele portului, gazda, calea contextului și toate valorile antetului acelui JSP.

Răspuns server JSP

  • Când o cerere este procesată și apoi răspunsul este generat de pe serverul web. Se compune dintr-o linie de stare, anteturi de răspuns, o linie necompletată și un document.
  • Este obiectul HTTPServletResponseclass, care este un obiect de răspuns.
  • Linia de stare este o versiune de HTML.

Anteturile de răspuns sunt menționate mai jos:

antet guru antet guru Valoare (valori)
Numele sesiunii este " + gurusession + "
Nume local este " + gurulocale + "
Numele căii este " + calea + "
Calea contextuală este " + lipath + "
Numele serverului este " + servername + "
Portul serverului este " + nume port + "
" + paramName + "" + paramValue + "
Antet Descriere
Permite Specifică metodele de solicitare, cum ar fi GET, POST pe care serverul le solicită
Controlul cache-ului Documentul de răspuns poate fi memorat în cache. Poate fi public, privat și fără cache. Niciun cache nu specifică faptul că documentul nu trebuie memorat în cache
Conexiune Acesta instruiește dacă browserul ar trebui să utilizeze sau nu conexiunile HTTP salvate. Valoarea închisă reprezintă faptul că browserul nu ar trebui să utilizeze persistent în conexiunile HTTP și „păstrare în viață” înseamnă utilizarea conexiunilor persistente
Dispunerea conținutului Pentru a întreba utilizatorul dacă salvează sau nu răspunsul pe disc
Codificare conținut Pagina trebuie codificată în timpul transmisiei
Lungimea conținutului Numărul de octeți din răspuns
Tipul de conținut Specifică tipul de răspuns MIME
Expiră Specifică până când conținutul ar trebui să fie considerat depășit și nu ar trebui memorat în cache
Modificat ultima dată Acesta indică ultima modificare a documentului
Locație Ar trebui inclus cu toate răspunsurile care au cod de stare are 300 ca cod de stare
Reîmprospăta Specifică cum să găsiți pagina actualizată.
Reîncercați după Poate fi utilizat cu răspunsul 503 pentru a spune clientului cât de repede poate repeta solicitarea
Set-cookie Specifică modulul cookie asociat paginii

Următoarele sunt metodele care utilizează obiectul de răspuns:

  1. String encodeRedirectURL (String URL) - codifică adresa URL în metoda redirectURL.
  2. String encodeURL (String URL) - codifică adresa URL, incluzând ID-ul sesiunii.
  3. Boolean conține Header (String name) - conține un antet în JSP sau nu.
  4. Boolean isCommited () - răspunsul a fost comis sau nu.
  5. Void addCookie (Cookie cookie) - adaugă cookie la răspuns
  6. Void addDateHeader (numele șirului, valoarea șirului) - adaugă numele și valoarea antetului răspunsului
  7. Void addHeader (String name, String value) - adaugă antetul de răspuns cu nume și valoare
  8. Void addIntHeader (String name, int value) - adaugă antetul de răspuns cu numele și valoarea întregului
  9. Void flushBuffer () - forțează conținutul din buffer la ieșirea către client.
  10. Void reset () - șterge datele din buffer.
  11. Void resetBuffer - șterge tamponul de conținut din răspuns fără a șterge codurile de stare.
  12. Void sendError (intsc, Stringmsg) - trimite un răspuns de eroare clientului folosind codul de stare.
  13. Void sendRedirect (Locație șir) - trimite un răspuns temporar de redirecționare către client.
  14. Void setBufferSize (int size) - setează dimensiunea bufferului corpului
  15. Void setCharacterEncoding (String charset) - setează codarea caracterelor
  16. Void setContentType (tip șir) - setează tipul de conținut al răspunsului
  17. Void setContentLength (intlen) - setează lungimea conținutului răspunsului
  18. Void setLocale (Locale lcl) - setează tipul local al răspunsului
  19. Void setStatus (intsc) - setează codul de stare al răspunsului

Exemplu:

În acest exemplu, acoperim diferite metode 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. *"%> Răspuns la acțiunea Guru 

Răspunsul guru

<%Locale lcl = response.getLocale ();out.println ("Locale este: + lcl + "\ n");response.flushBuffer ();PrintWriter output = response.getWriter ();output.println („Acesta este din obiectul scriitor”);String type = response.getContentType ();out.println ("Tipul de conținut: + tip + "\ n");// Setați ora de reîmprospătare, încărcare automată la 5 secunderesponse.setIntHeader ("Reîmprospătare", 5);// Obțineți ora curentăData dt = data nouă ();out.println ("Data de astăzi este: + dt.toString () + "\ n");%>

Explicația codului:

Linia de cod 13: Folosind obiectul de răspuns, obținem obiectul local al acestei sesiuni JSP

Linia de cod 15: Folosind obiectul de răspuns, flushbuffer este utilizat pentru a forța conținutul bufferului în client

Linia de cod 16: Folosind obiectul de răspuns, obținem un obiect scriitor care obține ieșire în fluxul de ieșire

Line Line18: Folosind obiectul de răspuns, obținem tipul de conținut, adică tipul MIME al obiectului de răspuns

Linia de cod 21: Folosind obiectul de răspuns, este folosit pentru a încărca automat în fiecare 5 secunde, deoarece 5 este setat ca al doilea parametru

Când executați codul de mai sus, obțineți următoarea ieșire:

Ieșire:

  • Aici obținem rezultatul, deoarece acesta este de la obiectul de scriere de la getWriter, care ne oferă obiect și putem ieși în fluxul de ieșire.
  • Obținem setările locale ca en_us și tipul de conținut ca text / html
  • Obținem setul de caractere ca ISO 8859
  • Data de astăzi ca dată curentă.

Coduri de stare HTTP JSP

  • Când solicitarea este procesată, răspunsul este generat. Linia de stare a răspunsului constă din versiunea HTTP, un cod de stare și un mesaj asociat.
  • Mesajul este direct asociat cu codul de stare și versiunea HTTP și este determinat de server.
  • În mod implicit, 200 este setat ca cod de stare în JSP, deci nu este necesar să setăm în mod explicit.
  • Putem seta ca metodă response.setStatus ()

Codurile se încadrează în următoarele 5 categorii:

  • 100-199 - Aici clientul indică faptul că ar trebui să răspundă cu o acțiune
  • 200-299 - Înseamnă că solicitarea are succes
  • 300-399 - Sunt utilizate pentru fișiere care au fost mutate și includ de obicei un antet de locație care indică o nouă adresă
  • 400-499 - Indică eroarea clientului
  • 500-599 - Indică erori de server

Unele dintre codurile de stare comune sunt mai jos:

  • 200 - Indică că totul este în regulă
  • 301 - S-a mutat definitiv
  • 304 - Nemodificat de la ultima modificare
  • 400 - Cerere greșită
  • 404 Nu a fost gasit
  • 405 - Metoda nu a fost găsită
  • 500 Eroare internă a server-ului
  • 503 Serviciu Indisponibil
  • 505 - Versiunea HTTP nu este acceptată

Unele dintre metodele sale sunt enumerate mai jos:

  1. Public void setStatus (intstatusCode)

    Setează codul de stare pe care dorim să îl setăm în acea pagină JSP. Aceasta ne va da mesajul codului de stare care a fost setat

  2. Public nul sendRedirect (String URL)

    Acesta generează 302 de răspunsuri împreună cu antetul locației, oferind URL-ul noului document

  3. Public void sendError (intcode, Stringmsg)

    Trimite codul de stare împreună cu mesajul scurt și este formatat în documentul HTML.

Exemplu:

În acest exemplu, trimitem în mod explicit erori la pagina JSP.

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%> Cod de stare Guru <% response.sendError (404, "Pagina Guru nu a fost găsită"); %>

Explicația codului:

Linia de cod 10: Folosind obiectul de răspuns trimitem eroarea către o pagină cu doi parametri.

  1. Cod de stare - Poate fi oricare dintre cele de mai sus. În acest caz, am descris ca 404
  2. Mesaj - Poate fi orice mesaj specific pentru care dorim să afișăm eroarea

Dacă executați codul de mai sus, veți obține următoarea ieșire:

Ieșire:

Aici primim codul de eroare 404, care a fost trimis din cod și afișează, de asemenea, mesajul „Pagina Guru nu a fost găsită”, văzut în ieșire.

Rezumat:

  • În acest articol, am aflat despre solicitarea clientului și răspunsul serverului despre modul în care cererea este interceptată și modul în care răspunsurile sunt manipulate.
  • De asemenea, am aflat despre codurile de stare HTTP pentru a afișa coduri de eroare sau coduri de succes pentru un anumit fișier.