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:
- Cookie [] getCookies () - atgriež masīvu, kurā ir klienta nosūtītie sīkfailu objekti
- Uzskaitījums getAttributeNames () - satur pieprasījuma atribūtu nosaukumu uzskaitījumu
- Uzskaitījums getHeaderNames () - satur galvenes nosaukumu uzskaitījumu.
- Uzskaitījums getParameterNames () - satur parametru nosaukumu iegūšanas pieprasījumā uzskaitījumu.
- HttpSessiongetSession () - atgriež pašreizējo sesiju, kas saistīta ar pieprasījumu, vai, ja tai nav sesijas, tā izveidos jaunu.
- 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.
- Object getAttribute (String name) - atgriež nosaukta atribūta kā objekta vērtību.
- ServletInputStreamgetInputStream () - pieprasījuma ķermenis tiek iegūts kā bināri dati.
- String getAuthType () - atgriež autentifikācijas shēmas nosaukumu, lai aizsargātu serveri
- String getCharacterEncoding () - atgriež pieprasījuma pamattekstā izmantotā rakstzīmju kodējuma nosaukumu.
- String getContentType () - atgriež pieprasījuma pamatteksta MIME tipu.
- String getContextPath () - atgriež pieprasījuma URI daļu, kas norāda URI konteksta ceļu
- String getHeader (virknes nosaukums) - atgriež pieprasījuma galveni kā virkni
- String getMethod () - atgriež HTTP metodes nosaukumu, piemēram, GET, POST
- String getParameter (virknes nosaukums) - atgriež pieprasījuma parametru kā virkni.
- String getPathInfo () - atgriež ar URL saistīto ceļa informāciju
- String getQueryString () - atgriež vaicājuma virkni, kas ir saistīta ar pieprasījuma URL
- String getServletPath () - atgriež pieprasījuma URL daļu, kas izsauc JSP
- 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
<%HttpSession gurusession = pieprasījums.getSession ();out.print (" guru header guru header Vērtība (-as) ");Lokalizācijas vieta gurulocale = request.getLocale ();out.print (" sesijas nosaukums ir " + gurusession + " td.> ");Virknes ceļš = request.getPathInfo ();out.print (" Lokalizācijas nosaukums ir " + gurulocale + " ");Virknes lpath = pieprasījums.get ();out.print (" Ceļa nosaukums ir " + ceļš + " ");Virknes servera vārds = request.getServerName ();out.print (" Konteksta ceļš ir " + lipāts + " ");int porta nosaukums = request.getServerPort ();out.print (" Servera nosaukums ir " + servera vārds + " ");Uzskaitīšanas hnames = request.getHeaderNames ();while (hnames.hasMoreElements ()) {String paramName = (virkne) hnames.nextElement ();out.print (" Servera ports ir " + porta nosaukums + " ");}%> " + 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:
- String encodeRedirectURL (virknes URL) - kodē URL redirectURL metodē.
- String encodeURL (virknes URL) - kodē URL, iekļaujot sesijas ID.
- Būla saturs saturHeader (virknes nosaukums) - tajā ir vai nav JSP galvene.
- Boolean isCommited () - atbilde ir izdarīta vai nav.
- Void addCookie (Cookie cookie) - atbildei pievieno sīkfailu
- Void addDateHeader (virknes nosaukums, virknes vērtība) - pievieno atbildes galvenes datuma nosaukumu un vērtību
- Void addHeader (virknes nosaukums, virknes vērtība) - pievieno atbildes galveni ar nosaukumu un vērtību
- Void addIntHeader (virknes nosaukums, int vērtība) - pievieno atbildes galveni ar nosaukumu un veselu skaitli
- Void flushBuffer () - piespiež bufera saturu klienta izvadei.
- Void reset () - notīra datus buferī.
- Void resetBuffer - notīra atbildes satura buferi, neizdzēšot statusa kodus.
- Void sendError (intsc, Stringmsg) - nosūta klientam kļūdas atbildi, izmantojot statusa kodu.
- Void sendRedirect (String location) - nosūta klientam pagaidu novirzīšanas atbildi.
- Void setBufferSize (int size) - iestata ķermeņa bufera lielumu
- Void setCharacterEncoding (String charset) - iestata rakstzīmju kodēšanu
- Void setContentType (String type) - nosaka atbildes satura tipu
- Void setContentLength (intlen) - nosaka atbildes satura garumu
- Void setLocale (Locale lcl) - nosaka atbildes lokalizācijas veidu
- 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:
- 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
- Public void sendRedirect (virknes URL)
Tas ģenerē 302 atbildes kopā ar atrašanās vietas galveni, norādot jaunā dokumenta URL
- 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"); %>