Java 如何使用getPathInfo()映射Servlet以获取额外的路径信息
我遇到了一个问题,Tomcat将额外的路径信息作为servlet名称的一部分。这打破了我们webapp中的一系列RESTFul功能(我们使用额外的路径信息,而不是?name=value对来创建爬虫友好的链接) 它以前工作正常,但在添加显式映射并删除以前用于服务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
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/*
您缺少尾随的“/*”