JSP-handlinger, der bruger konstruktioner i XML-syntaks til at kontrollere servletmotorens opførsel. Vi lærer mere detaljeret om forskellige JSP-handlingselementer som klientanmodning, serverrespons, HTTP-statuskoder.
I denne vejledning lærer du-
- JSP-klientanmodning
- JSP-serverrespons
- JSP HTTP-statuskoder
JSP-klientanmodning
- Når websiden anmodes om, sender den information til webserveren i HTTP-headeren.
- Vi kan bruge disse oplysninger ved hjælp af et HTTPServletRequest-objekt.
- Oplysninger, der sendes af browseren, gemmes i anmodningsoverskriften på HTTP-anmodningen.
- Vi bruger forskellige overskrifter til at sende oplysninger til anmodningsobjektet.
Forskellige overskrifter er beskrevet nedenfor:
Header | Beskrivelse | Eksempel |
Acceptere | Det specificerer MIME-typer, som browser eller andre klienter kan håndtere | Billede / png eller billede / jpeg.webp |
Accepter-tegnsæt | Det bruger tegnsættet, der bruges af browseren til at vise oplysningerne | ISO-8859-1 |
Accept - kodning | Det specificerer type kodning, der håndteres af browseren | Gzip eller komprimér |
Accept-sprog | Det specificerer klientens specificerede sprog | En, en_us |
Bemyndigelse | Overskrift, der bruges af klienter, når de prøver at få adgang til adgangskodebeskyttede websider | |
Forbindelse | Det indikerer, om klienten kan håndtere vedvarende HTTP-forbindelser (browseren kan hente flere filer) | Holde i live |
Indholdslængde | Gælder for at sende anmodninger. Det giver størrelse på postdata på bytes | |
Cookie | Returnerer cookie til server (dem, der tidligere blev sendt til browseren) | |
Vært | Angiver værten og porten for den oprindelige URL | |
Hvis ændret siden | Det angiver, at det kun kræver en side, hvis det er blevet ændret eller ændret | |
Hvis ikke ændret siden | Det indikerer, at det kun kræver en side, hvis den ikke er blevet ændret eller ændret | |
Henvisning | Angiver URL for den henvisende URL-side | |
Brugeragent | Identificerer browser- eller klientforespørgsel | |
Følgende metoder bruges til at læse HTTP-overskriften på JSP-siden:
- Cookie [] getCookies () - returnerer en matrix, der indeholder cookieobjekter , som klienten har sendt
- Enumeration getAttributeNames () - indeholder enumeration af navne på attributter til anmodning
- Enumeration getHeaderNames () - indeholder enumeration af headernavne .
- Enumeration getParameterNames () - indeholder enumeration af at få parameternavne i anmodningen.
- HttpSessiongetSession () - returnerer den aktuelle session, der er knyttet til anmodningen, eller hvis den ikke har en session, opretter den en ny.
- Locale getLocale () - returnerer det foretrukne land, som klienten accepterer indhold i. Det er tildelt svaret. Som standard er værdien serverens standardsprog.
- Objekt getAttribute (strengnavn) - returnerer værdien af navngivet attribut som et objekt.
- ServletInputStreamgetInputStream () - henter en anmodning som binære data.
- String getAuthType () - returnerer navnet på godkendelsesplanen for at beskytte servlet
- String getCharacterEncoding () - returnerer navnet på den tegnkodning, der bruges i selve anmodningen.
- String getContentType () - returnerer MIME-typen af anmodningen.
- String getContextPath () - returnerer den del af anmodningen, URI angiver kontekststien til URI
- String getHeader (String name) - returnerer anmodningsoverskriften som en streng
- String getMethod () - returnerer navnet på HTTP-metoden som GET, POST
- String getParameter (String name) - returnerer parameteren for anmodningen som en streng.
- String getPathInfo () - returnerer stieninformation tilknyttet URL'en
- String getQueryString () - returnerer forespørgselsstrengen, der er knyttet til anmodnings-URL'en
- String getServletPath () - returnerer den del af URL'erne i anmodningen, der kalder JSP
- Streng [] getParameterValues (strengnavn) - returnerer arrayet med strengobjekter, der indeholder de værdier, som anmodningsparameteren har
Eksempel:
I eksemplet nedenfor bruger vi forskellige metoder ved hjælp af anmodningsobjekt
<% @ sidesprog = "java" contentType = "text / html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%><% @ side import = "java.io. * java.util. *"%> Klientanmodning Guru JSP
Klientanmodning Guru JSP
guru header | guru header Værdi (r) |
<%HttpSession gurusession = request.getSession ();out.print ("
Sessionsnavn er | " + gurusession + " td.>
|
");Lokal gurulocale = request.getLocale ();out.print ("
Sprognavn er | " + gurulocale + " |
");Strengsti = anmodning.getPathInfo ();out.print ("
Stienavn er | " + sti + " |
");Streng lpath = request.get ();out.print ("
Kontekststi er | " + lipath + " |
");String servername = request.getServerName ();out.print ("
Servernavn er | " + servernavn + " |
");int portnavn = request.getServerPort ();out.print ("
Serverport er | " + portnavn + " |
");Enumeration hnames = request.getHeaderNames ();while (hnames.hasMoreElements ()) {String paramName = (String) hnames.nextElement ();out.print ("
" + paramnavn + " | ");Streng paramValue = request.getHeader (paramName);out.println ("" + paramValue + " |
");}%>
Forklaring af koden:
Kodelinje 17: Ved hjælp af anmodningsobjekt får vi sessionsobjektet for den pågældende session, og vi får objektværdien for den pågældende session
Kodelinje 19: Brug af anmodningsobjekt får vi landestandard for den pågældende session i.een_US landestandard for den JSP.
Kodelinje 21: Ved hjælp af anmodningsobjekt får vi stiinfo til den JSP. I dette tilfælde er den nul, da der ikke er nogen sti til URL nævnt.
Kodelinje 23: Ved at bruge anmodningsobjekt får vi kontekststi, dvs. rodsti
Kodelinje 25: Ved hjælp af anmodningsobjekt får vi servernavnet.
Kodelinje 27: Ved hjælp af anmodningsobjekt får vi serverport.
Kodelinje 29-35: Ved hjælp af anmodningsobjekt får vi headernavne, der kommer ud som en optælling, og derfor får vi alle headerværdier i headernavne.
I dette får vi alle headerværdier som en cookie, vært, forbindelse, accepter sprog, accepter kodning.
Når du udfører ovenstående kode, får du følgende output:
Output :
Vi får en række værdier som sessionsnavn, lokalnavn, stienavn, servernavn, portnavn, vært, kontekststi og alle overskriftsværdierne for den JSP.
JSP-serverrespons
- Når en anmodning behandles, og derefter genereres svaret fra webserveren. Den består af en statuslinje, svaroverskrifter, en tom linje og et dokument.
- Det er genstand for HTTPServletResponseclass, som er et responsobjekt.
- Statuslinjen er en version af HTML.
Svaroverskrifter er nævnt nedenfor:
Header | Beskrivelse |
Give lov til | Det specificerer de anmodningsmetoder som GET, POST, som serveren anmoder om |
Cache-kontrol | Svardokumentet kan cachelagres. Det kan være offentligt, privat og ikke cache. Ingen cache angiver, at dokumentet ikke skal cachelagres |
Forbindelse | Den instruerer, om browseren skal bruge gemte HTTP-forbindelser eller ej. Luk værdi repræsenterer, at browseren ikke skal bruge vedvarende i HTTPConnections og "holde-i live" betyder at bruge vedvarende forbindelser |
Indhold-disposition | At spørge brugeren, om svaret skal gemmes på disken eller ej |
Indholdskodning | Siden skal kodes under transmission |
Indholdslængde | Antal bytes i svaret |
Indholdstype | Det specificerer MIME-typen af svar |
Udløber | Angiver indtil hvornår indholdet skal betragtes som forældet og ikke bør cachelagres |
Sidst ændret | Det angiver, hvornår dokumentet sidst blev ændret |
Beliggenhed | Det skal inkluderes i alle svar, der har statuskode, har 300 som statuskode |
Opdater | Det specificerer, hvordan man finder den opdaterede side. |
Prøv igen | Det kan bruges med 503-svar for at fortælle klienten, hvor hurtigt den kan gentage anmodningen |
Set-cookie | Angiver den cookie, der er knyttet til siden |
Følgende er metoderne ved hjælp af responsobjekt:
- String encodeRedirectURL (String URL) - koder URL'en i redirectURL-metoden.
- String encodeURL (String URL) - koder URL'en ved at inkludere session-id.
- Boolean containHeader (strengnavn) - den indeholder en header i JSP eller ej.
- Boolean isCommited () - svar er begået eller ej.
- Void addCookie (Cookie cookie) - tilføjer cookie til svaret
- Void addDateHeader (strengnavn, strengværdi) - tilføjer svarets overskriftsdato navn og værdi
- Void addHeader (strengnavn, strengværdi) - tilføjer svarhoved med navn og værdi
- Void addIntHeader (strengnavn, int-værdi) - tilføjer svarhoved med navn og heltal
- Void flushBuffer () - tvinger indhold i bufferen til output til klienten.
- Void reset () - rydder data i bufferen.
- Void resetBuffer - rydder indholdsbufferen i svaret uden at rydde statuskoder.
- Void sendError (intsc, Stringmsg) - sender et fejlsvar til klienten ved hjælp af statuskode.
- Void sendRedirect (strengplacering) - sender et midlertidigt omdirigeringssvar til klienten.
- Void setBufferSize (int-størrelse) - indstiller kroppens bufferstørrelse
- Void setCharacterEncoding (String charset) - indstiller tegnkodning
- Void setContentType (strengtype) - indstiller svarstypens indholdstype
- Void setContentLength (intlen) - indstiller reaktionens indholdslængde
- Void setLocale (Locale lcl) - indstiller landets type for svaret
- Void setStatus (intsc) - indstiller statuskoden for svaret
Eksempel:
I dette eksempel dækker vi forskellige metoder getLocale, flushbuffer, getWriter, get ContentType, setIntHeader.
<% @ sidesprog = "java" contentType = "text / html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%><% @ side import = "java.io. * java.util. *"%> Guru Action Response
Guru-svar
<%Lokal lcl = respons.getLocale ();out.println ("Lokalitet er: + lcl + "\ n");respons.flushBuffer ();PrintWriter output = respons.getWriter ();output.println ("Dette er fra forfatterobjekt");Strengtype = respons.getContentType ();out.println ("Indholdstypen: + type + "\ n");// Indstil opdatering, autoladetid som 5 sekunderrespons.setIntHeader ("Opdater", 5);// Få aktuel tidDato dt = ny dato ();out.println ("Dagens dag er: + dt.toString () + "\ n");%>