2014-06-11 19 views
0

我使用Spring 4創建一個Web應用程序。它必須作爲我們公司內部資源的代理工作。 當它收到用戶請求時,它會分析它的正確性和用戶特權,如果一切正確,就會給用戶結果。Spring MVC轉發到另一個URL

那麼,有沒有可能對http://xxxxx.com:8983/solr這樣的頁面進行轉發請求? 如果是,請舉例 以便用戶寫入我的應用程序的url並看到頁面http://xxxxx.com:8983/solr

P.S.我試圖找到它在谷歌,但到處都是關於重定向的答案,但不是轉發

回答

1

嗯,我認爲有多種方式來處理這個問題。但我的直覺是,你將不得不自己編寫一些代碼。

基本上,我會使用HttpClient向您的代理網站發出請求,從httpclient連接獲取輸入流並將其流式傳輸到您的spring應用程序響應的輸出流。

你可以在控制器本身處理所有這些交互,但我認爲使用專門的ViewResolver可能會更好。

+0

謝謝回答。我也嘗試使用RestTemplate和HttpURLConnection,但它們太慢了。瀏覽器立即顯示頁面,他們請求頁面5秒鐘,然後用戶纔看到它們。正因爲如此,我對轉發感興趣。 HttpClient會夠快嗎? – Alex

+0

不知道HttpClient會有多快。這個問題有很多因素很難回答。有很多配置HttpClient的方法,最重要的是確保你使用了多線程連接管理器。然後從那裏,你只需要嘗試一下。您可以嘗試直接使用URLConnection,但我認爲HttpClient無論如何都會使用它。你也可以考慮使用不同的代理機制。也許有一些Apache HTTPD插件可以使用? Apache HTTPD對於代理工作來說非常簡單快捷。 – hooknc

+0

我不知道Apache的httpd插件,因爲我需要從數據庫讀取用戶特權的Java應用程序,然後除了代理之外還會提供REST服務和Web界面。最大的問題是關於網絡。瀏覽器中打開的鏈接速度提高了5倍。該怎麼辦? – Alex

1

你試過:

return "forward:/page/section/"; 
相關問題