47 votes

Obtenir l'URL de la demande dans un servlet

Je souhaite connaître la différence entre les deux méthodes ci-dessous pour obtenir une URL de requête dans servlet.

Méthode 1:

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

Méthode 2:

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

Existe-t-il des chances que les deux méthodes ci-dessus donnent deux URL différentes?

73voto

BalusC Points 498232

getRequestURL() omet le port lorsqu'il est 80 alors que le schéma est http , ou lorsqu'il est 443 alors que le schéma est https .

Donc, utilisez simplement getRequestURL() si tout ce que vous voulez, c'est obtenir l'URL complète. Cela n'inclut toutefois pas la chaîne de requête GET. Vous voudrez peut-être le construire comme suit:

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X