Maybe something like this will help:
static String validHTML( String original )
{
int ol = original.length();
StringBuffer new = new StringBuffert( ol );
char next;
for ( int i = 0 ; i < ol ; i++ )
{
next = original.charAt(i);
if ( next == ''' )
{
new.append( "&$#39");
}
else if
" other difficult cases etc."
}
More or less taken from: Professional
JSP ...