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 versiones anteriores de WebSphere, 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 el carácter /.

Sin embargo, en Liberty con la característica Servlet 4.0, una llamada a getServletPath para una correlación de servlet predeterminada 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 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

Para volver al comportamiento anterior cuando se utiliza la característica Servlet 4.0, añada la configuración siguiente al archivo server.xml: <webContainer servletPathForDefaultMapping="false"/>

Para obtener información adicional, consulte: