Wie kann ich ein "Root" -Servlet zuordnen, damit andere Skripte noch ausgeführt werden können?

Ich versuche, ein Servlet zu erstellen, das eine JSP-Seite aufruft, die der folgenden ähnelt:

<code>public void doGet(HttpServletRequest req, HttpServletResponse resp)
        throws IOException, ServletException {
    req.getRequestDispatcher("/WEB-INF/main.jsp").forward(req, resp);
}
</code>

Ich brauche dieses Servlet, um auf das Root der Domain zu antworten (zB:http://example.com/) Also verwende ich das folgende Mapping in der web.xml:

<code><servlet-mapping>
    <servlet-name>MainServlet</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>
</code>

Das Problem, das ich habe, ist, dass dies ALLES entspricht. Wenn der Dispatcher also nach "/WEB-INF/main.jsp" weiterleitet, stimmt dies mit dem URL-Muster überein, sodass das Servlet erneut ausgeführt wird. Dies führt zu einer Schleife, die so lange ausgeführt wird, bis sie mit a endetjava.lang.StackOverflowError.

Wie kann ich den Root abgleichen, ohne zu verhindern, dass andere Skripte ausgeführt werden können?

Antworten auf die Frage(8)

Ihre Antwort auf die Frage