2013-04-10 43 views
10

Tôi muốn tạo URL được mã hóa cho trang web của mình. Ví dụ: đối với URL này: "http://google.com/index.html"Làm cách nào để mã hóa URL URL trong JSP?

Tôi muốn cung cấp URL này cho khách hàng bằng cách mã hóa URL đó cho khách hàng.

+0

Tại sao bạn muốn thực hiện điều này trên JSP? Bạn không thể sử dụng [UrlEncoder.encode()] (http://docs.oracle.com/javase/1.5.0/docs/api/java/net/URLEncoder.html) trên servlet và chuyển dữ liệu đến JSP? –

Trả lời

27

Vì bạn đang sử dụng JSP, tôi sẽ dính vào JSTLnot use scriptlets. Bạn có thể sử dụng thẻ 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> 

này sẽ cho kết quả:

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

Làm cách nào để chuyển một giá trị tham số rỗng? Tôi đã thử '' nhưng nó kết quả trong 'DocType% 3d ='. Tôi chỉ cần 'DocType ='. –

+0

Giá trị rỗng hoạt động cho tôi. –

-8

Cố gắng trong mã JSP của bạn:

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

Mã hóa Base64! = Mã hóa URL –

3

Sử dụng UrlEncoder.encode() là câu trả lời. Nhưng vấn đề là phương pháp này không mã hóa phần trăm. Sử dụng:

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