2012-02-07 50 views
1

我有一個鏈接與從HTTPS力的要求,以HTTP HttpServlet中

"https://" and "http://"

前的工作。

當我使用htppservlet從"https://", 請求時,我想讓響應返回一個"http://"。 因此,客戶端可以更容易地查看。

我該怎麼辦?

+0

你想通過HTTP重定向* *在同一個servlet,還是要與包含HTTP鏈接的頁面迴應?希望瀏覽器不會自動從HTTPS降級到HTTP而不會提示用戶進行確認。 – erickson 2012-02-07 05:00:23

+0

*「所以客戶可以更輕鬆地查看。」*這完全超出了我的想象。究竟是什麼問題? – BalusC 2012-02-07 14:27:39

+0

客戶端希望重定向到沒有「https」的鏈接。因此,我必須將它更改爲「http」 – user1193842 2012-04-11 06:51:45

回答

2

你可以做到這一點與這樣的代碼:

if (request.isSecure()) { // it is HTTPS 
    String reqUrl = req.getRequestURL().toString().replaceFirst("https:", "http:"); 
    String queryString = req.getQueryString(); 
    if (queryString != null) 
     reqUrl += '?' + queryString; 
    response.sendRedirect(reqUrl); 
} 
+0

您可以更簡潔地進行替換(儘管可能不太易讀?),因爲getRequestURL()返回一個StringBuffer:String reqUrl = req.getRequestURL()。replace(0 ,6,「http:」)。toString();' – 2012-04-03 18:56:17

+0

感謝您的幫助,我通過在配置文件中編輯解決了該問題「替換爲'http://'」 – user1193842 2012-04-11 06:50:43