I have a simple servlet which renders different content based on different geo locations for example:
example.com/us
example.com/de
example.com/uk
example.com/..
so actually the servlet should supports all geo locations as url-pattern. So thats why I defined the rule below in my web.xml
file:
<servlet-mapping>
servlet-name>MyServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
this is how the servlet look like:
public class MyServlet extends HttpServlet{
String showPage = "/pages/show.jsp";
public void doGet(HttpServletRequest request, HttpServletResponse response){
System.out.println("servlet initiated... ~> "+request.getRequestURI());
...
request.getRequestDispatcher(showPage).forward(request, response);
}
}
As soon as I try to forward the page, the servlet starts again and again; it tries to also handle the request /page/show.jsp
.
So I get such an ouput when I try to access example.com/us
:
servlet initiated... ~> /us
servlet initiated... ~> /page/show.jsp
Exception...
servlet initiated... ~> /page/show.jsp
Exception...
servlet initiated... ~> /page/show.jsp
...
It throws an exception because my servlet is not expecting such a url-pattern /page/show.jsp
but it triggers because I have define /*
url-pattern in my web.xml file.
Any idea? how can I skip or exclude the unwanted requests like the one above? Thanks.