Un'associazione servlet predefinita ha un'associazione solo del carattere /. Nelle versioni precedenti di WebSphere,
una chiamata al metodo javax.servlet.http.HttpServletRequest.getServletPath per un'associazione servlet predefinita
restituisce una stringa vuota ed una chiamata al metodo javax.servlet.http.HttpServletRequest.getPathInfo
restituisce il carattere /.
Tuttavia, in Liberty con la funzione Servlet 4.0, una chiamata a getServletPath per un'associazione servlet predefinita
restituirà il carattere / ed una chiamata a getPathInfo restituirà null.
Ad esempio, considerare il seguente codice:
|
@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()); } } |
In WebSphere tradizionale e Liberty con Servlet 3.0 o 3.1, il codice avrà il seguente output:
|
getServletPath: getPathInfo: / |
In Liberty con Servlet 4.0, il codice avrà il seguente output:
|
getServletPath: / getPathInfo: null |
Per tornare al comportamento precedente quando si utilizza la funzione Servlet 4.0, aggiungere la seguente configurazione al
file server.xml: <webContainer servletPathForDefaultMapping="false"/>
Per ulteriori informazioni, consultare: