2009-09-07 4 views
16

Ich habe Probleme mit einer absoluten URL von einer relativen URL Gebäude ohne ...eine absolute URL von einer relativen URL in Java Gebäuden

http://localhost:8080/myWebApp/someServlet 

Innerhalb der Methode String hackery greifen

Gegeben

public void handleRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
} 

Was ist die "richtige" Art und Weise des Gebäudes:

http://localhost:8080/myWebApp/someImage.jpg 

(Hinweis, muss absolut, nicht relativ sein)

Derzeit mache ich es durch den Aufbau der Zeichenfolge, aber es muss ein besserer Weg sein.

Ich habe bei verschiedenen Kombinationen von neuen URI/URL sieht, und ich am Ende mit

http://localhost:8080/someImage.jpg 

Hilfe sehr geschätzt

+0

Wenn Sie nicht wissen, wie es funktioniert, wie Sie wissen, es ist „wirklich einfach 101 Sachen“? – Bombe

+0

Es ist eher eine Verleumdung meiner eigenen Fähigkeiten als alles andere. Allerdings habe ich bearbeitet, um den Kommentar zu entfernen, falls es überhaupt als anstößig empfunden wurde - was nicht die Absicht war.) –

Antwort

33

Mit java.net.URL

URL baseUrl = new URL("http://www.google.com/someFolder/"); 
URL url = new URL(baseUrl, "../test.html"); 
1

Sieht aus wie Sie bereits den harten Teil herausgefunden, das, was Wirt Du rennst weiter. Der Rest ist einfach,

String url = host + request.getContextPath() + "/someImage.jpg"; 

Sollte Ihnen geben, was Sie brauchen.

3

Wie wäre:

String s = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath() + "/someImage.jpg"; 
+1

Was ist, wenn ich die absolute URL in einem Kontext erstellen möchte, in dem keine Anfrage verfügbar ist, zum Beispiel in einem Scheduler-Thread, um E-Mails zu generieren, in die eine absolute URL-Verknüpfung eingefügt wird –