通配符路径映射 /A/* 应该 return 404 当路径信息不存在时 /A

Wildcard path mapping /A/* should return 404 when path info is absent like /A

我是 Servlet 新手。我正在尝试使用 通配符 (*) 映射 URL,但它没有按我预期的方式工作。

这是我的 servlet class。

@WebServlet(urlPatterns = {"/A/*"})
public class TestServlet extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.getWriter().write("Working...");
    }
}

上述 servlet 适用于 example.com/Aexample.com/A/car。 我只想为第二个选项使用 servlet,即 example.com/A/whatEver。我该怎么做?

简单来说:如果 example.com/A.

之后有任何内容,我只想使用 servlet

任何帮助将不胜感激。

只需调用 HttpServletResponse#sendError() with SC_NOT_FOUND (404) when HttpServletRequest#getPathInfo() is null or empty or equals/

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String pathInfo = request.getPathInfo();

    if (pathInfo == null || pathInfo.isEmpty() || pathInfo.equals("/")) {
        response.sendError(HttpServletResponse.SC_NOT_FOUND);
        return;
    }

    // ... (continue)
}