2011-01-31 61 views
0

我想在java類中獲取絕對URL,但即使將它轉換爲Object類型後也會得到錯誤。在java中的絕對URL

任何建議

String file = ((Object) request).getRequestURI(); 
    if (((Object) request).getQueryString() != null) { 
     file += '?' + ((Object) request).getQueryString(); 
    } 
    URL reconstructedURL = new URL(request.getScheme(), 
            request.getServerName(), 
            request.getServerPort(), 
            file); 
    System.out.println(URL.toString()); 
+0

什麼是'request`的實際類型?默認情況下,請求已經是`Object`(不需要強制轉換),並且它肯定不包含`getRequestURI`方法。我認爲你得到了一個沒有找到錯誤的方法。請求應該是一個HttpServletRequest? http://download.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html – hisdrewness 2011-01-31 06:08:49

回答

2

強制轉換爲對象從不nessecary,因爲一切都是對象。我建議發佈你的錯誤的堆棧跟蹤。

((Object) request).getRequestURI()不起作用,因爲Object沒有getRequestURI()函數。只需將演員離開。

4

除了@丹尼爾說的URL類還沒有靜態方法,如.toString()。您應該使用reconstructedURL代替

我沒有測試,但請儘量將

String file = (request).getRequestURI(); 
if ((request).getQueryString() != null) { 
    file += '?' + (request).getQueryString(); 
} 

URL reconstructedURL = new URL(request.getScheme(), 
           request.getServerName(), 
           request.getServerPort(), 
           file); 
System.out.println(reconstructedURL.toString());