gpt4 book ai didi

java - 以编程方式更改 ServletRequest 服务器名称

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:47:56 26 4
gpt4 key购买 nike

我需要在我的 Grails Controller 中更改 ServletRequest 对象的服务器名称。由于 serverName 是只读属性,我无法弄清楚如何执行此操作。

最佳答案

最正确的做法可能是设置一个聪明的过滤器或重定向,在您的 servlet 参与之前“修复”您的请求 URL。我不知道该怎么做;你应该问serverfault.com如果你想这样做。

在 java 中,您可以通过创建自己的 HttpServletRequestWrapper 子类来伪造它,它提供 setServerName() 并在委托(delegate)时覆盖 getServerName()父类(super class)的所有其他方法。然后,您可以提供一个过滤器,该过滤器创建您的请求实例并将该实例发送到链中。

public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)
throws IOException, ServletException {
YourHttpServletRequest yourRequest =
new YourHttpServletRequest(request, newServerName);
chain.doFilter(yourRequest, response);
}

关于java - 以编程方式更改 ServletRequest 服务器名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23772932/

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