2013-04-10 13 views
10

Chcę utworzyć zakodowaną URL dla mojej witryny. Załóżmy na przykład, dla tego adresu URL: "http://google.com/index.html"Jak URL zakodować URL w JSP?

Chcę podać ten adres URL klientowi poprzez kodowanie go URL.

+0

Dlaczego chcesz to zrobić na stronie JSP? Nie możesz po prostu użyć [UrlEncoder.encode()] (http://docs.oracle.com/javase/1.5.0/docs/api/java/net/URLEncoder.html) w serwlecie i przekazać dane do JSP? –

Odpowiedz

27

Ponieważ używasz JSP, chciałbym trzymać się JSTL i not use scriptlets. Można użyć tagu JSTL <c:url /> in combination with <c:param />:

<c:url value="/yourClient" var="url"> 
    <c:param name="yourParamName" value="http://google.com/index.html" /> 
</c:url> 

<a href="${url}">Link to your client</a> 

To spowoduje:

<a href="/yourClient?yourParamName=http%3a%2f%2fgoogle.com%2findex.html">Link to your client</a> 
+0

Jak mogę przekazać pustą wartość parametru? Próbowałem '', ale powoduje to 'DocType% 3d ='. Potrzebuję tylko 'DocType ='. –

+0

Pusta wartość działa dla mnie. –

-8

Spróbuj w kodzie JSP:

Base64.encodeBase64("http://google.com/index.html") 
+13

Kodowanie Base64! = Kodowanie URL –

3

Korzystanie UrlEncoder.encode() jest odpowiedzią. Ale chodzi o to, że ta metoda nie koduje procentowo. Użyj:

java.net.UrlEncoder.encode(stringOfURL,"UTF-8").replace("+","%20") 
Powiązane problemy