Java: String-Darstellung nur des Hosts, des Schemas, möglicherweise des Ports aus der Servlet-Anfrage

8

Ich arbeite mit verschiedenen Servern und Konfigurationen. Was ist der beste Java-Code-Ansatz zum Abrufen des Schemas: // Host: [Port, wenn es nicht Port 80 ist].

Hier ist ein Code, den ich benutzt habe, aber ich weiß nicht, ob das der beste Ansatz ist. (Dies ist Pseudocode)

HttpServletRequest == Anfrage

%Vor%

So dass val zurückgibt:

%Vor%

oder

%Vor%

Im Grunde brauche ich alles außer der Abfragezeichenfolge und dem Kontext.

Ich habe auch überlegt, URL zu verwenden:

%Vor%     
Berlin Brown 09.07.2009, 15:24
quelle

5 Antworten

16

versuche das:

%Vor%

BEARBEITEN

Verbergen des Standard-Ports für : %Vor%     

dfa 09.07.2009, 15:34
quelle
2
%Vor%

Wie Cookie schon sagt, von java.net.URI ( docs ).

    
mcandre 09.07.2009 15:32
quelle
1
%Vor%     
John Topley 09.07.2009 15:35
quelle
0

Ich denke java.net.URI macht was du willst.

    
CookieOfFortune 09.07.2009 15:28
quelle
0

Wenn Sie die URL so beibehalten möchten, wie sie in der Anfrage angezeigt wurde (z. B. Verlassen des Ports, wenn sie nicht explizit angegeben wurde), können Sie so etwas verwenden. Die Regex stimmt mit HTTP- und HTTPS-URLs überein. Capture-Gruppe 1 enthält den Server-Root vom Schema zum optionalen Port. (Das ist die gewünschte.) Gruppe 2 enthält nur den Hostnamen.

%Vor%     
Rob H 09.07.2009 15:44
quelle

Tags und Links