Rechercher un changement de comportement dans les méthodes getServletPath et getPathInfo

Un mappage de servlet par défaut se limite au caractère /. Dans WebLogic, un appel à la méthode javax.servlet.http.HttpServletRequest.getServletPath pour un mappage de servlet par défaut renvoie une chaîne vide et un appel à la méthode javax.servlet.http.HttpServletRequest.getPathInfo renvoie la valeur null.

Dans WebSphere Traditional, un appel à getServletPath pour un mappage de servlet par défaut renvoie une chaîne vide mais un appel à la méthode getPathInfo renvoie le caractère /.

De même, si vous migrez vers Liberty et utilisez les implémentations de fonctionnalités Servlet 3.0 ou 3.1, un appel à getServletPath pour un mappage de servlet par défaut renvoie une chaîne vide, mais un appel à la méthode getPathInfo renvoie le caractère /. Toutefois, si vous utilisez la fonctionnalité Servlet 4.0, un appel à getServletPath renvoie le caractère / et un appel à getPathInfo renvoie null.

Par exemple, considérons le code suivant :

< 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());
}
}

Dans WebLogic, ce code produit la sortie suivante :

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

Dans WebSphere Traditional et Liberty avec Servlet 3.0 ou 3.1, le code produit les résultats suivants :

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

Dans Liberty avec Servlet 4.0, le code produit les résultats suivants :

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

Si vous migrez vers WebSphere Traditional ou Liberty avec les implémentations Servlet 3.0 ou 3.1, assurez-vous que votre code représente getPathInfo qui renvoie le caractère / plutôt que null.

Si vous migrez vers Liberty avec l'implémentation Servlet 4.0, assurez-vous que votre code représente getServletPath qui renvoie le caractère / plutôt qu'une chaîne vide.

Pour plus d'informations, voir :