2010-10-28 12 views
43

Desidero conoscere la differenza tra i due metodi seguenti per ottenere un URL di richiesta nel servlet.Richiesta dell'URL in un servlet

Metodo 1:

String url = request.getRequestURL().toString(); 

Metodo 2:

url = request.getScheme() 
     + "://" 
     + request.getServerName() 
     + ":" 
     + request.getServerPort() 
     + request.getRequestURI(); 

Esistono possibilità che questi due metodi daranno due URL diversi?

risposta

66

Il getRequestURL() omette la porta quando è 80 mentre lo schema è http o quando è 443 mentre lo schema è https.

Quindi, utilizzare solo getRequestURL() se tutto ciò che si desidera è ottenere l'intero URL. Ciò tuttavia non include la stringa di query GET. Si consiglia di costruirlo come segue:

StringBuffer requestURL = request.getRequestURL(); 
if (request.getQueryString() != null) { 
    requestURL.append("?").append(request.getQueryString()); 
} 
String completeURL = requestURL.toString(); 
Problemi correlati