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