2009-09-07 13 views
16

Mam problemy budowania bezwzględny adres URL ze względnym adresem URL bez uciekania się do hackery String ...Budowanie bezwzględny URL z względnego adresu URL w Javie

Biorąc

http://localhost:8080/myWebApp/someServlet 

Wewnątrz metody:

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

Co najbardziej "poprawny" sposób budowy:

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

(Uwaga, musi być bezwzględna, nie względna)

Obecnie robię to przez budowanie napisu, ale MUSI być lepszy sposób.

szukałem w różnych kombinacjach nowego URI/URL, i skończyć z

http://localhost:8080/someImage.jpg 

Pomoc mile widziana

+0

Jeśli nie wiesz jak to działa, to skąd wiesz, że to „bardzo prosty 101 rzeczy”? – Bombe

+0

To jest więcej szumu na mojej własnej zdolności niż cokolwiek innego. Jednak zredagowałem, aby usunąć ten komentarz, na wypadek gdyby był on w jakikolwiek sposób postrzegany jako obraźliwy - co nie było celem.) –

Odpowiedz

33

Korzystanie java.net.URL

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

Wygląda na to, że już zorientowali się twarde części, która jest co gospodarz twoi biegają dalej. Reszta jest łatwa,

Powinien dać ci to, czego potrzebujesz.

3

Jak o:

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

Co zrobić, jeśli chcę utworzyć bezwzględny adres URL w kontekście, w którym brak jest żądania, na przykład w wątku programu planującego do generowania wiadomości e-mail, w której umieszczany jest bezwzględny link URL –