Výchozí mapování servletu má mapování pouze znaku /. V předchozích verzích produktu WebSphere
vrátilo volání metody javax.servlet.http.HttpServletRequest.getServletPath kvůli výchozímu mapování
servletu prázdný řetězec a volání metody javax.servlet.http.HttpServletRequest.getPathInfo
vrátilo znak /.
Na serveru Liberty s funkcí servletu 4.0 však vrátí volání metody getServletPath kvůli výchozímu mapování servletu znak / a volání metody getPathInfo vrátí hodnotu null.
Zvažte například následující kód:
|
@WebServlet("/") public class TestServlet extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse res) { System.out.println("getServletPath: " + req.getServletPath()); System.out.println("getPathInfo: " + req.getPathInfo()); } } |
Na serverech WebSphere traditional a Liberty se servletem 3.0 nebo 3.1 bude mít kód následující výstup:
|
getServletPath: getPathInfo: / |
Na serveru Liberty se servletem 4.0 bude mít kód následující výstup:
|
getServletPath: / getPathInfo: null |
Chcete-li se vrátit k předchozímu chování, když používáte funkci servletu 4.0, přidejte do souboru server.xml následující konfiguraci: <webContainer servletPathForDefaultMapping="false"/>
Další informace viz: