소개

PageCompiler는 HTML 파일들을(그리고 다른 종류의 파일들) C++ 코드로 번역해주는 커맨드 라인 도구 이다. 더 정확하게는 Poco::Net::HTTPRequestHandler의 서브클래스이다. 소스 파일들은 C++ 코드로 embedd를 허락하는 특별한 지시문(directive)을 포함할 수 있다. 이 지시문의 syntax는 JSP(Java Server Pages)와 ASP(Active Server Pages)에서 사용되는 syntax에 기초한다.

다음에 소개되는 샘플은 현재 날ㅉ와 시간을 보여주는 간단한 페이지를 위한 코드를 보여준다.

<%@ page class="TimeHandler" %>
<%!
    #include "Poco/DateTime.h"
    #include "Poco/DateTimeFormatter.h"
    #include "Poco/DateTimeFormat.h"


    using Poco::DateTime;
    using Poco::DateTimeFormatter;
    using Poco::DateTimeFormat;
%>

<%
    DateTime now;
    std::string dt(DateTimeFormatter::format(now, DateTimeFormat::SORTABLE_FORMAT));
%>
<html>
<head>
<title>Time Sample</title>
</head>
<body>
<h1>Time Sample</h1>
<p><%= dt %></p>
</body>
</html>

위의 코드를 page 컴파일러로 보내는 것은 헤더 파일(TimeHandler.h)와 구현 파일(TimerHandler.cpp)의 2개의 파일을 생성할 것이다. 이 파일들은 TimeHandler라는 이름의 Poco::Net::HTTPRequestHandler의 서브클래스를 정의한다. 생성된 handleRequet 멤버 함수는 Scriptlet 태그사이에서 발견되는 C++ 코드 조각만큼 잘 클라이언트로 소스 파일에 포함된 HTML 코드를 보내는 코드를 포함한다.

C++ 서버 페이지 Syntax

다음의 특별한 태그들은 C++ 서버 페이지(CPSP, C++ Server Page) 파일에서 지원된다.

숨겨진 주석

숨겨진 주석은 CPSP 파일을 문서화하지만 클라이언트로 보내지는 않는다.

<%-- <comment> --%>

구현 선언

구현 선언은 표준 #include 지시문을 포함하는 블럭 다음에 즉시 구현 파일로 복사된다. 추가적인 헤더 파일들과 나중에 필요한 클래스들을 정의하기 위해 using 선언들을 포함시키기위해 사용한다.

<%!
    <declaration>
    ...
%>

헤더 선언

헤더 선언은 표준 #include 지시문을 포함하는 블럭 다음에 즉시 구현 파일로 복사된다. 만약 커스텀 기반 클래스가 필요하다면, 요청 핸들러를 위한 기반 클래스의 선언을 포함하는 헤더 파일을 포함하기 위해서 일반작으로 사용된다.

<%!!
    <declaration>
    ...
%>

.

.

.

results matching ""

    No results matching ""