gpt4 book ai didi

url - 如何使用过滤器或servlet更改requestURL

转载 作者:行者123 更新时间:2023-12-04 16:54:13 25 4
gpt4 key购买 nike

如何使用filter或servlet更改requestURL。

例如,如果请求为“http://servername1:8080”
我想将其更改为“http://servername2:7001”

最佳答案

将以下servlet filter添加到您的应用程序:

public class RequestUrlRewritingFilter implements Filter {

//Empty init()/destroy() here

@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
final HttpServletRequestWrapper wrapped = new HttpServletRequestWrapper(request) {
@Override
public StringBuffer getRequestURL() {
final StringBuffer originalUrl = ((HttpServletRequest) getRequest()).getRequestURL();
return new StringBuffer("http://servername2:7001");
}
};
chain.doFilter(wrapped, response);
}
}

您要拦截的所有请求都必须经过它。如您所见,它采用原始的 request方法,并通过返回不同的值来覆盖 getRequestURL()方法。如果您想将新的URL建立在旧请求的基础上,您仍然可以访问原始请求。

最后,您必须继续处理请求 chain.doFilter(),但要提供包装的请求,而不是原始请求。

关于url - 如何使用过滤器或servlet更改requestURL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12652957/

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