Forskellen mellem getRequestURI og getPathInfo i HttpServletRequest

1. Oversigt

I denne hurtige vejledning diskuterer vi forskellen mellem getRequestURI () og getPathInfo () i HttpServletRequest klasse.

2. Forskellen mellem getRequestURI () og getPathInfo ()

Funktionen getRequestURI ()returnerer den komplette anmodede URI. Dette inkluderer installationsmappen og servlet-kortlægningsstrengen. Det returnerer også al ekstra stiinformation.

Funktionen getPathInfo ()returnerer kun den sti, der er sendt til servlet. Hvis der ikke er sendt nogen ekstra stiinformation, vender denne funktion tilbage nul.

Med andre ord, hvis vi implementerer vores applikation i vores webservers rod, og vi anmoder om, at servlet er tilknyttet “/”, begge getRequestURI () og getPathInfo () vil returnere den samme string. Ellers får vi forskellige værdier.

3. Eksempel på anmodning

For at få en bedre forståelse af HttpServletRequest metoder, lad os sige, at vi har en servlet, som kan tilgås via denne URL:

// localhost: 8080 / deploy-folder / servlet-mapping

Denne anmodning vil ramme servlet-mapping-servlet i en webapplikation, der er indsat i "deploy-folder". Derfor, hvis vi ringer getRequestURI () og getPathInfo () til denne anmodning returnerer de forskellige strenge.

Lad os oprette en simpel doGet () servlet metode:

offentlig ugyldig doGet (HttpServletRequest anmodning, HttpServletResponse svar) kaster IOException {PrintWriter skribent = respons.getWriter (); if ("getPathInfo" .equals (request.getParameter ("function")) {writer.println (request.getPathInfo ());} ellers hvis ("getRequestURI" .equals (request.getParameter ("function")) {writer .println (request.getRequestURI ());} writer.flush ();}

Lad os først se på output af servlet til getRequestURI anmodninger hentet med curl-kommando:

curl // localhost: 8080 / deploy-folder / servlet-mapping / request-path? function = getRequestURI
/ deploy-folder / servlet-mapping / request-path 

Lad os ligeledes se på output af servlet til getPathInfo:

curl // localhost: 8080 / deploy-folder / servlet-mapping / request-path? function = getPathInfo
/ anmodningssti

4. Konklusion

I denne artikel har vi forklaret forskel mellem getRequestURI () og getPathInfo () i HttpServletRequest. Vi demonstrerede det også med et eksempel på servlet og anmodning.

Som altid er den implementerede servlet til at teste alle disse funktioner tilgængelig på Github.


$config[zx-auto] not found$config[zx-overlay] not found