본문 바로가기
프로그래밍/스프링프레임워크

JSP에서 지시자(Directive) 또는 태그라이브러리에 의한 공백 라인을 제거하는 방법

by pentode 2018. 7. 24.

JSP 페이지에서 지시자와 태그라이브러리를 사용하면 최종 출력 HTML에 지시자 또는 태그가 사용된곳에 빈줄이 삽입되어서 페이지 소스를 보기 어렵게 하고, 페이지 용량도 늘어납니다.


JSP 2.1에서 부터는 이 공백을 제거할 수 있는 방법을 제공해 줍니다.



1. page 지시자의 속성으로 trimDirectiveWhitespaces="true" 를 삽입합니다.


<%@ page trimDirectiveWhitespaces="true" %>


page 지시자의 다른 속성들과 같이 사용할 수도 있습니다.


<%@ page contentType="text/html; charset=utf-8" trimDirectiveWhitespaces="true" %>


이 방식은 trimDirectiveWhitespaces 속성을 사용한 페이지에만 적용이 됩니다. 만약 include 되는 페이지가 있을 경우 각각의 페이지에 별도로 적용을 해야만 합니다. include되는 페이지에 적용을 하지 않는다면 그 include되는 부분만 공백이 나올 것입니다.



2. 웹 애플리케이션의 web.xml 파일에 <trim-directive-whitespaces> 설정을 추가합니다.


<jsp-config>

  <jsp-property-group>

    <url-pattern>*.jsp</url-pattern>

    <trim-directive-whitespaces>true</trim-directive-whitespaces>

  </jsp-property-group>

</jsp-config>



3. Tomcat을 사용한다면 Tomcat 설치 폴더 아래 conf/web.xml 파일에 trimSpaces 설정을 추가할 수 있습니다.


<servlet>

  <servlet-name>jsp</servlet-name>

  <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>

  <init-param>

    <param-name>fork</param-name>

    <param-value>false</param-value>

  </init-param>

  <init-param>

    <param-name>xpoweredBy</param-name>

    <param-value>false</param-value>

  </init-param>

  <init-param>

    <param-name>trimSpaces</param-name>

     <param-value>true</param-value>

  </init-param>

  <load-on-startup>3</load-on-startup>

</servlet>


위의 1번 지시자를 사용하는 방식을 적용하고 바로 반영이 잘 될것 입니다. 하지만 2번과 3번의 경우 이클립스에서 Tomcat을 실행할 때 설정을 적용한후에 제대로 반영이 되지 않는 경우가 많습니다. 이럴 경우에는 Servers 탭의 서버에 마우스 오른쪽 키를 눌러 Clean Tomcat Work Directory... 를 실행하면 반영이 될 것 입니다.




테스트는 Tomcat 8 과 Tomcat 9에서 해보았습니다. 일반적인 Servlet/Jsp 를 사용하는 경우와 *.do 로 URL이 맵핑되는 스프링프레임웍을 사용하는 프로젝트에서도 잘 동작하였습니다.

반응형