如何使用getPathInfo()映射Servlet以获取额外的路径信息
题
我遇到的问题是Tomcat将额外路径信息视为servlet名称的一部分。这打破了我们的webapp中的一堆RESTFul功能(我们使用额外的路径信息而不是?name = value对用于爬虫友好链接)。
之前它正常工作,但在添加显式映射并删除我们以前用于为servlet提供服务的 Invoker
servlet之后,它已经崩溃了。例如,请考虑以下链接:
过去,
MyServlet
正确调用,而“/ param1 / param2 / param3”在 HttpServletRequest
上由 getPathInfo()
返回。
现在,似乎Tomcat正在尝试加载MyServlet / param1 / param2 / param3作为servlet:
[23 / Sep / 2008:16:44:23 -0700]“GET / servlet的/ MyServlet /参数1 / param2的/参数3 HTTP / 1.0" 404
以下是在web.xml中定义和映射它们的方式,然后点击 “ http://mydomain.com/servlet/MyServlet "工作正常。
<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>
解决方案
您需要将其映射到/ servlet / MyServlet / *
您缺少尾随的“/ *”。
不隶属于 StackOverflow