Substitua caracteres por entidades HTML em java

Eu quero substituir certos caracteres com suas respectivas entidades HTML em uma resposta HTML dentro de um filtro. Personagens incluem<, >, &. Não posso usarreplaceAll()&nbsp;como ele irá substituir todos os caracteres, mesmo aqueles que fazem parte de tags HTML.

Qual é a melhor abordagem para isso?