>  기사  >  웹 프론트엔드  >  JSP에서 HTML을 출력할 때 생성되는 수많은 공백과 줄 바꿈을 제거하는 방법

JSP에서 HTML을 출력할 때 생성되는 수많은 공백과 줄 바꿈을 제거하는 방법

高洛峰
高洛峰원래의
2016-12-24 15:49:301580검색

이 문제는 오랫동안 저를 괴롭혔습니다. jsp에서 EL 태그와 기타 태그를 사용할 때 많은 수의 공백과 줄 바꿈이 생성되기 때문입니다. 예:

------- start ---------- 
<c:choose> 
<c:when test="${fn:length(mainPageList)>1&}"> 
Something 
</c:when> 
<c:otherwise> 
Others 
</c:otherwise> 
</c:choose> 
------- end -----------

이 단락. Tomcat의 코드 출력은 다음과 같으며 몇 줄과 줄바꿈이 더 추가되었습니다.

------- start ---------- 
Something 
------- end -----------

물론 일반적으로 특별한 주의를 기울이지 않으면 아무런 문제도 발견할 수 없습니다. 결국 공백과 줄바꿈이 아무리 많이 출력되더라도 브라우저가 생성하는 최종 효과는 동일할 것입니다. . 이것이 바로 대부분의 개발자가 이 문제를 무시하는 이유입니다. 그러나 실제로 이러한 공백과 줄 바꿈은 많은 공간을 차지합니다. 약 30%는 공백/줄 바꿈입니다. 어떤 사람들은 웹 서버가 zip으로 HTML을 출력하면 공백으로 인한 대역폭 문제가 해결될 수 있다고 말합니다. 예, zip을 사용하여 HTML을 출력하면 공백/줄 바꿈을 위한 공간이 절약되지만 이로 인해 작업량이 증가합니다. zip의 용량은 엄청나며 가장 큰 문제는 브라우저가 페이지를 생성할 때 여전히 모든 공백과 줄 바꿈을 복원한다는 것입니다. 이는 프런트엔드 개발자에게는 나쁜 소식입니다. 공백이 많고 HTML 소스 코드가 길기 때문에 문제가 있는 스타일의 위치를 ​​찾는 것이 쉽지 않습니다.
Tomcat을 예로 들어 아래 솔루션에 대해 이야기해 보겠습니다.
옵션 1, 웹 서버의 TrimSpaces 기능을 사용합니다.
Tomcat5 이상 버전을 사용하는 것이 가장 간단한 방법입니다.

<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>trimSpaces </param-name> 
<param-value>true </param-value> 
</init-param> 
<init-param> 
<param-name>xpoweredBy</param-name> 
<param-value>false</param-value> 
</init-param> 
<load-on-startup>3</load-on-startup> 
</servlet>

이 솔루션에는 모든 jsp EL 태그 사이의 줄바꿈과 공백이 제거되므로 경우에 따라 불편을 초래할 수도 있다는 단점이 있습니다.
예: 귀하의 이름은 ${firstName} ${lastName}입니다. ==출력은 다음과 같습니다.==> 귀하의 이름은 firstNamelastName입니다.
두 ${} 변수 사이의 공백도 사라집니다. 이 문제를 해결하려면 공백이 하나만 있는 변수를 도입하는 것이 상당히 번거롭습니다.
d6cdc9b286cb7f4e3c771e8bc8851735 bd12eb28a7cb26bad82924c149f4a7a2
귀하의 이름은 ${firstName}${one_space}${lastName}입니다.
이건 정상입니다. 일부 전역 변수에 one_space 변수를 추가할 수는 있지만 여전히 코드가 불편해 보입니다.
저는 옵션 2를 선호합니다.
이 솔루션은 Tomcat6과 같이 jsp 2.1을 지원하는 웹 서버에서만 사용할 수 있습니다.
Jsp2.1에는 매우 유용한 명령이 있습니다.
18530aaa636228391222aa75135e9486
이 명령은 jsp가 HTML을 출력할 때 추가 빈 줄을 제거할 수 있습니다. 많은 공백과 빈 줄 생성), TrimSpaces를 사용하는 데 문제가 없습니다. 이제 jsp 출력 html의 형식이 잘 지정되고 전문적으로 보입니다. 저는 항상 과거에 Velocity의 템플릿을 부러워했고 출력 html이 매우 깨끗합니다. 그리고 아름답습니다. 이제 jsp도 사용할 수 있습니다.
또한 Tomcat6에는 몇 가지 호환성 문제가 있습니다. 예를 들어 JSF 스크립트로 실행되기 때문에 jsp에서 #{}와 같은 코드를 사용할 수 없습니다.
사소한 문제이긴 하지만, 아직은 세부적인 부분에 주의를 기울여야 합니다.


JSP에서 HTML을 출력할 때 발생하는 수많은 공백과 줄 바꿈을 제거하는 방법에 대한 자세한 관련 기사는 PHP 중국어 웹사이트를 참고하세요!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.