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

프로그래밍/스프링프레임워크 2018. 7. 24. 00:47
반응형

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이 맵핑되는 스프링프레임웍을 사용하는 프로젝트에서도 잘 동작하였습니다.

반응형

댓글을 달아 주세요