Java 如何使用getPathInfo()映射Servlet以获取额外的路径信息

Java 如何使用getPathInfo()映射Servlet以获取额外的路径信息,java,tomcat,rest,servlets,Java,Tomcat,Rest,Servlets,我遇到了一个问题,Tomcat将额外的路径信息作为servlet名称的一部分。这打破了我们webapp中的一系列RESTFul功能(我们使用额外的路径信息,而不是?name=value对来创建爬虫友好的链接) 它以前工作正常,但在添加显式映射并删除以前用于服务servlet的Invokerservlet之后,它就坏了。例如,考虑以下链接: MyServlet过去被正确调用,并且在HttpServletRequest上的getPathInfo()返回了“/param1/param2/param3

我遇到了一个问题,Tomcat将额外的路径信息作为servlet名称的一部分。这打破了我们webapp中的一系列RESTFul功能(我们使用额外的路径信息,而不是?name=value对来创建爬虫友好的链接)

它以前工作正常,但在添加显式映射并删除以前用于服务servlet的
Invoker
servlet之后,它就坏了。例如,考虑以下链接:

MyServlet
过去被正确调用,并且在
HttpServletRequest
上的
getPathInfo()
返回了“/param1/param2/param3”

现在,Tomcat似乎正在尝试将MyServlet/param1/param2/param3加载为servlet:

[23/Sep/2008:16:44:23-0700]“获得 /servlet/MyServlet/param1/param2/param3 HTTP/1.0“404

以下是它们在web.xml中的定义和映射方式,只需点击 ”“很好

<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>

MyServlet
com.myclass.etcetera.MyServlet
MyServlet
/servlet/MyServlet

您需要将其映射到/servlet/MyServlet/*

您缺少尾随的“/*”