Просто внедрите javax.servlet.Filter
.
Если вы сопоставите это с шаблоном URL-адреса /*
, он будет выполняться на каждый запрос.
<url-pattern>/*</url-pattern>
или когда вы уже используете Servlet 3.0
@WebFilter(urlPatterns = { "/*" })
Вы можете получить URI запроса с помощью HttpServletRequest#getRequestURI()
в методе фильтра doFilter()
какследует:
HttpServletRequest httpRequest = (HttpServletRequest) request;
String uri = httpRequest.getRequestURI();
// ...
Вы можете использовать любой из методов, предоставленных java.lang.String
классом, чтобы сравнить / манипулировать им.* Вы можете использовать if/else
ключевые слова, предоставляемые языком Java, для управления потоком в коде.
if (matches) {
// It matches.
} else {
// It doesn't match.
}
Вы можете использовать HttpServletResponse#sendRedirect()
для отправки перенаправления.
HttpServletResponse httpResponse = (HttpServletResponse) response;
httpResponse.sendRedirect(newURL);
Вы можете использовать FilterChain#doFilter()
, чтобы просто продолжить запрос.
chain.doFilter(request, response);
Выполните математику.Конечно, вы также можете использовать сторонний, такой как фильтр перезаписи URL Tuckey, который, скажем, является вариантом Java Apache HTTPD mod_rewrite
.
См. Также: