Зарегистрируйте фильтр в web.xml в url-pattern из /* или /Check_License/*, в зависимости от контекстного пути, или, если вы уже используете Servlet 3.0, используйте для этого @WebFilter аннотацию.
Не забудьте добавить проверку в код, если URL нужно изменить, а если нет, то просто вызовите FilterChain#doFilter(), иначе он вызовет сам себя в бесконечном цикле.
В качестве альтернативы вы также можете просто использовать существующий сторонний API, который сделает всю работу за вас, такой как UrlRewriteFilter от Tuckey который можно настроить так же, как вы бы делали с Apache mod_rewrite.
Ответ 2
Вы могли бы использовать готовый к использованию фильтр перезаписи URL с правилом, подобным этому:
Проверьте примеры, чтобы узнать больше... примеры.
Ответ 3
Простой фильтр для улучшения JSF URL, основанный на шагах, описанных в ответе BalusC. Фильтр перенаправляет все запросы, начинающиеся с пути /ui (предположим, у вас там хранятся все ваши файлы xhtml), по тому же пути, но с добавлением суффикса xhtml.
publicclassUrlPrettyfierFilterimplementsFilter {
privatestaticfinalStringJSF_VIEW_ROOT_PATH="/ui";
privatestaticfinalStringJSF_VIEW_SUFFIX=".xhtml";
@Override publicvoiddestroy() {
}
@Override publicvoiddoFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequesthttpServletRequest= ((HttpServletRequest) request); StringrequestURI= httpServletRequest.getRequestURI(); //Only process the paths starting with /ui, so as other requests get unprocessed. //You can register the filter itself for /ui/* only, too if (requestURI.startsWith(JSF_VIEW_ROOT_PATH) && !requestURI.contains(JSF_VIEW_SUFFIX)) { request.getRequestDispatcher(requestURI.concat(JSF_VIEW_SUFFIX)) .forward(request,response); } else { chain.doFilter(httpServletRequest, response); } }