Výchozí mapování servletu má mapování pouze znaku /. Na konkurenčních aplikačních serverech
vrátí volání metody javax.servlet.http.HttpServletRequest.getServletPath kvůli výchozímu mapování servletu
hodnotu identifikátoru URI požadavku bez kontextové cesty a volání
metody javax.servlet.http.HttpServletRequest.getPathInfo vrátí hodnotu null.
V produktu WebSphere traditional vrátí volání metody getServletPath kvůli výchozímu mapování servletu prázdný řetězec
a volání metody getPathInfo vrátí znak /.
Podobně platí, že pokud migrujete na server Liberty a používáte implementace funkce servletu 3.0 nebo 3.1, volání metody getServletPath kvůli
výchozímu mapování servletu vrátí prázdný řetězec a volání metody getPathInfo vrátí znak /.
Zvažte například následující kód:
Na konkurenčních serverech bude mít tento kód následující výstup:
Na serverech WebSphere traditional a Liberty se servletem 3.0 nebo 3.1 bude mít kód následující výstup:
Pokud migrujete na server WebSphere Liberty a používáte implementaci servlet 3.0 nebo 3.1, přidejte prvek <webContainer servletPathForDefaultMapping="true"/>
do konfiguračního souboru server.xml. Přidání tohoto prvku způsobí, že se
metody getServletPath a getPathInfo budou chovat stejně jako na konkurenčních aplikačních serverech.
Používáte-li implementaci servletu 4.0, není třeba provádět žádnou změnu. Metody getServletPath
a getPathInfo se v servletu 4.0 chovají stejně jako na konkurenčních aplikačních serverech.
Pokud migrujete na produkt WebSphere traditional, nastavte vlastnost
com.ibm.ws.webcontainer.EnableDefaultServletRequestPathElements webového kontejneru na hodnotu true.
Nastavení této vlastnosti způsobí, že se metody getServletPath a getPathInfo
budou chovat stejně jako na konkurenčních aplikačních serverech.
Další informace viz: