일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 형변환
- React
- 스프링
- 자바
- 원펀맨: 최강의 남자
- array
- url 치환
- table
- SQL
- 리액트
- JS
- forEach
- html
- 이름 마스킹
- spring
- 맛집
- JavaScript
- 배열
- JSTL
- 원펀맨
- 모바일게임
- JSX
- Oracle
- 오라클
- set
- 자바스크립트
- 개발
- Java
- jQuery
- url 변환
Archives
- Today
- Total
특별한 일상
[JAVA] HTML, MVC, Servlet 환경에서 특수문자 치환( < > & ...) 본문
IT•개발 끄적/Java
[JAVA] HTML, MVC, Servlet 환경에서 특수문자 치환( < > & ...)
소다맛사탕 2021. 6. 9. 21:45반응형
안녕하세요. 소다맛사탕 입니다.
오늘은 Servlet 이나 HTML, 그리고 GET, POST 형식을 이용해 URL 주소값을 전달할 때..
대부분 자바 서버단으로 이동하는 값은 String 형태로 보내지게 되는데,
여기서 기호가 자동으로 특수문자 처리가 되어버리는 것을 확인할 수 있습니다.
예를 들면...
jsp에서 url 주소를 html 태그 값에 담아서 보내게 될 경우..
https://develop-sense.tistory.com?main=123&type=234&query=<asdf>
자바 환경에서는
https://develop-sense.tistory.com?main=123&type=234&query=<asdf>
특수문자로 치환된 형태로 보내질 때가 있다는 겁니다.
(HTML, JSP 화면에서 meta가 UTF-8 또는 EUC-KR 인데, 자바 서버단은 반대인 경우도 해당.
말 그대로 인코딩이 안되어 있는 화면에서 주로 발생)
이럴 경우 replace나 replaceAll을 사용하여도 좋지만,
저는 아파치에서 제공하는 StringEscapeUtils 클래스를 사용합니다.
※ 기본적으로 WAS가 Apache tomcat으로 설정을 하셔야 사용할 수 있습니다.
import org.apache.commons.lang3.StringEscapeUtils;
해당 클래스를 사용할 수 있게 import 시켜야 합니다.
사용법은 간단합니다.
// url이 들어온다.
// HTML 4.0 지원. 실제 유니코드 문자가 포함된 문자열로..
String urlReplace = StringEscapeUtils.unescapeHtml4(url);
// HTML 3.0. 실제 유니코드 문자가 포함된 문자열로..
String urlReplace2 = StringEscapeUtils.unescapeHtml3(url);
자바 서버단으로 전달된 String 값을 위와 같이 사용하면 실제 유니코드 문자가 포함된 상태로 값이 나옵니다.
package com.blogtest;
import org.apache.commons.lang3.StringEscapeUtils;
public class UrlReplaceStringEscapeUtils {
public static void main(String[] args) {
String url = "https://&< &>&";
String urlReplace = StringEscapeUtils.unescapeHtml4(url);
String urlReplace2 = StringEscapeUtils.unescapeHtml3(url);
System.out.println(urlReplace);
System.out.println(urlReplace2);
String url2 = "https://&&&<>";
String urlReplace3 = StringEscapeUtils.escapeHtml4(url2);
String urlReplace4 = StringEscapeUtils.escapeHtml3(url2);
System.out.println(urlReplace3);
System.out.println(urlReplace4);
}
}
---- 결과 ----
https://&< &>&
https://&< &>&
https://&& &<>
https://&& &<>
'IT•개발 끄적 > Java' 카테고리의 다른 글
[JAVA] 정규식을 이용한 마스킹(정규표현식 마스킹 처리) (0) | 2021.06.30 |
---|---|
[JAVA] static, final, static final(상수) 사용법 및 예시 (0) | 2021.06.15 |
[Java] 컬렉션 프레임워크 List: ArrayList, LinkedList 차이 (0) | 2021.05.15 |
[Java] 문자열(String) 대소문자 변환 및 비교(toUpperCase, toLowerCase) (0) | 2021.05.04 |
[java] 최대공약수 최소공배수 구하기 (0) | 2021.04.25 |
Comments