Um mapeamento de servlet padrão tem um mapeamento apenas do caractere /. Em versões anteriores do WebSphere, 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 o caractere /.
No entanto, no Liberty com o recurso Servlet 4.0, uma chamada para getServletPath para um mapeamento de servlet padrão retornará o caractere / e uma chamada para getPathInfo retornará null.
Por exemplo, considere o código a seguir:
|
@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 WebSphere tradicional e no Liberty com o Servlet 3.0 ou 3.1, o código terá a saída a seguir:
|
getServletPath: getPathInfo: / |
No Liberty com o Servlet 4.0, o código terá a saída a seguir:
|
getServletPath: / getPathInfo: nulo |
Para retornar ao comportamento anterior ao usar o recurso Servlet 4.0, inclua a seguinte configuração no arquivo server.xml: <webContainer servletPathForDefaultMapping="false"/>
Para obter informações adicionais, veja: