Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

JSP에서 <% 리터럴을 이스케이프하는 방법 – 백슬래시로 간단히 해결하기

JSP에서 <% 리터럴을 이스케이프하는 방법

JSP 페이지를 작성하다 보면 <% 문자를 화면에 그대로 출력해야 하는 경우가 있습니다. 하지만 JSP에서는 <%가 스크립틀릿(scriptlet)의 시작 기호로 해석되기 때문에, 이스케이프 처리 없이 그대로 작성하면 파싱 오류가 발생합니다.

이 문제는 아주 간단하게 해결할 수 있습니다. 바로 백슬래시(\) 문자를 사용하는 것입니다. <%<\% 형태로 바꿔주면, JSP 컨테이너는 이를 스크립틀릿이 아닌 일반 텍스트로 인식하여 브라우저에 그대로 출력합니다.

적용 예제

아래 예제는 이스케이프 처리된 구문과 실제 스크립틀릿 구문을 함께 보여줍니다.

<html>
<head>
<title>A Comment Test</title>
</head>
<body>
<h2>Syntax: <\%= (new java.util.Date()).toLocaleString() %\></h2>
<p>Today's date: <%= (new java.util.Date()).toLocaleString()%></p>
</body>
</html>

위 코드에서 <h2> 태그 안의 <\%%\>는 백슬래시 덕분에 실행되지 않고 문자 그대로 화면에 표시됩니다. 반면 <p> 태그 안의 <%= ... %>는 실제 스크립틀릿으로 동작하여 현재 날짜와 시간을 출력합니다.

정리

  • JSP에서 <%를 문자 그대로 출력하려면 <\%처럼 백슬래시로 이스케이프합니다.
  • 닫는 기호인 %>도 마찬가지로 %\>로 이스케이프할 수 있습니다.
  • 이 방법은 JSP 문법 설명이나 코드 예제를 문서화할 때 특히 유용합니다.