A cookie test application:
The projectfile "CookieTest.dpr"
*******************************************************************
program CookieTest;
{$APPTYPE CONSOLE}
uses
HTTPApp,
CGIApp,
Unit1 in 'Unit1.pas' {WebModule1: TWebModule};
{$R *.RES}
begin
Application.Initialize;
Application.CreateForm(TWebModule1, WebModule1);
Application.Run;
end.
******************************************************************
A WebModule "Unit1.pas"
******************************************************************
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, HTTPApp;
type
TWebModule1 = class(TWebModule)
PageProducer1: TPageProducer;
procedure WebModule1WebActionItem1Action(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
procedure WebModule1WebActionItem2Action(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
procedure WebModule1WebActionItem3Action(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
private
{ Private declarations }
UserName, PassWord: String;
public
{ Public declarations }
end;
var
WebModule1: TWebModule1;
implementation
{$R *.DFM}
procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
begin
Response.Content := PageProducer1.Content;
end;
procedure TWebModule1.WebModule1WebActionItem2Action(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var
UserName, PassWord: String;
ACookie: TCookie;
begin
UserName := Request.ContentFields.Values['UName'];
PassWord := Request.ContentFields.Values['PWord'];
ACookie := Response.Cookies.Add;
ACookie.Name := 'UName';
ACookie.Value := UserName;
ACookie := Response.Cookies.Add;
ACookie.Name := 'PWord';
ACookie.Value := PassWord;
Response.Content := 'User Name = ' + UserName + '<br>' + #13;
Response.Content := Response.Content + 'Password = ' + Password + '<br>' + #13;
Response.Content := Response.Content + '<a href="Check">Check Cookies</a>'
end;
procedure TWebModule1.WebModule1WebActionItem3Action(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var
path : string;
begin
UserName := Request.CookieFields.Values['UName'];
PassWord := Request.CookieFields.Values['PWord'];
path := Request.PathInfo;
response.Content := 'Information from Cookie:<br>' + #13;
Response.Content := Response.Content + 'User Name = ' + UserName + '<br>' + #13;
Response.Content := Response.Content + 'Password = ' + Password + '<br>' + #13;
Response.Content := Response.Content + 'Path = ' + Path + '<br>' + #13;
Response.Content := Response.Content + '<a href="../CookieTest.exe">Retry</a>';
end;
end.
in this webmodule we have a Pageproducer(for user input) and three
actions
TPageProducer1.HTMLDoc:
--------------------------------------------
<html>
<head>
<title>Cookie Test</title>
</head>
<body>
<form method="POST" action="cookietest.exe/Logon">
<p>
用 户:<input type="text" name="UName" size="20"><br>
口 令:<input type="PassWord" name="PWord" size="20"><br>
<input type="submit" value="发 出" name="B1">
</p>
</form>
</body>
</html>
-------------------------------------------------------------
WebActionItem1 is default action for user input,
default := true; PathInfo := '';
WebActionItem2 is for handling user input and write cookies,
default := false; PathInfo := '/Logon';
WebActionItem3 is uset to check the cookies on client end,
default := false; PathInfo := '/Check';