Comprobar si hay un cambio de comportamiento en los métodos getServletPath y getPathInfo

Una correlación de servlets predeterminada tiene una correlación únicamente del carácter /. En WebLogic, una llamada al método javax.servlet.http.HttpServletRequest.getServletPath para una correlación de servlet predeterminada devuelve una serie vacía, y una llamada al método javax.servlet.http.HttpServletRequest.getPathInfo devuelve null.

En WebSphere tradicional, una llamada a getServletPath para una correlación de servlet predeterminada devolverá una serie vacía, pero una llamada al método getPathInfo devuelve el carácter /.

De forma similar, si está migrando a Liberty y utilizando las implementaciones de la característica Servlet 3.0 o 3.1, una llamada a getServletPath para una correlación de servlet predeterminada devolverá una serie vacía, pero una llamada al método getPathInfo devuelve el carácter /. Sin embargo, si utiliza la característica Servlet 4.0, una llamada a getServletPath devolverá el carácter / y una llamada a getPathInfo devolverá null.

Por ejemplo, considere el código siguiente:

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

En WebLogic, este código tendrá la salida siguiente:

< span class="Code"> getServletVía de acceso:
getPathInfo: null

En WebSphere tradicional y Liberty con Servlet 3.0 o 3.1, el código tendrá la salida siguiente:

< span class="Code"> getServletVía de acceso:
getPathInfo: /

En Liberty con Servlet 4.0, el código tendrá la salida siguiente:

< span class="Code"> getServletVía de acceso:/
getPathInfo: null

Si está migrando a WebSphere tradicional o a Liberty con las implementaciones de Servlet 3.0 o 3.1, asegúrese de que las cuentas de código de getPathInfo devuelven el carácter / en lugar de null.

Si está migrando a Liberty con la implementación de Servlet 4.0, asegúrese de que las cuentas de código de getServletPath devuelvan el carácter / en lugar de una serie vacía.

Para obtener información adicional, consulte: