Java 如何通过URL基截获请求?

Java 如何通过URL基截获请求?,java,servlets,request,servlet-filters,Java,Servlets,Request,Servlet Filters,我有一个问题需要解决,需要一些帮助。假设我有一个来自我的域的URL,比如:例如。我想在点击链接时截取用户请求,理论上是指向我的域,需要它截取并重定向到根据我的标准确定的新URL。 我正在使用简单的servlet。在我的调查过程中,我发现过滤器可能对我有所帮助。 有人知道如何为这项提案做点什么吗?也许可以看看?只要实施就行了 如果您将此映射到/*的URL模式,它将在每个请求上执行 您可以通过过滤器的doFilter()方法获取请求URI,如下所示: HttpServletRequest http

我有一个问题需要解决,需要一些帮助。假设我有一个来自我的域的URL,比如:例如。我想在点击链接时截取用户请求,理论上是指向我的域,需要它截取并重定向到根据我的标准确定的新URL。 我正在使用简单的servlet。在我的调查过程中,我发现过滤器可能对我有所帮助。 有人知道如何为这项提案做点什么吗?

也许可以看看?

只要实施就行了

如果您将此映射到
/*
的URL模式,它将在每个请求上执行


您可以通过过滤器的
doFilter()
方法获取请求URI,如下所示:

HttpServletRequest httpRequest = (HttpServletRequest) request;
String uri = httpRequest.getRequestURI();
// ...

您可以使用类提供的任何方法来比较/操作它

boolean matches = uri.startsWith("/something");

您可以使用Java语言提供的
if/else
关键字来控制代码流

if (matches) {
    // It matches.
} else {
    // It doesn't match.
}

您可以使用发送重定向

HttpServletResponse httpResponse = (HttpServletResponse) response;
httpResponse.sendRedirect(newURL);

您可以使用
FilterChain#doFilter()
让请求继续

chain.doFilter(request, response);

算算。当然,您也可以使用第三方,比如Tuckey的URL重写过滤器,它是Apache HTTPD的
mod_rewrite
的Java变体

另见:
HttpServletResponse httpResponse = (HttpServletResponse) response;
httpResponse.sendRedirect(newURL);
chain.doFilter(request, response);