22#if __DCL_HAVE_THIS_FILE__
35 virtual String getMessage()
const;
40ScriptException::ScriptException(
Exception* pCause)
45String ScriptException::getMessage()
const
47 return L
"Invalid Script Contents";
73 L
"DCL World-Wide-Web Components - Database based Html Page Assistant"
78FastPageServlet::FastPageServlet()
88 #define INI_FILENAME L"HSAFastPage_w.ini"
90 #define INI_FILENAME L"HSAFastPage.ini"
98 while(in.readLine(strLine)) {
99 strLine = strLine.trim();
100 if (strLine.isEmpty())
103 if (strLine[0] == L
';' || strLine[0] == L
'#')
105 else if (strLine[0] ==
'[') {
106 strLine = strLine.trim(L
"[] ");
120 size_t nPos = strLine.indexOf(L
'=');
121 if (nPos == (
size_t) -1) {
126 String strName = strLine.left(nPos).trim();
127 String strValue = strLine.right(strLine.length() - nPos - 1).trim();
128 if (strName.isEmpty() || strValue.isEmpty()) {
133 if (!strName.compareNoCase(L
"POST_MAX_LENGTH")) {
135 wchar_t chMul = strValue[strValue.length() - 1];
136 if (!iswdigit((wint_t)chMul)) {
137 if (chMul == L
'k' || chMul == L
'K')
139 else if (chMul == L
'm' || chMul == L
'M')
141 String strMul = chMul;
142 strValue = strValue.trimRight(strMul);
152 else if (!strName.compareNoCase(L
"SERVER_NAMES")) {
154 if (strValue.split(L
' ', list)) {
155 StringArray::Iterator itList = list.begin();
156 for( ; itList != list.end(); ++itList)
160 else if (!strName.compareNoCase(L
"DATABASE_DRIVER")) {
163 else if (!strName.compareNoCase(L
"DATABASE_CONNECT")) {
166 else if (!strName.compareNoCase(L
"ERROR_PAGE")) {
170 else if (!strName.compareNoCase(L
"PERM_DENIED_PAGE")) {
174 else if (!strName.compareNoCase(L
"SKIN_DIR")) {
177 else if (!strName.compareNoCase(L
"ATTACHMENT_DIR")) {
180 else if (!strName.compareNoCase(L
"THUMBNAIL_DIR")) {
197 SiteContext* pSite = (SiteContext*)(*itList);
215 ctx.getCgiVariable(
"SERVER_NAME"));
216 __DCL_TRACE1(L
"SERVER_NAME: [%ls]\n", strServerName.data());
217 StringToPointerMap::ConstIterator itMap =
__mapSiteCtx.find(strServerName);
244 String script = ctx.scriptData();
248 script.split_r(L
"\r?\n",
true, lines);
249 for (
size_t i = 0; i < lines.size(); i++) {
250 String strLine = lines[i];
252 if (strLine.split(L
'=', list) == 2) {
253 StringArray::Iterator itList = list.begin();
255 if (!(*itList).compareNoCase(L
"PAGE")) {
259 else if (!(*itList).compareNoCase(L
"SERVICE_USER")) {
265 __DCL_TRACE2(L
"SCRIPT PAGE_ID=%d, SERVICE_USER_ID=%d\n",
266 nPageID, nServiceUserID);
274 ListedStringToStringArrayMap& mapQuery = ctx.__queryMap;
275 ListedStringToStringArrayMap::ConstIterator itMap
276 = mapQuery.find(L
"page");
277 if (itMap != mapQuery.end() && (*itMap).value.size() > 0) {
293 Session session(ctx, query, nServiceUserID);
299 L
"nPageID: %d, nPermID: %d, RoleID: %d\n",
305 if (page.
init(query)) {
309#define __PENDING_GROUP 3
346 permDenied.
init(query);
347 permDenied.
print(session);
352 page.
printError(session, L
"페이지 없음", L
"요청하신 페이지가 없습니다.");
368 if (ctx.resContentType().compareNoCase(L
"text", 4) == 0) {
369 ctx.writer() << L
"<div>Elapsed Time: "
377#ifdef __WINNT_NEW_DELETE_OVERRIDE
379__WINNT_NEW_DELETE_OVERRIDE
@ HTTP_STATUS_NOT_IMPLEMENTED
#define HTTP_SERVLET_INSTANCE(ServletClass, Description)
#define __DCL_TRACE0(psz)
#define __DCL_TRACE1(fmt, arg1)
#define __DCL_TRACE3(fmt, arg1, arg2, arg3)
#define DECLARE_CLASSINFO(class_name)
#define IMPLEMENT_CLASSINFO(class_name, base_class_name)
#define __DCL_TRACE2(fmt, arg1, arg2)
static String decode(const char *_mbs, size_t _mbslen=(size_t) -1)
static DateTime getCurrentLocalTime()
Exception(Exception *_cause=NULL)
__DCL_THROWS1(Exception *)
StringToPointerMap __mapSiteCtx
virtual void onInitialize()
PointerList __listSiteCtx
virtual void onService(HttpServletContextEx &ctx)
void invoke(Session &session) __DCL_THROWS1(Exception *)
void print(Session &session) __DCL_THROWS1(Exception *)
void printError(Session &session, const String &strTitle, const String &strMessage)
bool init(SQLQuery &q) __DCL_THROWS1(SQLException *)
virtual void onInitialize() __DCL_THROWS1(Exception *)
virtual void onCleanup() __DCL_THROWS1(Exception *)
static int parse(const wchar_t *_number, unsigned _base=10) __DCL_THROWS1(NumericConvertException *)
virtual String toString() const
void open(const String &_connstr) __DCL_THROWS1(SQLException *)
String getServerInfo() __DCL_THROWS1(SQLException *)
void rollbackTrans() __DCL_THROWS1(SQLException *)
bool inTransaction() const
void commitTrans() __DCL_THROWS1(SQLException *)
void startTrans() __DCL_THROWS1(SQLException *)
bool getMemberRole(int nServiceUserID)
static unsigned int parse(const wchar_t *_number, unsigned _base=10) __DCL_THROWS1(NumericConvertException *)
const SiteContext & operator=(const SiteContext &src)