Una correlación de servlets predeterminada tiene una correlación únicamente del carácter /. En servidores de aplicaciones
competitivos, una llamada al método javax.servlet.http.HttpServletRequest.getServletPath para una correlación de servlet predeterminada
devuelve el valor del URI de solicitud menos la vía de acceso de contexto, y una llamada al método javax.servlet.http.HttpServletRequest.getPathInfo
devuelve un valor nulo.
En WebSphere tradicional, una llamada a getServletPath para una correlación de servlet predeterminada devolverá una serie vacía,
y 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,
y una llamada al método getPathInfo devuelve el carácter /.
Por ejemplo, considere el código siguiente:
|
@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 servidores de aplicaciones competitivos, este código tendrá la salida siguiente:
|
getServletPath: /some/path/to/servlet getPathInfo: null |
Sin embargo, en WebSphere tradicional y Liberty con Servlet 3.0 o 3.1, el código tendrá la salida siguiente:
|
getServletPath: getPathInfo: / |
Si está migrando a WebSphere Liberty y utiliza las implementaciones de Servlet 3.0 o 3.1, añada el elemento <webContainer servletPathForDefaultMapping="true"/>
al archivo de configuración server.xml. Añadir este elemento hará que los métodos
getServletPath y getPathInfo se comporten como lo harían en servidores de aplicaciones competitivos.
Si está utilizando la implementación de Servlet 4.0, no es necesario ningún cambio. getServletPath
y getPathInfo en la implementación de Servlet 4.0 se comportan de la misma manera que en los servidores
de aplicaciones competitivos.
Si está migrando a WebSphere tradicional, establezca la propiedad
com.ibm.ws.webcontainer.EnableDefaultServletRequestPathElements de WebContainer en true.
Establecer esta propiedad hará que los métodos
getServletPath y getPathInfo se comporten como lo harían en servidores de aplicaciones competitivos.
Para obtener información adicional, consulte: