I would like to map my servlet to `/*`, but it failed with an infinite loop.

```
<servlet>
    <servlet-name>helloServlet</servlet-name>
    <servlet-class>my.HelloServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>helloServlet</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

```

The java code is:

```
public class HelloServlet extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response){
        request.getRequestDispatcher("/WEB-INF/jsps/hello.jsp").forward(request, response);
    }

}

```

If I map to `/hello`, everything works fine.

As the `HelloServlet` is mapped to `/*`, it will also be invoked on `RequestDispatcher#forward()` and cause the infinite loop.

How is this caused and how can I solve it?