スクリプトレットを使用している場合は、URLEncoder.encode(String string、String encoding)を使用して、URLで使用するために文字列を安全にエンコードできます。UnsupportedEncodingExceptionがスローされるため、必ずキャッチしてください。文字列をエンコードしてドキュメントの本文として表示するJSPの例を次に示します。
<%@ page language="java"
import="java.net.URLEncoder"
contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%
String encoded = null;
try {
encoded = URLEncoder.encode("simple test with ampersand & in textarea", "UTF-8");
} catch (Exception e) {
}
%>
<html>
<head>
<title>MyTitle</title>
</head>
<body>
<%=encoded%>
</body>
</html>
JSTL、この場合は特に<c:url>
コンテンツを自動的にエンコードするタグを使用することをお勧めします。たとえば、質問で言及したエンコードされた文字列URLを取得するには、次のようにします。
<c:url var="myEncodedURL" value="http://.../myapp.jsp">
<c:param name="ta" value="simple test with ampersand & in textarea"/>
</c:url>
次に、式を使用してアクセスできます${myEncodedURL}
。現在JSTLを使用していない場合は、学習曲線が必要です。taglibを設定し、インポートしてから使用する必要があります。このJSTLタグをdeveloperworksで使用する方法の詳細を見ることができます。