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.