Changeset 311 for Network/CoolWeb/WebServer/UWebApp.pas
- Timestamp:
- Jan 4, 2012, 2:27:19 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Network/CoolWeb/WebServer/UWebApp.pas
r259 r311 7 7 uses 8 8 Classes, SysUtils, CustApp, SpecializedList, UWebPage, UHTTPSessionFile, 9 UHTTPServer , UHTTPServerCGI;9 UHTTPServer; 10 10 11 11 type 12 THTTPServerType = (stCGI, stTCP); 13 12 14 TRegistredPage = class 13 15 Name: string; … … 25 27 TWebApp = class(TCustomApplication) 26 28 private 29 FOnBeforePageProduce: TOnProduceEvent; 27 30 FOnInitialize: TNotifyEvent; 31 FServerType: THTTPServerType; 28 32 procedure DoRun; override; 29 33 function DumpExceptionCallStack(E: Exception): string; 30 34 procedure HTTPServerRequest(HandlerData: THTTPHandlerData); 35 procedure SetServerType(AValue: THTTPServerType); 31 36 public 32 37 Pages: TRegistredPageList; … … 38 43 constructor Create(AOwner: TComponent); override; 39 44 destructor Destroy; override; 45 property OnBeforePageProduce: TOnProduceEvent read FOnBeforePageProduce write FOnBeforePageProduce; 40 46 property OnInitialize: TNotifyEvent read FOnInitialize write FOnInitialize; 47 property ServerType: THTTPServerType read FServerType write SetServerType; 41 48 end; 42 49 … … 49 56 50 57 implementation 58 59 uses 60 UHTTPServerCGI, UHTTPServerTCP; 51 61 52 62 resourcestring … … 125 135 //Request.QueryParts[0] := 'uzivatel'; 126 136 //Request.QueryParts[1] := 'prihlaseni'; 137 if Assigned(FOnBeforePageProduce) then 138 FOnBeforePageProduce(HandlerData); 127 139 128 140 if Request.QueryParts.Count > 0 then PageName := Request.QueryParts[0] … … 131 143 if Assigned(Page) then begin 132 144 Page.Page.OnProduce(HandlerData); 133 end else Response.Stream.WriteString(SPageNotFound); 134 end; 145 end else Response.Content.WriteString(SPageNotFound); 146 end; 147 end; 148 149 procedure TWebApp.SetServerType(AValue: THTTPServerType); 150 begin 151 if FServerType = AValue then Exit; 152 FServerType := AValue; 153 HTTPServer.Free; 154 case FServerType of 155 stCGI: HTTPServer := THTTPServerCGI.Create(nil); 156 stTCP: HTTPServer := THTTPServerTCP.Create(nil); 157 end; 158 HTTPServer.OnRequest := HTTPServerRequest; 135 159 end; 136 160 … … 152 176 hstdout := @stderr; 153 177 Writeln(hstdout^, 'An unhandled exception occurred: ' + E.Message + '<br>'); 154 WriteLn(hstdout^, StringReplace(DumpExceptionCallStack(E), LineEnding, '<br>', [rfReplaceAll]));178 WriteLn(hstdout^, DumpExceptionCallStack(E)); 155 179 end; 156 180 end;
Note:
See TracChangeset
for help on using the changeset viewer.