我正在尝试在Spring webapp中的JSP中获取正确的当前URL.我正在尝试在JSP文件中使用以下片段:
${pageContext.request.requestURL}
Run Code Online (Sandbox Code Playgroud)
问题是返回的URL包含UrlBasedViewResolver定义的前缀和后缀.例如,正确的URL是:
但返回的是:
在我的春季网络服务中,我正在尝试获取我的应用程序的URL,如" http:// localhost:8080/mycontext ".我的服务不包含任何HttpServletRequest var,所以我可以得到它吗?
这个问题类似于在 Spring MVC 中获取当前 URL 的最佳方法是什么?但是对于 Webflux(它也可能与如何在 spring-webflux 中获取当前请求的上下文有关,但这个问题更具体,所以我希望有解决方案)。
我想要做的是在 Webflux 控制器中获取当前 URL。例如:
@GetMapping("/greeting")
public Mono<Greeting> greeting() {
String linkToCurrentResource = .. // How do I get this?
Greeting greeting = new Greeting("hello", linkToCurrentResource);
return Mono.just(greeting);
}
Run Code Online (Sandbox Code Playgroud)
如果在负载均衡器后面运行,最好linkToCurrentResource应该了解X-Forwarded-???标头。所以在这种情况下,我想linkToCurrentResource成为类似https://external-uri.com/api/greeting. 如果重要的话,我正在使用 Netty 服务器实现。