- Implement
javax.servlet.Filter
. - In
doFilter()
method, cast the incomingServletRequest
toHttpServletRequest
. - Use
HttpServletRequest#getRequestURI()
to grab the path. - Use straightforward
java.lang.String
methods likesubstring()
,split()
,concat()
and so on to extract the part of interest and compose the new path. - Use either
ServletRequest#getRequestDispatcher()
and thenRequestDispatcher#forward()
to forward the request/response to the new URL (server-side redirect, not reflected in browser address bar), or cast the incomingServletResponse
toHttpServletResponse
and thenHttpServletResponse#sendRedirect()
to redirect the response to the new URL (client side redirect, reflected in browser address bar). - Register the filter in
web.xml
on anurl-pattern
of/*
or/Check_License/*
, depending on the context path, or if you’re on Servlet 3.0 already, use the@WebFilter
annotation for that instead.
Don’t forget to add a check in the code if the URL needs to be changed and if not, then just call FilterChain#doFilter()
, else it will call itself in an infinite loop.
Alternatively you can also just use an existing 3rd party API to do all the work for you, such as Tuckey’s UrlRewriteFilter which can be configured the way as you would do with Apache’s mod_rewrite
.