Como mapear um Servlet para obter informações sobre o caminho extra com getPathInfo ()

StackOverflow https://stackoverflow.com/questions/124685

  •  02-07-2019
  •  | 
  •  

Pergunta

Estou tendo um problema onde Tomcat é tratar informações de caminho extra como parte do nome do servlet. Isso está quebrando um monte de funcionalidade tranquilo em nosso webapp (nós usamos Informação extra caminho ao invés de? Name = pares de valor para as ligações amigáveis ??rastreador).

Ele estava funcionando corretamente antes, mas ele quebrou depois de adicionar mapeamentos explícitos e remover o servlet Invoker que anteriormente usado para servir os nossos servlets. Por exemplo, considere o seguinte link:

http://mydomain.com/servlet/MyServlet/param1/param2/param3

MyServlet costumava ser chamado corretamente, e "/ param1 / param2 / param3" foi retornado por getPathInfo() na HttpServletRequest.

Agora, parece que Tomcat está tentando carregar MyServlet / param1 / param2 / param3 como o servlet:

[23 / Set / 2008: 16: 44: 23 -0700] "GET / Servlet / MyServlet / param1 / param2 / param3 HTTP / 1.0" 404

Aqui é a forma como eles são definidos e mapeados no web.xml, e apenas bater " http://mydomain.com/servlet/MyServlet " fino funciona.

<servlet>
  <servlet-name>MyServlet</servlet-name>
  <servlet-class>com.myclass.etcetera.MyServlet</servlet-class>
</servlet>

<servlet-mapping>
  <servlet-name>MyServlet</servlet-name>
  <url-pattern>/servlet/MyServlet</url-pattern>
</servlet-mapping>
Foi útil?

Solução

Você precisa mapeá-lo para / servlet / MyServlet / *

Está faltando a fuga "/*".

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top