gpt4 book ai didi

java - 如何通过 URL base 拦截请求?

转载 作者:搜寻专家 更新时间:2023-10-31 19:35:46 24 4
gpt4 key购买 nike

我有一个嗡嗡声需要解决,需要一些帮助。假设我有一个来 self 的域的 URL,类似于:http://mydomain.com/any_page.xhtml例如。我想在单击链接时拦截用户请求,该链接理论上指向我的域,需要它拦截并将其重定向到根据我的标准确定的新 URL。 我正在使用简单的 Servlet。在我的调查过程中,我发现 Filter 可能对我有帮助。 有人知道如何为此提案创建一些东西吗?

最佳答案

只需执行javax.servlet.Filter .

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

<url-pattern>/*</url-pattern>

或者当您已经使用 Servlet 3.0 时

@WebFilter(urlPatterns = { "/*" })

可以通过HttpServletRequest#getRequestURI()获取请求URI在过滤器的 doFilter() 方法中如下:

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

您可以使用 java.lang.String 提供的任何方法类来比较/操纵它。

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

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

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

您可以使用 HttpServletResponse#sendRedirect()发送重定向。

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

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

chain.doFilter(request, response);

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

另见:

关于java - 如何通过 URL base 拦截请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5312226/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com