自分のサイト用にエンコードされた [〜#〜] url [〜#〜] を作成したい。たとえば、次のURLの場合: " http://google.com/index.html "
このURLをURLエンコードしてクライアントに提供します。
JSPを使用しているので、 [〜#〜] jstl [〜#〜] と scriptletsを使用しない を使用します。 JSTLタグ <c:url />
と組み合わせて<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>
これは次の結果になります:
<a href="/yourClient?yourParamName=http%3a%2f%2fgoogle.com%2findex.html">Link to your client</a>
答えはUrlEncoder.encode()を使用することです。しかし、要点は、このメソッドはパーセンテージでエンコードされないということです。使用する:
Java.net.UrlEncoder.encode(stringOfURL,"UTF-8").replace("+","%20")
受け入れられた回答には、有効であるいくつかのJSPコードが欠落しています。
<c:url value="/yourClient" var="url">
<c:param name="yourParamName" value="http://google.com/index.html" />
</c:url>
<a href="<c:out value='${url}'/>">Link to your client</a>
コメントが指摘したように、別のオプションはJavaScript encodeURIComponent メソッドを使用することです。