java - web.xml url 模式出现问题

标签 java web.xml

在我的web.xml我有这样的 servlet URL 模式:

<url-pattern>/*/myservice</url-pattern>

所以我想使用 blablabla/myservice 来调用它也如anyWord/myservice .

但是这不起作用。仅当我使用此 URL 调用它时它才有效: /*/myservice (网址中带有星号)。

最佳答案

你不能这么做。 根据 Servlet 2.5 规范(在规范的其他级别中情况并没有那么不同),SRV.11.2 章:

  • / 字符开头并以 /* 后缀结尾的字符串 用于路径映射。
  • *. 前缀开头的字符串用作扩展映射。
  • 仅包含 / 字符的字符串表示应用程序的“默认”servlet。在这种情况下,servlet 路径是请求 URI 减去上下文路径, 路径信息为空。
  • 所有其他字符串仅用于精确匹配。

您的案例属于第四条,因此使用精确映射。

要避免这种情况,请使用 / 映射(第三种情况)。将所有请求映射到特定 servlet,并让该 servlet 将请求重新路由到某种类型的处理程序(其他 servlet 或某些自定义类)。

例如:

<url-pattern>/</url-pattern>
<servlet-name>MyServlet</servlet-name>

然后,在 MyServlet 的代码中,检查您在请求中收到的 URL(使用 request.getPathInfo())并使用该值转发向其他处理程序发出请求。

关于java - web.xml url 模式出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13737619/

相关文章:

java - Jsp 文件未在 web.xml 中启动

websocket - Spring 4 DispatcherServlet 与 websockets 映射

java - G1 GC 单个,很长的年轻 GC 发生在 ParallelGCThreads=1

java - 初级 Java 循环

java - 是否有任何现有的 Java 库允许您根据纬度/经度在内存中快速查找邮政编码(奖金、州和城市)?

java - 启动tomcat 7抛出两个异常,End事件和web.xml解析

java - 如何使welcome-file-list与Spring Servlet一起使用?

java - 使用 excerptProjection 时 @JsonBackreference 被忽略

java - 自动生成 key

java - 在 web.xml 中以编程方式禁用过滤器