Verificar se há mudança de comportamento nos métodos getServletPath e getPathInfo

Um mapeamento de servlet padrão tem um mapeamento apenas do caractere /. No WebLogic, uma chamada para o método javax.servlet.http.HttpServletRequest.getServletPath para um mapeamento de servlet padrão retorna uma sequência vazia, e uma chamada para o método javax.servlet.http.HttpServletRequest.getPathInfo retorna null.

No WebSphere tradicional, uma chamada para getServletPath para um mapeamento de servlet padrão retorna uma sequência vazia, mas uma chamada para o método getPathInfo retorna o caractere /.

Da mesma forma, se você estiver migrando para o Liberty usando as implementações de recurso do Servlet 3.0 ou 3.1, uma chamada para getServletPath para um mapeamento de servlet padrão retornará uma sequência vazia, mas uma chamada para o método getPathInfo retornará o caractere /. No entanto, se você usar o recurso Servlet 4.0, uma chamada para getServletPath retornará o caractere / e uma chamada para getPathInfo retornará null.

Por exemplo, considere o código a seguir:

< span class="Code"> @WebServlet("/")
A classe pública TestServlet estende HttpServlet {

public void doGet(HttpServletRequest req, HttpServletResponse res) {
System.out.println ("getServletPath:" + req.getServletPath ());
System.out.println ("getPathInfo:" + req.getPathInfo ());
}
}

No WebLogic, este código terá a saída a seguir:

< span class="Code"> getServletCaminho:
getPathInfo: nulo

No WebSphere tradicional e no Liberty com o Servlet 3.0 ou 3.1, o código terá a saída a seguir:

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

No Liberty com o Servlet 4.0, o código terá a saída a seguir:

< span class="Code"> getServletCaminho: /
getPathInfo: nulo

Se você estiver migrando para o WebSphere tradicional ou para o Liberty com as implementações do Servlet 3.0 ou 3.1, assegure-se de que suas contas de código para getPathInfo retornem o caractere / em vez de null.

Se você estiver migrando para o Liberty com a implementação do Servlet 4.0, assegure-se de que suas contas de código para getServletPath retornem o caractere / em vez de uma sequência vazia.

Para obter informações adicionais, consulte: