如何重定向到 Java/Spring 控制器中的 URL [重复]

Posted

技术标签:

【中文标题】如何重定向到 Java/Spring 控制器中的 URL [重复]【英文标题】:How to Redirect to a URL In a Java/Spring Controller [duplicate] 【发布时间】:2020-10-02 03:25:13 【问题描述】:

我正在构建一个 URL 缩短器,并且正在研究“跟随方法”——例如short.li/?stub=dishpods 应该重定向到https://www.amazon.com/gp/product/B07CTQ8THP/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1

如何在我的控制器中设置此自动重定向?我能想到的最好的方法是打印到控制台,但我希望它自动跟随。

  @GetMapping("/")
    void follow(@RequestParam String stub) throws IOException, InterruptedException 
        ShortUrl longUrl = repository.findByShortUrl(stub);
        String longUrlString;
        if (longUrl != null) 
            longUrlString = longUrl.getShortUrl();
         else 
            longUrlString = "https://google.com";
        

        try 

            URL myurl = new URL(longUrlString);
            con = (HttpURLConnection) myurl.openConnection();

            con.setRequestMethod("GET");

            StringBuilder content;

            try (BufferedReader in = new BufferedReader(
                new InputStreamReader(con.getInputStream()))) 

                String line;
                content = new StringBuilder();

                while ((line = in.readLine()) != null) 

                    content.append(line);
                    content.append(System.lineSeparator());
                
            

            System.out.println(content.toString());

         finally 

            con.disconnect();
        
    

【问题讨论】:

【参考方案1】:

你可以使用弹簧RedirectView:

@GetMapping("/")
public RedirectView follow() 
    return new RedirectView("www.foo.baa");

【讨论】:

设置 contextrelative=false 正是我所需要的!谢谢 据我所知,默认情况下应该是错误的,但我只将它用于相对路径。很高兴它有帮助!

以上是关于如何重定向到 Java/Spring 控制器中的 URL [重复]的主要内容,如果未能解决你的问题,请参考以下文章

java spring boot / spring security(HttpSecurity)中的会话到期时如何自动注销

如何重定向到codeigniter中的另一个函数?

如何通过重定向将数据传递到laravel中的视图

如何将控制台内容重定向到 Java 中的 textArea?

如何在linux平台上将控制台输出重定向到qt中的GUI

将stdout和stderr重定向到一个文件,也重定向到linux中的控制台[重复]