Un'associazione servlet predefinita ha un'associazione solo del carattere /. Nei server delle applicazioni della concorrenza,
una chiamata al metodo javax.servlet.http.HttpServletRequest.getServletPath per un'associazione servlet predefinita
restituisce il valore dell'URI della richiesta meno il percorso del contesto ed una chiamata al metodo
javax.servlet.http.HttpServletRequest.getPathInfo restituisce null.
In WebSphere tradizionale, una chiamata a getServletPath per un'associazione servlet predefinita restituirà una stringa vuota
ed 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
ed una chiamata al metodo getPathInfo restituisce il carattere /.
Ad esempio, considerare il seguente codice:
Nei server delle applicazioni della concorrenza, questo codice avrà il seguente output:
Tuttavia, in WebSphere tradizionale e Liberty con Servlet 3.0 o 3.1, il codice avrà il seguente output:
Se si sta eseguendo la migrazione a WebSphere Liberty e si utilizzano le implementazioni Servlet 3.0 o 3.1, aggiungere l'elemento <webContainer servletPathForDefaultMapping="true"/>
al file di configurazione server.xml. Aggiungendo tale elemento, i metodi
getServletPath e getPathInfo si comportano come nei server delle applicazioni della concorrenza.
Se si utilizza l'implementazione Servlet 4.0, non è necessaria alcuna modifica. getServletPath
e getPathInfo nell'implementazione Servlet 4.0 si comportano come nei server delle applicazioni della concorrenza.
Se si sta eseguendo la migrazione a WebSphere tradizionale, impostare la proprietà WebContainer
com.ibm.ws.webcontainer.EnableDefaultServletRequestPathElements su true.
Impostando tale proprietà, i metodi getServletPath e getPathInfo si comportano
come nei server delle applicazioni della concorrenza.
Per ulteriori informazioni, consultare: