Artikelen

JSP Response, alle methoden van het impliciete Response-object

Bij de ontwikkeling van dynamische webapplicaties zijn client- en serverinteracties essentieel voor het verzenden en ontvangen van informatie via internet. In deze zelfstudie gaan we dieper in op de methoden in het JSP Response Implicit Object, d.w.z. de methoden van het impliciete object Response.

Wanneer de browser vereist een webpagina , wordt veel informatie naar de webserver gestuurd en de webserver reageert na het verwerken van het HTTP-verzoek. Daar JSP-reactie beheert de respons en beheert de volgende informatie:

  • een statusregel,
  • enkele reactiekoppen,
  • een lege regel e
  • het document.

Meestal ziet een reactie er zo uit:

HTTP/1.1 200 OK
Content-Type: text/html
Header2: ...
...
HeaderN: ...
   (Blank Line)
<!doctype ...>

<html>
   <head>...</head>
   <body>
      ...
   </body>
</html>
  • De statusregel bestaat uit de HTTP-versie (in het voorbeeld HTTP/1.1),
  • een statuscode (in het voorbeeld 200) e
  • een zeer kort bericht dat overeenkomt met de statuscode (in het voorbeeld OK).

Onderaan de pagina vindt u een overzicht van de meest gebruikte HTTP 1.1-responsheaders die door de webserver naar de browser zijn teruggestuurd.

In dit bericht zullen we de verschillende methoden zien die JSP biedt voor het afhandelen van het JSP-antwoord

JSP-reactie

Het JSP-antwoord kan zijn defini als een impliciet voorwerp is een voorbeeld van ” HttpServletReactie ' en wordt gevormd voor elk JSP-verzoek gemaakt door de JSP-container.

JSP-antwoord impliciet object
  • Een Response-object is een impliciet object dat is geïmplementeerd om het antwoord te wijzigen of te beheren dat naar de client (bijvoorbeeld browser) is verzonden nadat het verzoek is verwerkt, zoals het omleiden van het antwoord naar een andere bron of een fout die naar een client is verzonden.
  • Het impliciete antwoordobject is een instantie van een interface javax.servlet.http.HttpServletResponse .
  • De container maakt deze voor elke aanvraag.

Hier is een voorbeeld van een JSP-verzoek en impliciete responsobjecten waarbij een gebruiker aanmeldingsgegevens verzendt en een andere JSP-pagina deze ontvangt voor verwerking:

Innovatie nieuwsbrief
Mis het belangrijkste nieuws over innovatie niet. Meld u aan om ze per e-mail te ontvangen.
<!DOCTYPE html>
<html>
    <head>
        <title>User login form</title>
    </head>
    <body>
        <form action="login.jsp">
            Username: <input type="text" name="user_name" /> <br />
            <input type="submit" value="Submit" />
        </form>
    </body>
</html>

Hieronder staat het login.jsp-bestand

<%@ page import = " java.util.* " %>
<% 
String username = request.getParameter("user_name"); 
if(username.equals("admin")){
    response.sendRedirect("home.jsp");  
}else{
    out.print("Invalid Username");  
}
%>
Responsmethode Impliciet object

JSP heeft verschillende methoden om Response-objecten te verwerken, die van het type HttpServeltResponse zijn. Elk van deze methoden heeft zijn eigen functionaliteit.

  • Draad coderenURL(String-URL): Het wordt gebruikt om een ​​bepaalde URL te coderen door de sessie-ID mee te nemen. Anders, wanneer codering niet vereist is, wordt de URL ongewijzigd geretourneerd.
  • Draad coderenRedirectURL(tekenreeks-URL): wordt gebruikt om een ​​bepaalde URL te coderen voor gebruik in de methode sendRedirect. Anders, wanneer codering niet vereist is, wordt de URL ongewijzigd geretourneerd.
  • boolean bevatHeader(String naam): wordt gebruikt om een ​​Booleaanse waarde te retourneren die aangeeft of de naamantwoordheader al is ingesteld of niet.
  • komen te vervallen addDateHeader(Stringnaam, lange datum): Dit wordt gebruikt om een ​​antwoordkop toe te voegen met de opgegeven naam samen met een datumwaarde.
  • komen te vervallen addHeader(tekenreeksnaam, tekenreekswaarde): wordt gebruikt om een ​​antwoordkop toe te voegen met de opgegeven naam en een waarde.
  • boolean istoegewijd(): wordt gebruikt om een ​​booleaanse waarde te retourneren die aangeeft of het antwoord al dan niet is bevestigd.
  • komen te vervallen addIntHeader (tekenreeksnaam, int-waarde): Het wordt gebruikt om een ​​antwoordkop toe te voegen met de opgegeven naam samen met een geheel getal.
  • komen te vervallen flushBuffer(): wordt gebruikt om te forceren dat inhoud in de buffer naar de client wordt geschreven.
  • komen te vervallen addCookie(cookie): wordt gebruikt om een ​​bepaalde cookie toe te voegen aan het antwoord.
  • komen te vervallen opnieuw instellen(): Het wordt gebruikt om alle gegevens in de buffer, header of statuscode te wissen.
  • komen te vervallen verzendfout(int sc): Het wordt gebruikt om een ​​foutbericht (via een bepaalde statuscode) naar uw klant te sturen.
  • komen te vervallen sendError(int sc, String-bericht): wordt gebruikt om een ​​foutreactie (via een bepaalde statustekenreeks) naar uw client te sturen.
  • komen te vervallen resetBuffer(): wordt gebruikt om de inhoud van de onderliggende buffer te wissen zonder de statuscode of header te wissen.
  • komen te vervallen sendRedirect(String-locatie): Het wordt gebruikt om een ​​kortdurende omleidingsreactie naar de client te sturen.
  • komen te vervallen setBufferSize(int grootte): wordt gebruikt om een ​​ideale buffergrootte in te stellen voor de hoofdtekst van het antwoord.
  • komen te vervallen setCharacterEncoding(Tekenreeks tekenset): het wordt gebruikt om de tekencodering in te stellen (meestal MIME-tekenset - UTF 8) die naar de client moet worden verzonden.
  • komen te vervallen setContentType(tekenreekstype): Het wordt gebruikt om het type inhoud in te stellen dat naar de klant wordt verzonden wanneer het antwoord nog niet is bevestigd.
  • komen te vervallen setDateHeader(Stringnaam, lange datum): wordt gebruikt om een ​​antwoordkop in te stellen met de opgegeven naam en datumwaarde.
  • komen te vervallen setContentLength(int leng): wordt gebruikt om de lengte van de inhoud in het antwoord in te stellen.
  • komen te vervallen setHeader(tekenreeksnaam, tekenreekswaarde): wordt gebruikt om een ​​antwoordkop in te stellen met de opgegeven naam en waarde.
  • komen te vervallen setIntHeader(Stringnaam, int-waarde): wordt gebruikt om een ​​antwoordkop in te stellen met de opgegeven naam en een geheel getal.
  • komen te vervallen setLocal(Lokale locomotief): wordt gebruikt om de lokalisatie van het antwoord in te stellen voor het geval het antwoord nog niet is opgeslagen.
  • komen te vervallen setStatus(int sc): wordt gebruikt om de statuscode voor het antwoord in te stellen.
Voorbeeld Reactie impliciet object

Hieronder zien we nog een voorbeeld van een impliciet object Response dat een verversing van de browser implementeert, met behulp van de methode setIntHeader(), waarbij Uren, Minuten en Seconden worden geschreven om een ​​digitale klok te simuleren. Clock.jsp voorbeeld

<%@ page import = "java.io.*,java.util.*" %>

<html>
   
   <head>
      <title>Auto Refresh Header Example</title>
   </head>
   
   <body>
      <center>
         <h2>Auto Refresh Header Example</h2>
         <%
            // Set refresh, autoload time as 5 seconds
            response.setIntHeader("Refresh", 5);
            
            // Get current time
            Calendar calendar = new GregorianCalendar();
            
            String am_pm;
            int hour = calendar.get(Calendar.HOUR);
            int minute = calendar.get(Calendar.MINUTE);
            int second = calendar.get(Calendar.SECOND);
            
            if(calendar.get(Calendar.AM_PM) == 0) 
               am_pm = "AM";
            else
               am_pm = "PM";
               String CT = hour+":"+ minute +":"+ second +" "+ am_pm;
               out.println("Current Time is: " + CT + "\n");
         %>
      </center>
   
   </body>
</html>

Als u nu de code in een clock.jsp plaatst en probeert deze te starten, wordt de huidige systeemtijd na elke 5 seconden weergegeven.

