CodeGym/Java kurs/Modul 3/Serveringsforespørsler i en Servlet

Serveringsforespørsler i en Servlet

Tilgjengelig

2.1 HttpServletRequest-klasse

Det meste av arbeidet din servlet må gjøre basert på informasjonen mottatt fra forespørselen. Objektet er ansvarlig for det HttpServletRequest, som beholderen vil sende til servleten din (til metoden serviceeller metodene doGet(), doPost()etc.)

Dette objektet har ganske mange metoder, siden det bare lagrer forespørselsdataene, og gjennom det kan du samhandle med beholderen.

Metoder kan deles inn i 2 store grupper:

  • Metoder knyttet til brukerautorisasjon
  • Metoder for å arbeide med spørringsdata

Jeg vil gi brukeren autorisasjonsmetoder i form av en tabell, men vi vil ikke analysere dem. Faktum er at de svært sjelden brukes til å autorisere en bruker. Alle populære rammeverk bruker sine egne, mye mer avanserte tilnærminger til autorisasjon.

Jeg burde liste dem opp, men igjen, jeg har ikke sett noen bruke dem.

Metode Beskrivelse
1 authenticate(HttpServletResponse) Utfører svarautentisering
2 changeSessionId() Endre økt-ID med makt
3 getAuthType() Returnerer typen autentisering som brukes: ASIC_AUTH, FORM_AUTH, CLIENT_CERT_AUTH, DIGEST_AUTH
4 getRemoteUser() Returnerer brukerinnlogging
5 getRequestedSessionId() Returnerer SessionID-en til klienten
6 getSession() Returnerer et HttpSession-objekt
7 getUserPrincipal() Returnerer et java.security.Principal-objekt
8 login(username, password) Utfører brukerinnlogging
9 logout() Logger ut brukerøkten

2.2 Be om data

Den andre gruppen av metoder er mye mer interessant. Hva slags data har vi i forespørselen?

  • http-metoden
  • URI
  • Alternativer
  • Titler

La oss se hvilke metoder som er tilgjengelige for å jobbe med dem:

Metode Beskrivelse
1 getMethod() Returnerer HTTP-metoden: GET, POST, DELETE, ...
2 getRequestURI() Returnerer forespørsels-URI: http://codegym.cc/my/data
3 getRequestURL() Returnerer forespørsels-URL: http://codegym.cc/my/data
4 getQueryString() Returnerer spørring, dvs. alt etter ?
5 getParameterMap() Returnerer en liste over spørringsparametere
6 getParameter(String name) Returnerer verdien til parameteren etter navnet
7 getContentType() Returnerer MimeType-forespørselsteksten
8 getReader() Leser for å lese forespørselsteksten som tekst
9 getInputStream() InputStream for å lese forespørselsteksten som byte[]
10 getSession() Returnerer et HttpSession-objekt
elleve getCookies() Returnerer en rekke Cookie[]-objekter
12 getHeaderNames() Returnerer en liste over titler, kun navn
1. 3 getHeader(String name) Returnerer topptekstverdien etter navn
14 getServletPath() Returnerer den delen av URL-en som refererer til servleten
15 getContextPath() Returnerer den delen av URI-en som spesifiserer innholdet i forespørselen

Og det er ikke engang alle metodene ...

Selv om etter at vi har studert HTTP-protokollen og lært hvordan vi jobber med HttpClient, er alt mer eller mindre kjent her, ikke sant?

La oss skrive en servlet som kan sendes tekst og en farge til, og den vil returnere en HTML-side med den teksten skrevet i den angitte fargen. Hvordan liker du ideen?

La oss starte med å skrive vår servlet:

public class ColorTextServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws Exception {
          //write your code here
    }
}

Nå må vi få teksten og fargen sendt fra URI av brukeren:

public class ColorTextServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws Exception {

        // Getting the parameter “text” and “color” from request
        String text= request.getParameter("text");
        String color = request.getParameter("color");

    }
}

Og til slutt må du skrive ut teksten som HTML. Vi skal ta for oss dette i neste forelesning, men her vil jeg gi et lite hint:

public class ColorTextServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws Exception {

        // Get the "text" and "color" parameters from the request
        String text = request.getParameter("text");
        String color = request.getParameter("color");


        // Print the HTML as a response to the browser
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out =  response.getWriter();
        try {
            out.println("<html>");
            out.println("<head> <title> ColorTextServlet </title> </head>");
            out.println("<body>");
            out.println("<h1 style="color:"+color+">"+text+"</h1>");
            out.println("</body>");
            out.println("</html>");
        } finally {
            out.close();
        }
    }
}
Kommentarer
  • Populær
  • Ny
  • Gammel
Du må være pålogget for å legge igjen en kommentar
Denne siden har ingen kommentarer ennå