Wie ein Servlet zur Karte mit getPathInfo zusätzlichen Pfadinformationen zu erhalten ()
Frage
Ich habe ein Problem, wo Tomcat zusätzliche Pfadinformationen als Teil des Servlet-Namen zu behandeln. Dies ist ein Bündel von RESTful-Funktionalität in unserem Webapp zu brechen (wir Infos extra Pfad verwenden, anstatt? Name = Wert-Paare für Crawler-freundliche Links).
Es funktioniert vor richtig, aber es brach nach expliziten Zuordnungen Hinzufügen und Entfernen des Invoker
Servlet, dass wir unsere Servlets bisher verwendeten dienen. Zum Beispiel betrachten Sie den folgenden Link:
MyServlet
verwendet, um richtig und "/ param1 / param2 / param3" genannt wurde von getPathInfo()
auf dem HttpServletRequest
zurückgegeben.
Nun, es scheint, dass Tomcat myservlet / param1 / param2 / param3 als Servlet zu laden versucht:
[23 / Sep / 2008: 16: 44: 23 -0700] „GET / Servlet / myservlet / param1 / param2 / param3 HTTP / 1.0" 404
Hier ist die Art, wie sie definiert sind und in der web.xml abgebildet, und nur schlagen " http://mydomain.com/servlet/MyServlet " funktioniert.
<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>
Lösung
Sie müssen es / Servlet zur Karte / myservlet / *
Sie fehlen den nachgestellten „/*".