2012-12-17 35 views
0

我想使用HttpURLConnection類調用Spring MVC的行動,只是想作爲後臺操作運行這個.....Spring MVC的控制器動作通過HttpURLConnection的

String logoutUrl = "http://www.mysite.com/logout.sho"; 
URL url = new URL(logoutUrl); 
HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
etc etc.... 

代碼運行完全正常,但行動是不執行。但是,如果我嘗試使用瀏覽器執行此操作:http://www.mysite.com/logout.sho,它會將我註銷。請讓我知道如何解決這個問題或任何其他方式來解決這個問題。

回答

0

如果使用Java程序打開URL連接,則不會使用與瀏覽器使用的會話ID相同的會話ID,顯然,從Java註銷並不會將您從瀏覽器註銷。

想象一下,如果這樣做,我只需要編寫一個從gmail.com註銷的程序,並且每個gmail用戶都將被註銷。

0

這是因爲Spring MVC將您的HttpURLConnection識別爲完全獨立的獨立會話(用戶)。嘗試在不同的瀏覽器或不同的計算機上打開此URL - 顯然它不會將您註銷。

您無法識別的原因是您沒有提供任何會話跟蹤信息,如JSESSIONID cookie或重寫的URL。你可以從Java傳遞它們,但這有點破解。它可以在瀏覽器中運行,因爲對mysite.com的每個請求都透明地包含JSESSIONID cookie,並且Spring MVC將其映射到活動會話。

這就是說,你想實現什麼?

+0

我有兩個網絡應用程序,我想同時註銷這兩個應用程序。我做了註銷Web應用程序B到A,第一次註銷到B然後重定向到A並註銷。這很好,因爲我們重定向頁面。但是對於註銷Web應用程序A到B,情景是不同的。我們不需要重定向。這是一個休息調用註銷應用程序A,然後我必須創建一些背景註銷程序。這就是爲什麼我嘗試通過URL調用。 – user1417746