本文整理自网络,侵删。
用 WebBroker 写的程序,可以编译为 IIS 底下工作的 ISAPI 或者 CGI。这里讨论 CGI 模式:
在 IIS 底下,如果访问一个 CGI,假设我们的 CGI 程序是:MyWebBrokerCGI.exe,则 URL 是:http://myserver.com/MyWebBroker.exe1. 在 StandAlone 模式下,不同页面的链接,直接就是 WebBroker 的 Action 的 PathInfo 属性。1.1. StandAlone 模式下,URL 可能是:http://localhost:8080/About1.2. 假设本程序的 CGI 模式的文件名为:MyWebBrokerCGI.exe,则 CGI 模式下,可能是:http://localhost/MyWebBrokerCGI.exe/about1.3. Action 的 PathInfo 的例子:/About,则访问链接 MyWebBroker.exe/About 就会被 WebBroker 调用 PathInfo 为 About 的 Action 去执行。1.4. 在 IIS CGI 模式下,为了让访问的链接不要让 MyWebBrokerCGI.exe 这样的内容在 URL 里面给用户看到,设置 IIS 【处理程序映射】-- 【添加脚本映射】,增加一个名为 Dhtml 的映射,映射到 MyWebBrokerCGI.exe,这样,当用户访问 xxx.dhtml 的时候,IIS 就会去调用 MyWebBrokerCGI.exe1.5. 经过上述对 IIS 的设置,URL 变成:http://localhost/About.dhtml,IIS 就会去调用我们的 MyWebBrokerCGI.exe1.6. 因为 PathInfo 是 /About,为了让用户访问的 About.dhtml 能够调用到正确的 Action,本程序在 Default Action 里面增加了一段代码,当用户访问的文件名包含 .dhtml 的时候,从 VirtualPages.txt 这个外部文件里面找到对应的数字,根据数字 case 到正确的 Action。1.7. 现在将 PathInfo 的 /About 改为 /About.dhtml 以后,在 IIS CGI 模式下,用户直接访问 about.dhtml,IIS 将直接调用 MyWebBrokerCGI.exe,然后 MyWebBrokerCGI.exe 的 WebBroker 框架将直接会调用到 PathInfo 为 About.dhtml 的 Action 而不会因为找不到对应的 Action 而去执行 Default 的 Action 然后再通过 VirtualPages.txt 的查表去调用对应的 Action。因此上述 1.6 描述的代码就没有用了。但是代码还是留在程序里面不删除。
-----------------上面提到的 VirtualPages.txt 的内容大概是这样的:about.dhtml=2xxx.dhtml=3
这样,Delphi 的代码里面,用 TStringList 加载这个文本文件,然后使用 TStringList 的 Name=Value 的方式,就能将 about.dhtml 的 value 读到,这是个字符串 2,将它转换为数字,然后 case 数字,去调用对应的方法,就达到根据用户访问的文件名 about.dhtml 来调用对应的 Action 方法的目的。
不过,把 Action 的 PathInfo 直接修改为 about.dhtml 后,WebBroker 直接调用这个 Action 了。这段代码就没有必要了。
http://blog.csdn.net/pcplayer/article/details/78018614
相关阅读 >>
Delphi中webbrowser(或者embeddedwebbrowser)控件打开部分网站报“invalid floating point operation”异常的解决方法
Delphi 10.4.1 edgebrowser 模拟操作网页方法
更多相关阅读请进入《Delphi》频道 >>