gpt4 book ai didi

jakarta-ee - 如何配置 web.xml url-pattern 以获取指定位置?

转载 作者:行者123 更新时间:2023-11-28 22:05:36 24 4
gpt4 key购买 nike

我想处理对 /Projects 的请求和 /Projects/SomeProject/使用 'ProjectsServlet' 但返回 404访问时出现错误代码 /Projects/SomePath/SomeOtherSubPath .

项目名称经常更新,所以我不想每次都重写我的 Servlet 代码,我已经编写了项目名称的简单解析器,并且 servlet 加载指定页面(如果存在)。

那么如何在web.xml中写配置呢?现在看起来像:

<servlet>
<servlet-name>ProjectsServlet</servlet-name>
<servlet-class>com.example.ProjectsServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>ProjectsServlet</servlet-name>
<url-pattern>/Projects/*</url-pattern>
</servlet-mapping>

但它也尝试处理“项目”根目录/Projects/.../... 之后的所有请求

在最好的情况下,我想这样写映射:

<servlet-mapping>
<servlet-name>ProjectsServlet</servlet-name>
<url-pattern>/Projects</url-pattern>
<url-pattern>/Projects/*/</url-pattern>
</servlet-mapping>

但这是不正确的。我怎样才能做同样的事情?

最佳答案

您不能将多个 url 模式放入一个 servlet 映射中。您需要具有相同 servlet 名称但不同 url 模式的多个 servlet 映射。

我的建议是将您的 servlet 映射到所有/Projects/* URL 并实现简单的 servlet 过滤器,它将为任何带有子路径的 URL 返回 404(也可以在您的 servlet 中进行此检查,但如果您无法修改servlet,使用过滤器)。

关于jakarta-ee - 如何配置 web.xml url-pattern 以获取指定位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18910982/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com