Samenvatting van de meest gebruikte HTTP 1.1-antwoordheaders, teruggestuurd naar de browser vanaf de webserver
  • Allow: Deze header specificeert de aanvraagmethoden (GET, POST, enz.) die door de server worden ondersteund.
  • Cache-Control: Deze header specificeert de omstandigheden waaronder het antwoorddocument veilig in de cache kan worden opgeslagen. Het kan openbare, privé- of no-cache-waarden etc. hebben. Openbaar betekent dat het document in de cache kan worden opgeslagen, Privé betekent dat het document voor één gebruiker is en alleen kan worden opgeslagen in privé (niet-gedeelde) caches, en geen cache betekent dat het document nooit in de cache mag worden geplaatst.
  • Aansluiting: Deze header vertelt de browser of er al dan niet permanente HTTP-verbindingen moeten worden gebruikt. Een close-waarde vertelt de browser om geen persistente HTTP-verbindingen te gebruiken, en keep-alive betekent om persistente verbindingen te gebruiken.
  • Inhoud-dispositie: Met deze header kunt u de browser vragen de gebruiker te vragen het antwoord op schijf op te slaan in een bestand met de opgegeven naam.
  • Inhoud-codering: Deze header geeft aan hoe de pagina tijdens verzending is gecodeerd.
  • Inhoud-taal: deze header geeft de taal aan waarin het document is geschreven. Bijvoorbeeld en, en-us, ru, etc.
  • Inhoud lengte: Deze header geeft het aantal bytes in het antwoord aan. Deze informatie is alleen nodig als uw browser een permanente HTTP-verbinding gebruikt (keep-alive).
  • Content-Type: Deze header bevat het MIME-type (Multipurpose Internet Mail Extension) van het antwoorddocument.
  • Verloopt: Deze header specificeert het tijdstip waarop inhoud als verouderd moet worden beschouwd en daarom niet langer in de cache moet worden opgeslagen.
  • Laatst gewijzigd: Deze header geeft aan wanneer het document voor het laatst is gewijzigd. De client kan het document vervolgens in de cache opslaan en een datum opgeven via een If-Modified-Since-verzoekheader bij volgende verzoeken.
  • Locatie: Deze header moet worden opgenomen in alle reacties die binnen 300 seconden een statuscode hebben. Hierdoor wordt de browser op de hoogte gesteld van het documentadres. De browser maakt automatisch opnieuw verbinding met deze locatie en haalt het nieuwe document op.
  • verversen: Deze header geeft aan hoe snel de browser een vernieuwde pagina moet aanvragen. U kunt de tijd in aantal seconden opgeven waarna een pagina wordt vernieuwd.
  • Opnieuw proberen na: Deze header kan worden gebruikt in combinatie met een 503-antwoord (service niet beschikbaar) om de client te vertellen hoe lang het verzoek kan worden herhaald.
  • Set-cookie: Deze header specificeert een cookie die aan de pagina is gekoppeld.

Ercole Palmeri

Innovatie nieuwsbrief
Mis het belangrijkste nieuws over innovatie niet. Meld u aan om ze per e-mail te ontvangen.

Recente artikelen

Interface-segregatieprincipe (ISP), vierde SOLID-principe

Het interface-segregatieprincipe is een van de vijf SOLID-principes van objectgeoriënteerd ontwerp. Een klas moet…

14 mei 2024

Hoe u gegevens en formules het beste kunt ordenen in Excel, voor een goed uitgevoerde analyse

Microsoft Excel is de referentietool voor data-analyse, omdat het veel mogelijkheden biedt voor het organiseren van datasets,…

14 mei 2024

Positieve conclusie voor twee belangrijke Walliance Equity Crowdfunding-projecten: Jesolo Wave Island en Milano Via Ravenna

Walliance, SIM en platform behoren sinds 2017 tot de koplopers in Europa op het gebied van Real Estate Crowdfunding, kondigt de voltooiing aan…

13 mei 2024

Wat is filament en hoe gebruik je Laravel-filament?

Filament is een "versneld" Laravel-ontwikkelingsframework dat verschillende full-stack-componenten biedt. Het is ontworpen om het proces van…

13 mei 2024

Onder controle van kunstmatige intelligentie

«Ik moet terugkeren om mijn evolutie te voltooien: ik zal mezelf in de computer projecteren en pure energie worden. Eenmaal gesetteld…

10 mei 2024

De nieuwe kunstmatige intelligentie van Google kan DNA, RNA en ‘alle moleculen van het leven’ modelleren

Google DeepMind introduceert een verbeterde versie van zijn kunstmatige-intelligentiemodel. Het nieuwe, verbeterde model biedt niet alleen…

9 mei 2024

Ontdek de modulaire architectuur van Laravel

Laravel, beroemd om zijn elegante syntaxis en krachtige functies, biedt ook een solide basis voor modulaire architectuur. Daar…

9 mei 2024

Cisco Hypershield en overname van Splunk Het nieuwe tijdperk van beveiliging begint

Cisco en Splunk helpen klanten hun reis naar het Security Operations Center (SOC) van de toekomst te versnellen met…

8 mei 2024