Ricerca una modifica al comportamento nei metodi getServletPath e getPathInfo

Un'associazione servlet predefinita ha un'associazione solo del carattere /. In WebLogic, 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 /.

In WebSphere tradizionale, una chiamata a getServletPath per un'associazione servlet predefinita restituirà una stringa vuota ma una chiamata al metodo getPathInfo restituisce il carattere /.

Allo stesso modo, se si sta eseguendo la migrazione a Liberty e si utilizzano le implementazioni della funzione Servlet 3.0 o 3.1, una chiamata a getServletPath per un'associazione servlet predefinita restituirà una stringa vuota, ma una chiamata al metodo getPathInfo restituisce il carattere /. Tuttavia, se si utilizza la funzione Servlet 4.0, una chiamata a getServletPath restituirà il carattere / ed una chiamata a getPathInfo restituirà null.

Ad esempio, considerare il seguente codice:

< span class="Code"> @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 WebLogic, questo codice avrà il seguente output:

< span class="Code"> getServletPercorso:
getPathInfo: null

In WebSphere tradizionale e Liberty con Servlet 3.0 o 3.1, il codice avrà il seguente output:

< span class="Code"> getServletPercorso:
getPathInfo: /

In Liberty con Servlet 4.0, il codice avrà il seguente output:

< span class="Code"> getServletPercorso: /
getPathInfo: null

Se si sta eseguendo la migrazione a WebSphere tradizionale o Liberty con le implementazioni Servlet 3.0 o 3.1, verificare che il codice tenga in considerazione getPathInfo restituendo il carattere / invece di null.

Se si sta eseguendo la migrazione a Liberty con l'implementazione Servlet 4.0, verificare che il codice tenga in considerazione getServletPath restituendo il carattere / invece di una stringa vuota.

Per ulteriori informazioni, vedere: