惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Vercel News
Vercel News
Recorded Future
Recorded Future
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
The GitHub Blog
The GitHub Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Google DeepMind News
Google DeepMind News
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Microsoft Azure Blog
Microsoft Azure Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
M
MIT News - Artificial intelligence
云风的 BLOG
云风的 BLOG
Y
Y Combinator Blog
N
News | PayPal Newsroom
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Help Net Security
Help Net Security
博客园 - Franky
SecWiki News
SecWiki News
Recent Announcements
Recent Announcements
T
Troy Hunt's Blog
The Register - Security
The Register - Security
The Last Watchdog
The Last Watchdog
Webroot Blog
Webroot Blog
S
Security Affairs
博客园 - 司徒正美
S
Schneier on Security
I
InfoQ
博客园_首页
www.infosecurity-magazine.com
www.infosecurity-magazine.com
T
Threat Research - Cisco Blogs
Forbes - Security
Forbes - Security
腾讯CDC
N
Netflix TechBlog - Medium
N
News and Events Feed by Topic
Cloudbric
Cloudbric
T
The Exploit Database - CXSecurity.com
P
Proofpoint News Feed
A
About on SuperTechFans
Engineering at Meta
Engineering at Meta
Recent Commits to openclaw:main
Recent Commits to openclaw:main
B
Blog
V
Vulnerabilities – Threatpost
C
Check Point Blog
Google DeepMind News
Google DeepMind News
Google Online Security Blog
Google Online Security Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
Hacker News - Newest:
Hacker News - Newest: "LLM"
C
Cisco Blogs
Schneier on Security
Schneier on Security
O
OpenAI News
K
Kaspersky official blog

博客园 - 万一

关于内存数据与 JSON 高亮 TRichEdit 当前行 使用 IntraWeb (45) - 活用 IntraWeb 使用 IntraWeb (44) - 测试读取 SqLite (三) 使用 IntraWeb (43) - 测试读取 SqLite (二) 使用 IntraWeb (42) - 测试读取 SqLite (一) 使用 IntraWeb (41) - 数据控件速查 使用 IntraWeb (40) - 自定义 Session 数据 使用 IntraWeb (39) - THttpRequest、THttpReply 使用 IntraWeb (38) - TIWAppForm、TIWForm、TIWBaseHTMLForm、TIWBaseForm 使用 IntraWeb (36) - TIWServerControllerBase 使用 IntraWeb (35) - TIWJQueryWidget 使用 IntraWeb (34) - TIWAJAXNotifier 使用 IntraWeb (33) - Cookie 使用 IntraWeb (32) - Url 映射与 THandlers 使用 IntraWeb (31) - IntraWeb 的 Xml 操作使用的是 NativeXml 使用 IntraWeb (30) - TIWAppInfo、TIWMimeTypes、TIWAppCache 使用 IntraWeb (29) - 基本控件之 TIWAutherList、TIWAutherINI、TIWAutherEvent 使用 IntraWeb (28) - 基本控件之 TIWTemplateProcessorHTML、TIWLayoutMgrHTML、TIWLayoutMgrForm
使用 IntraWeb (37) - TIWApplication
万一 · 2014-06-26 · via 博客园 - 万一

每个访问用户都会拥有一个它的实例(WebApplication), 它除了承载 Session(会话)数据, 还要记忆着用户的浏览器信息、登陆信息等等; 另外, 窗体的建立也都依附(Owner)于它, 并随之自动释放.


TIWApplication 所在单元及继承链:
IWApplication.TIWApplication < TIWVCLComponent < TComponent < TPersistent < TObject

主要成员:


