我如何运行POCO c++服务器页面

How do I run POCO C++ server pages?

本文关键字:c++ POCO 服务器 运行 何运行      更新时间:2023-10-16

我是c++服务器页面的初学者。我已经尝试过 c++服务器页面,但无法连接ODBC,它用于给出链接错误"undefined reference to SQLAllocHandle@12",我无法解决它。与microovae类似,POCO也提供c++服务器页面。所以我想试试。我试了一个来自http://pocoproject.org/docs/PageCompilerUserGuide.html#0的样品。

我所做的是,首先创建一个名为TimeHandler.html的文件,其中包含以下内容:

<%@ 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>

然后,我使用命令行页面编译器工具,即命令提示符下的CPSPCD,它生成了以下两个文件,.

1) TimeHandler.cpp

#include "TimeHandler.h"
#include "Poco/Net/HTTPServerRequest.h"
#include "Poco/Net/HTTPServerResponse.h"
#include "Poco/Net/HTMLForm.h"

#line 2 "C:\Users\Admin\Desktop\data structures\vinz\TimeHandler.html"
    #include "Poco/DateTime.h"
    #include "Poco/DateTimeFormatter.h"
    #include "Poco/DateTimeFormat.h"

    using Poco::DateTime;
    using Poco::DateTimeFormatter;
    using Poco::DateTimeFormat;

void TimeHandler::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response)
{
   response.setChunkedTransferEncoding(true);
   response.setContentType("text/html");
   Poco::Net::HTMLForm form(request, request.stream());
   std::ostream& responseStream = response.send();
   responseStream << "";
   responseStream << "n";
   responseStream << "";
   responseStream << "n";
   responseStream << "n";
   responseStream << "";
#line 13 "C:\Users\Admin\Desktop\data structures\vinz\TimeHandler.html"
    DateTime now;
    std::string dt(DateTimeFormatter::format(now, DateTimeFormat::SORTABLE_FORMAT));
   responseStream << "n";
   responseStream << "<html>n";
   responseStream << "<head>n";
   responseStream << "<title>Time Sample</title>n";
   responseStream << "</head>n";
   responseStream << "<body>n";
   responseStream << "<h1>Time Sample</h1>n";
   responseStream << "<p>";
#line 23 "C:\Users\Admin\Desktop\data structures\vinz\TimeHandler.html"
   responseStream << ( dt );
   responseStream << "</p>n";
   responseStream << "</body>n";
   responseStream << "</html>";
}

2) TimeHandler.h

#ifndef TimeHandler_INCLUDED
#define TimeHandler_INCLUDED

#include "Poco/Net/HTTPRequestHandler.h"

class TimeHandler: public Poco::Net::HTTPRequestHandler
{
public:
   void handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response);
};

#endif // TimeHandler_INCLUDED

然后我在VS 2010中创建了一个新项目,并添加了这两个文件并编译。有一些问题,但后来我更新了环境变量,它进行得很好。但还有最后一个错误,"...."未解析的符号_main....".

里面没有主…那么我怎么运行这个程序呢??如果不是这个程序,至少有人能给一个概述,关于如何在html中嵌入c++代码,编译和运行它。

您所展示的示例仅创建单独的页面(处理程序)实现。

你需要添加一个实际的HTTPServer来服务这个页面。

见:http://pocoproject.org/docs/Poco.Net.HTTPServer.html

下的源代码下载中有一个示例
 poco-1.4.2p1.zippoco-1.4.2p1NetsamplesHTTPTimeServer

你应该能够从那里得到一些工作