A getRequestURI és a getPathInfo közötti különbség a HttpServletRequest fájlban

1. Áttekintés

Ebben a gyors bemutatóban megvitatjuk a különbséget getRequestURI () és getPathInfo () ban,-ben HttpServletRequest osztály.

2. Különbség getRequestURI () és getPathInfo ()

A funkció getRequestURI ()visszaadja a teljes kért URI-t. Ez magában foglalja a telepítési mappát és a servlet-leképezési karakterláncot. Visszaadja az összes extra útvonal információt is.

A funkció getPathInfo ()csak a szervletnek átadott utat adja vissza. Ha nincs továbbítva további útvonal információ, akkor ez a funkció visszatér nulla.

Más szóval, ha telepítjük az alkalmazást a webszerverünk gyökérkönyvtárába, és kérjük a “/” -hez leképezett szervletet, mindkettőt getRequestURI () és getPathInfo () ugyanazt a strin-t adja visszag. Ellenkező esetben különböző értékeket kapunk.

3. Példa kérésre

A. Jobb megértése érdekében HttpServletRequest módszerek, tegyük fel, hogy van egy szervletünk, amely ezen az URL-címen érhető el:

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

Ez a kérés el fogja érni a „szervlet-leképezés” kiszolgáló kisalkalmazást egy olyan webalkalmazásban, amely a „telepítési mappába” van telepítve. Ezért, ha hívunk getRequestURI () és getPathInfo () ehhez a kéréshez különböző karakterláncokat adnak vissza.

Hozzunk létre egy egyszerű doGet () servlet módszer:

public void doGet (HttpServletRequest kérés, HttpServletResponse válasz) eldobja az IOException {PrintWriter író = response.getWriter (); if ("getPathInfo" .equals (request.getParameter ("function")) {író.println (request.getPathInfo ());} else if ("getRequestURI" .equals (request.getParameter ("function")) {író .println (request.getRequestURI ());} író.flush ();}

Először nézzük meg a szervlet kimenetét getRequestURI curl paranccsal lekért kérések:

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

Hasonlóképpen vessünk egy pillantást a szervlet kimenetére getPathInfo:

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

4. Következtetés

Ebben a cikkben elmagyaráztuk a a különbség köztük getRequestURI () és getPathInfo () ban ben HttpServletRequest. Bemutattuk egy példával a kiszolgáló kisalkalmazással és a kéréssel is.

Mint mindig, az összes funkció tesztelésére megvalósított servlet elérhető a Githubon.


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