property AppUrlBase: string		//测试结果: /, 在 isapi 等其它模式下会有不同, 在 gSC.AllowMultipleSessionsPerUser = True 时会有不同
property InternalUrlBase: string	//测试结果: /$/
property SessionInternalUrlBase: string	//测试结果: /$/
property SessionUrlBase: string		//测试结果: /
property UserCacheUrlBase: string	//用户缓存基址, 测试结果: /$/MyApp/0pnlkje0r4hi7j19tzrq30eq0k2i/
property ApplicationURL: string		//应用地址, 测试结果: http://127.0.0.1:3126 
property CallBackProcessing: Boolean	//是否正在执行回调; only read
property CallBackResponse: TIWCallBackResponse //回调响应对象
property ApplicationPath: string  //程序路径, 测试结果: C:\Users\wy\Documents\RAD Studio\Projects\MyTest6\Win32\Debug
property ActiveForm: TComponent	  //当前窗体
property ActiveFormCount: Integer //没被销毁的窗体数
property AppID: string		  //
property AuthPassword: string	  //用户密码
property AuthUser: string	  //用户名
property Browser: TBrowser	  //浏览器
property Data: TObject		  //Session 数据
property DesignMode: Boolean	  //是否是在设计时
property ExecAction: string	  //目标地址, 默认同 FormAction
property FormAction: string	  //对应 Html Form 的 action 属性
property FormCount: Integer	  //窗体总数
property FormWidth: Integer	  //浏览器页面宽度
property FormHeight: Integer	  //浏览器页面高度
property FileList: THttpFileList  //上传文件列表
property IP: string		  //用户 IP
property IsCallBack: Boolean	  //真正处理回调
property LastAccess: TDateTime	  //最后一次会话请求的时间
property MasterTemplate: string	  //主模板地址
property ActiveMasterTemplate: string //正在使用的主模板
property SecureMode: Boolean	  //是否使用安全模式(SSL)
property ReferringURL: string	  //当前实际地址, 测试结果: http://127.0.0.1:3126/$/start
property Response: THttpReply	  //Response(相应) 对象
property Request: THttpRequest	  //Request(请求) 对象
property RunParams: TStrings	  //运行参数
property Terminated: Boolean	  //会话是否终止
property SessionTimeOut: Integer  //超时时间(分钟)
property SessionTimeStamp: TDateTime //会话开始时间
property TrackID: Cardinal	     //提交序列值(用户提交的次数)
property TaggedSessionName: string   //同 AppID?
property UserCacheDir: string	     //用户缓存路径
property MappedURL: string	     //用于获取 ExecAction
property Permissions: TIWPermissions //XII 新增的权限控制, 只有一个 CanEditPages 属性, 目的是可应用内置的 Html 编辑器, 我测试未成.
property CacheFiles: TStrings	     //缓存文件列表

property OnExecuteFormError: TExecuteFormErrorEvent //

property Forms[AIndex: Integer]: TComponent
property ActiveForms[AIndex: Integer]: TComponent

function FindFile(AName: string): THttpFile //获取上传的文件
procedure GoToURL(const AURL: string; const aPrependBaseUrl: Boolean) //转到指定地址
procedure MarkAccess //更新 LastAccess 到当前时间
class function FullApplicationURL(ARequest: THttpRequest): string //返回程序的完整地址
function FindFormByClassName(const AFormClassName: string): TComponent
function FindFormByName(const AFormName: string): TComponent
procedure SendFile(const aPathname: string; const aAttachment: Boolean; aContentType: string; aFilename: string) //aPathname: 全路径; aAttachment: True 是下载, False 在浏览器显示; aContentType: 类型, 若为空则根据扩展名判断; aFilename 重命名要下载的文件
procedure SendStream(aStream: TStream; const aAttachment: Boolean; const aContentType: string; const aFilename: string)
procedure SetActiveForm(AForm: TComponent) //一般用在 initialization 区
procedure SwitchToSecure    //转换到安全链接(支持 SSL 时)
procedure SwitchToNonSecure //转换到非安全链接(支持 SSL 时)
procedure ShowMessage(AMsg: string; const AType: TIWShowMessageType; ATemplate: string) //AMsg: 信息; AType: smAlert, smNewWindow, smSameWindow, smSameWindowFrame; Atemplate: 模板(后两个 Type 时), 默认 IWShowMessage.html
procedure NewWindow(const AURL: string)	//Open Window, 通过下面重载可设置更多参数
procedure NewWindow(const AURL: string; const AName: string; const AWidth: Integer; const AHeight: Integer)
procedure NewWindow(const AURL: string; const AName: string; const AWidth: Integer; const AHeight: Integer; AOptions: TIWWindowOptions; const ATop: Integer; const ALeft: Integer)
procedure Terminate //终止应用
procedure Terminate(const AMsg: string)	//终止并提示信息
procedure TerminateAndRedirect(const aURL: string) //终止并转到
procedure RegisterCallBack(AName: string; ACallbackFunction: TIWCallbackFunction = procedure(aParams: TStringList) of object) //注册函数, 会替换同名
procedure PerformCallBack(Sender: TComponent; const AName: string) //执行 RegisterCallBack 注册的函数
function GetInternalFileURL(const AFilename: string): string //获取内部文件链接, 如: WebApplication.GetInternalFileURL('js/IWBase.js')
function GetExternalFileURL(const AFilename: string): string //获取外部文件(wwwroot 或自定义的文件夹)链接
procedure Lock	 //锁; 以防止并发访问
procedure Unlock //解锁
function TryLock: Boolean //尝试锁(会让其他线程等待); 成功返回 True

示例 1:



//待续...

示例 2:



//待续...