2013-01-22 23 views
1

我想從servlet中讀取HTTP請求中設置的確切URL。這與任何URL重寫部分(;jsessionid= ...)一起。從servlet讀取整個網址

可能嗎?

+1

退房http://stackoverflow.com/questions/2222238/httpservletrequest-to-complete-url – Pace

+0

不,這不包括「jsession .. 。「部分 – somebody

+0

可能是jsessionid參數不在請求URL中。如果啓用了cookie,則jsessionid將作爲HTTP標頭呈現。在這種情況下,你可以通過request.getRequestedSessionId() –

回答

2

你可以請求URL(;?前面的部分)如下:

StringBuffer requestURL = request.getRequestURL(); 

您可以檢查是否會話ID被附於URL路徑片段如下:

if (request.isRequestedSessionIdFromURL()) { 
    requestURL.append(";jsessionid=").append(request.getSession().getId()); 
} 

如果有以下任何情況,您可以獲取並追加查詢字符串:

if (request.getQueryString() != null) { 
    requestURL.append('?').append(request.getQueryString()); 
} 

最後,獲得完整的URL如下:

String fullURL = requestURL.toString(); 
+0

爲''; jsessionid ='部分+1,但是當追加查詢字符串時錯過了')' –

+0

@Alonso:oops,fixed。 – BalusC

+0

感謝那就是我一直在尋找的 – somebody