gpt4 book ai didi

java - 如何重定向到部署在本地服务器上的应用程序中的 spring Controller 方法?

转载 作者:行者123 更新时间:2023-11-28 22:54:26 24 4
gpt4 key购买 nike

在我本地的 Tomcat 服务器上,我开发了几个项目。其中之一是我用 Spring MVC 编写的。我想将一些请求重定向到 Controller 的另一种方法。我知道可以通过使用:return "redirect:/path/to/resource"; 但是如果我在 Tomcat 上部署了应用程序,我必须使用如下前缀:return "redirect:/appname/path/to/resource";。如何让它在有前缀和没有前缀的服务器上工作?

最佳答案

听起来您遇到了麻烦,因为您的应用程序在某些环境中作为根上下文运行,而在其他环境中却没有。您可以使用 HttpServletRequestHttpServletResponse 对象上可用的方法来执行更独立于环境的重定向。一个示例 Spring Controller 方法看起来像这样:

@RequestMapping("/test")
public void test(HttpServletRequest request, HttpServletResponse response) throws IOException {
String url = request.getScheme() + "://" +
request.getServerName() + ":" +
request.getServerPort() +
request.getContextPath() + "/path/to/resource";
response.sendRedirect(url);
}

getContextPath 部分特别解决了您正在谈论的问题,如果应用程序作为根上下文运行,它只会返回 / 但会返回 /appname 如果应用程序像您的示例一样以 appname 运行。

关于java - 如何重定向到部署在本地服务器上的应用程序中的 spring Controller 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31277589/

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