html input value에 담긴 특수 문자 치환하기

jhin·2024년 4월 17일
0

jsp의 input 태그에 value 값으로 '<', '>'와 같은 화살괄호가 포함된 경우, 이 데이터를 자바로 보내게 되면 특수 문자 표현으로 치환된다.

예를 들면, 나는<짱이야>와 같은 input value가
나는&lt;짱이야&gt; 이런 식으로 자바에 표현된다.


방법1

'어떤 해결 방법이 있지?' 하고 찾아보니 아파치에서 제공하는 StringEscapeUtils 클래스를 사용하면 된다고 한다.
org.apache.commons.lang.StringEscapeUtils를 import 해야 한다.

maven project의 경우 다음 의존성을 추가한다.

<dependency>
  <groupId>commons-lang</groupId>
  <artifactId>commons-lang</artifactId>
  <version>2.3</version>
</dependency>

gradle project의 경우 다음 의존성을 추가한다.

dependencies {
    implementation 'commons-lang:commons-lang:2.6' // 원하는 버전
}

그리고 아래 코드처럼 치환하면 된다.

String unescapedInput = StringEscapeUtils.unescapeHtml(obj.getWord());
obj.setWord(unescapedInput);

java html 태그 변환 치환
java 특수문자 치환 시 유용한 클래스


방법2

replace() 메서드를 이용하는 방법이다.
아주 클래식한 방법이다.

String word = obj.getWord();
word = word.replace("&lt;", "<");
word = word.replace("&gt;", ">");
obj.setWord(word);

0개의 댓글