1. JSP Page 응답 소스의 최상단에 공백이 발생하는 이유.
각 디렉티브들은 보통 JSP 페이지 소스의 최상단에서 가독성을 위해 그 뒤에 줄바꿈 문자를 삽입하여 줄바꿈을 하게된다.
그렇게 쓰여진 줄바꿈 문자는 JSP 컨테이너가 servlet으로 변환하는데도 그대로 남게되어 그대로 변환된 서블릿의 응답에 포함되게 되는 것이다.
또한, JSP 페이지 소스최상단이 아닌 곳에서 사용되는 Directive들도 출력은 고려안하고 가독성만을 위해 줄바꿈 문자를 사용한다면 똑같은 결과를 얻게 된다.
2. Page Directive의 trimDirectiveWhitespaces 속성.
Page Directive의 trimDirectiveWhitespaces 속성은 해당 JSP Page의 응답에서 공백으로만 이루어진 템플릿 택스트들을 제거한다. 이는 페이지 최상단의 디렉티브들이 만들어낸 공백 템플릿 택스트들을 제거하여 최상단의 공백을 제거하는데 효과적이다. 다만, 페이지에 존재하는 모든 공백 템플릿 텍스트가 응답에서 제거되어 원하지 않은 출력 결과가 나올 수 있기에 사용에 유의해야 함.
3. trimDirectiveWhitespaces 속성 값에 따른 응답 html 파일 비교.
3.1. trimDirectiveWhitespaces가 false인 경우.
속성값으로 false를 명시 혹은 기본값인 사용.
<%@ page trimDirectiveWhitespaces="false"%/>
-
JSP 소스파일
<%@ page language="java"%> <%@ page contentType="text/html; charset=EUC-KR"%> <%@ page pageEncoding="EUC-KR"%> <!DOCTYPE html> <html> <head> <meta charset="EUC-KR" /> <title>trimDirectiveWhitespaces가 참인 경우</title> </head> <body> <h1>trimDirectiveWhitespaces가 true입니다.</h1> </body> </html> -
응답 HTML 소스
<!DOCTYPE html> <html> <head> <meta charset="EUC-KR" /> <title>trimDirectiveWhitespaces가 참인 경우</title> </head> <body> <h1>trimDirectiveWhitespaces가 true입니다.</h1> </body> </html>
3.2. trimDirectiveWhitespaces가 true인 경우.
속성값으로 true를 명시.
<%@ page trimDirectiveWhitespaces="false"%/>
-
JSP 소스파일
<%@ page language="java"%> <%@ page contentType="text/html; charset=EUC-KR"%> <%@ page pageEncoding="EUC-KR"%> <%@ page trimDirectiveWhitespaces="true" %> <!DOCTYPE html> <html> <head> <meta charset="EUC-KR" /> <title>trimDirectiveWhitespaces가 참인 경우</title> </head> <body> <h1>trimDirectiveWhitespaces가 true입니다.</h1> </body> </html> -
응답 HTML 소스
<!DOCTYPE html> <html> <head> <meta charset="EUC-KR" /> <title>trimDirectiveWhitespaces가 참인 경우</title> </head> <body> <h1>trimDirectiveWhitespaces가 true입니다.</h1> </body> </html>
댓글
댓글 쓰기