0

我遇到了一个问题,Tomcat 将额外的路径信息视为 servlet 名称的一部分。这破坏了我们的 web 应用程序中的一堆 RESTFul 功能(我们使用额外的路径信息而不是 ?name=value 对来进行爬虫友好链接)。

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

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

MyServlet曾经被正确调用,并且“/param1/param2/param3”getPathInfo()HttpServletRequest.

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

[23/Sep/2008:16:44:23 -0700]“GET /servlet/MyServlet/param1/param2/param3 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>
4

1 回答 1

2

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

您缺少尾随的“/ *”。

于 2008-09-24T00:47:15.197 回答