简介
本书由经验丰富的专家编写,全书针对具体任务、基于实际解决方案,详细讲述了完成IS-
API编程的各个方面,内容包括:如何从数据库中提取多媒体文件,如何开发一个消息库,怎样
通过过滤器增强日志,用Delphi编写与调试ISAPI程序。另外,本书通过一些生动的实例来证明
方案的有效性,针对完成特定的任务提供了可编译运行的源代码,并详细介绍了如何有效利用
过滤器的技巧来完成ISAPI应用程序,以实现功能强大的交互式Web站点的开发。通过本书你
还能针对自己项目的特殊需要提出更合理的设计。
本书面向网络应用与
目录
第1章 internet信息服务器的编程选择
1.1 cgi(公共网关接口)
1.2 idc(internet数据库连接器)
1.3 其他可选择的开发工具
1.3.1 oleisapl
1.3.2 活动服务器页面(active server pa8es)
1.3.3 第三方解决方案
1.4 基于isapi的解决方案
1.4.1 性能
1.4.2 灵活性
1.4.3 扩展dll
1.4.4 过滤器
1.4.5 用isapi编程
1.5 小结
第2章 使用idc
2.1 什么是idc
2.2 何时使用idc
2.3 idc编程基础
2.3.1 idc文件
2.3.2 .htx文件
. 2.4 高级idc编程
2.4.1 理解idc处理请求的顺序
2.4.2 使用多数据库查询
2.4.3 检索计算域的值
2.4.4 使用多值变量
2.4.5 html中的特殊字符处理
2.4.6 保证系统的安全
2.5 iisl.x和iis 2.o之间的区别
2.5.1 多数据库查询
2.5.2 适当的条件嵌套
2.6 小结
第3章 idc应用程序示例
3.1 应用程序目标
3.1.1 消息的组织
3.1.2 发布新消息
3.1.3 主题投索
3.1.4 安全
3.2 消息库应用程序数据模型
3.2.1 消息
3.2.2 议题
3.2.3 用户
3.2. 4 空白表
3.3 消息库应用程序用户界面
3.4 消息库应用程序实霸蔓点
3.4.1 访问故障排除
3.4.2 配置系统
3.4.3 提供数据库中的初始数据
3.4.4 通过程康传播数值
3.4.5 排序消息响应
3.4.6 实霸多页搜索结果
3.5 消息库应用程序的实霸
3.5.1 welcome/login页
3.5.2 main page
3.5.3 conference message list页
3.5.4 view message页
3.5.5 post a fo11ow—up页
3.5.6 post a new topic页
3.5.7 search reqnest页
3.5.8 viewseach results页
3.6 小结
第4章 mfc中的基本表单处理
4.1 web表单
4.2 isapi处理表单的优点
4.3 在isapi表单处理中使用mfc的优点
4.4 表单处理的一个简单的isapi扩展
4.4.1 设计表单
4.4.2 表单的html
4.4.3 处理表单数据的一个isapi扩展
4.4.4 表单处理逻辑
4.5 html中的表单
4.5.1 表单
4.5.2 输入域
4.5.3 选择列表
4.5.4 文本区域
4.6 mfc parsemap
4.6.1 begin-parse-map
4.6.2 on-parse-command
4.6.3 on-parse-command-params
4.6.4 default—parse—command
4.6.5 end—parse—command
4.7 一个更高级的表单处理例子
4.7.1 表单和有效验证
4.7.2 进程
4.7.3 调用表单
4.7.4 动态产生的html
4.7.5 处理用户的输入
4.7.6 动态产生html的优缺点
4.8 潜在的表单处理问题
4.8.1 isapi扩展的故障排除
4.8.2 get命令问题
4.8.3 mfcisapiconnnnnd参数
4.9 何时parse map不工作
4.9.1 带有可变内容的表单
4.9.2 多值域
4.10 小结
第5章 从数据库中抽取多媒体图像
5.1 动态多媒体网页创建
5.1.1 在数据库中不仅仅存档图像
5.1.2 生成工具
5.2 mime类型
5.2.1 更多有关mime类型的内容:startcontent()的调用
5.3 嵌入isapi响应调用
5.3.1 在一个odbc数据库中存储blob
5.4 图像抽取模块
5.4.1 使用crecordset抽取图像
5.4.2 测试驱动mmget扩展
5.5 线程安全(thread—safe)的图像抽取
5.6 高级话题
5.6.1 扩展性,使用worker线程
5.6.2 用信号灯优化线程访问
5. 6.3 在注册表中存储数据库用户的名字和口令
5.6.4 增强数据库用户的权限管理
5.6.5 使用cookie保持状态
5.7 isapi扩展的故障排除
5.8 小结
第6章 开发e—mail网关
6.1 smtp概述
6.2 从网页发送邮件的最简单方法
6. 3 捕获关键信息
6. 4 实现一个smtp mailer dll
6.4.1 smtp mailer api
6.4.2 实现smtp mailer
6.5 smtp mailer的测试
6.6 采用smtp mailer的isapi扩展
6.7 litemail smtp网关isapi扩展
6.8 小结
第7章 理解isapi过滤器
7.1 过滤器定义
7.2 isapi过滤器和扩展
7.2.1 isapi过滤器应用程序
7.3 isapi过滤器的寿命周期
7.3.1 装载和卸载过滤器
7.3.2 配置过滤器
7.4 isapi过滤器dll入口点
7.4.1 getfilter version()函数
7.4.2 httpfilterproc()函数
7.5 线程
7.5. 1 资源管理
7.5.2 环境管理
7.6 内存管理
7.6.1 使用a11ocmem()作内存管理
7.6.2 使用通知作内存管理
7.7 用c建立一个过滤器
7.7.1 实现一个简单的过滤器
7.7.2 运行过滤器
7.7.3 理解过滤器输出
7.8 mfc过滤器支持
7.8.1 chttpfilter
7.8.2 一个基于mfc的getfilterversion()函数
7.8.3 chttpfiltercontext类
7.9 小结
第8章 用过滤器增强iis日志
8.1 iis日志
8.1.1 记录文本文件
8.1.2 记录到数据库
8.1.3 确定在何处以及如何存储数据
8.2 过滤日志事件
8.2.1 过滤日志事件的理由
8.2.2 增加新域给日志
8.2.3 更改已有日志域
8.3 一个简单的日志过滤器
8.3.1 设计isapi日志过滤器
8.3.2 实现cextradatafilter:getfilterversion()
8.3.3 用onlog()函数处理日志通知
8.4 有效地使用日志过滤器
8.4.1 避免耗时的操作
8.4.2 使用离线选择
8.5 小结
第9章 基于客户浏览器重定向
9.l 为什么以用户浏览器为基础进行重定向
9.1.1 优化站点还是使站点更具普遍性
9.1.2 自动选页的手工执行
9.2 用过滤器重定向
9.3 用扩展重定向
9.4 描述浏览器功能
9.4.1 识别远程浏览器
9.4.2 建立一个浏览器功能机制
9.5 实现一个重定向扩展
9.5.1 要求
9.5.2 声明扩展类
9.5.3 定义parsemap
9.5.4 初始化重定向扩展
9.5.5 处理ifsupported命令
9.6 实现重定向过滤器
9.6.1 要求
9.6.2 为重定向过滤器选择通知方法
9.6.3 设计发送
9.6.4 声明过滤器类
9.6.5 实现getfilterversion()函数
9.6.6 实现onpreprocheaders()函数
9.7 小结
第10章 用过滤器验证
10.1 验证与安全性
10.2 在httpl.1中验证
10.2.1 challenge/response进程
10.2.2 验证方案
10.3 验证和windows nt安全
10.3.1 匿名用户
10.3.2 安全环境和iis
10.3.3 nt访问权限和验证
10.4 验证过滤器
10.4.1 验证过滤器做什么
10.4.2 为什么使用验证过滤器
10. 5 设计和实现验证过滤器
10.5.1 数据存储要求
10.5.2 执行效率要求
10.5.3 设计过滤器
10.5.4 实现过滤器
10.6 小结
第11章 高级表单处理
11.1 mfcparsemap的局限性
11.2 mfc isapi支持的优点
11.3 设计一种机制来支持灵活表单内容
11.3.1 需要的功能
11.3.2 环境特征
11.4 使用未提供文档的mfc来扩展或增强mfc
11.4.1 什么是未被提供文档的mfc
11.4.2 未被提供文档的mfc代码的风险和回报
11.4.3 使用未被提供文档的mfc的基本原理
11.5 实现处理可变表单内容的增强
11.5.1 扩展chttpserver
11.5.2 用chttpfieldtable类管理数据
11.6 在一个isapi扩展中使用chttpfieuserver类
11.6.1 转换一个mfcisah扩展来使用fieldtable类
11.6.2 一个域表扩展样本
11.7 小结
第12章 使用boreanddelphi 2.0的isau编程
12.1 使用delphi的好处
12.2 isapi中delphi的局限性
12.2.1 在isapi程序中没有用户接口
12.2.2 数据库问题
12.2.3 缺少开发isapi应用的应用程序框架
12.3 delphi与c十十isapi贝编程
12.3.1 数据类型对应
12.3.2 mfc或其他框架不可用
12.4 用delphi写一个isapi应用程序
12.4.1 isapiext单元
12.4.2 在dll中提供isapi应用程序入口点
12.4. 3 使用ecb与服务器交互
12.4.4 检索头部信息和履务器变量
12.4.5 解释请求
12.4.6 发送数据给用户
12.4.7 保持状态信息:使用cookkies
12.5 编写一个isapi过滤器
12.6 小结
第13章 使用delphi isapi应用程序框架
13. l 设计目标
13.2 使用isah应用程序框架
13.2.1 为你的扩展建立一个新项目程序
13.2.2 用isapicommand域准备html表单
13.2.3 编写并注册一个类来处理请求
13.2.4 httpservercontext对象
13.2.5 检索表单的域值
13.2.6 检索头文件信息和服务器变量
13.2.7 发送头文件给用户
13.2.8 获取对参数和cookies的直接访问
13.2.9 写数据给用户
13.2.10 处理异常
13.3 建立一个简单的请求处理程序
13.3.1 温度转换请求
13.3.2 温度转换请求处理程序
13.4 高级专题
13.4.1 httputil工具类
13.4.2 读写cookies
13.4.3 写二进制数据给用户
13.4.4 直接访问特殊函数的ecl
13.5 delphiisapi应用程序框架如何工作
13.5.1 作为函数符的请求处理程序
13.5.2 类注册和对象工厂
13.5.3 检索输入数据
13.5.4 保存和发送头部
13.5.5 异常结构
13.6 小结
第14章 调试isapi过滤器
14.1 重入
14.2 代码的关键部分(criticalsection)
14.3 内存泄漏
14.4 在windows nt下调试
14.4.1 在调试器中浏览代码
14.4.2 建立调试
14.4.3 在调试器中装入web服务器
14.4.4 用outputdebugstring()函数调试
14.4.5 用messagebox()函数调试
14.4.6 更方便的调试方法提示
14.4.7 用ismoke.exe调试
14.4.8 用cgiwrap调试
14.5 使之完善
14.5.1 assert语句
14.5.2 运行时调试库
14.5.3 提供错误消息
14.5.4 强化测试
14.5.5 用hammer强化测试
14.6 小结
附录a isapi函数、结构和常量
a.1 扩展
a.1.1 dll入口
a.1.2 回调
a.2 过滤器
a.2.1 dll入口点
a.2.2 回调
附录b 建立一个系统数据源名
b.1 增加一个系统数据源名
b.2 配置一个访问系统数据源名
b.3 配置sql服务器的系统dsn
附录c http状态码
附录d 服务器变量
附录e 常用的头部
附录f 光盘上有什么
f.1 源代码
f.2 开发工具
f.3 文献
f.4 isapi组件
f.5 网络链接
1.1 cgi(公共网关接口)
1.2 idc(internet数据库连接器)
1.3 其他可选择的开发工具
1.3.1 oleisapl
1.3.2 活动服务器页面(active server pa8es)
1.3.3 第三方解决方案
1.4 基于isapi的解决方案
1.4.1 性能
1.4.2 灵活性
1.4.3 扩展dll
1.4.4 过滤器
1.4.5 用isapi编程
1.5 小结
第2章 使用idc
2.1 什么是idc
2.2 何时使用idc
2.3 idc编程基础
2.3.1 idc文件
2.3.2 .htx文件
. 2.4 高级idc编程
2.4.1 理解idc处理请求的顺序
2.4.2 使用多数据库查询
2.4.3 检索计算域的值
2.4.4 使用多值变量
2.4.5 html中的特殊字符处理
2.4.6 保证系统的安全
2.5 iisl.x和iis 2.o之间的区别
2.5.1 多数据库查询
2.5.2 适当的条件嵌套
2.6 小结
第3章 idc应用程序示例
3.1 应用程序目标
3.1.1 消息的组织
3.1.2 发布新消息
3.1.3 主题投索
3.1.4 安全
3.2 消息库应用程序数据模型
3.2.1 消息
3.2.2 议题
3.2.3 用户
3.2. 4 空白表
3.3 消息库应用程序用户界面
3.4 消息库应用程序实霸蔓点
3.4.1 访问故障排除
3.4.2 配置系统
3.4.3 提供数据库中的初始数据
3.4.4 通过程康传播数值
3.4.5 排序消息响应
3.4.6 实霸多页搜索结果
3.5 消息库应用程序的实霸
3.5.1 welcome/login页
3.5.2 main page
3.5.3 conference message list页
3.5.4 view message页
3.5.5 post a fo11ow—up页
3.5.6 post a new topic页
3.5.7 search reqnest页
3.5.8 viewseach results页
3.6 小结
第4章 mfc中的基本表单处理
4.1 web表单
4.2 isapi处理表单的优点
4.3 在isapi表单处理中使用mfc的优点
4.4 表单处理的一个简单的isapi扩展
4.4.1 设计表单
4.4.2 表单的html
4.4.3 处理表单数据的一个isapi扩展
4.4.4 表单处理逻辑
4.5 html中的表单
4.5.1 表单
4.5.2 输入域
4.5.3 选择列表
4.5.4 文本区域
4.6 mfc parsemap
4.6.1 begin-parse-map
4.6.2 on-parse-command
4.6.3 on-parse-command-params
4.6.4 default—parse—command
4.6.5 end—parse—command
4.7 一个更高级的表单处理例子
4.7.1 表单和有效验证
4.7.2 进程
4.7.3 调用表单
4.7.4 动态产生的html
4.7.5 处理用户的输入
4.7.6 动态产生html的优缺点
4.8 潜在的表单处理问题
4.8.1 isapi扩展的故障排除
4.8.2 get命令问题
4.8.3 mfcisapiconnnnnd参数
4.9 何时parse map不工作
4.9.1 带有可变内容的表单
4.9.2 多值域
4.10 小结
第5章 从数据库中抽取多媒体图像
5.1 动态多媒体网页创建
5.1.1 在数据库中不仅仅存档图像
5.1.2 生成工具
5.2 mime类型
5.2.1 更多有关mime类型的内容:startcontent()的调用
5.3 嵌入isapi响应调用
5.3.1 在一个odbc数据库中存储blob
5.4 图像抽取模块
5.4.1 使用crecordset抽取图像
5.4.2 测试驱动mmget扩展
5.5 线程安全(thread—safe)的图像抽取
5.6 高级话题
5.6.1 扩展性,使用worker线程
5.6.2 用信号灯优化线程访问
5. 6.3 在注册表中存储数据库用户的名字和口令
5.6.4 增强数据库用户的权限管理
5.6.5 使用cookie保持状态
5.7 isapi扩展的故障排除
5.8 小结
第6章 开发e—mail网关
6.1 smtp概述
6.2 从网页发送邮件的最简单方法
6. 3 捕获关键信息
6. 4 实现一个smtp mailer dll
6.4.1 smtp mailer api
6.4.2 实现smtp mailer
6.5 smtp mailer的测试
6.6 采用smtp mailer的isapi扩展
6.7 litemail smtp网关isapi扩展
6.8 小结
第7章 理解isapi过滤器
7.1 过滤器定义
7.2 isapi过滤器和扩展
7.2.1 isapi过滤器应用程序
7.3 isapi过滤器的寿命周期
7.3.1 装载和卸载过滤器
7.3.2 配置过滤器
7.4 isapi过滤器dll入口点
7.4.1 getfilter version()函数
7.4.2 httpfilterproc()函数
7.5 线程
7.5. 1 资源管理
7.5.2 环境管理
7.6 内存管理
7.6.1 使用a11ocmem()作内存管理
7.6.2 使用通知作内存管理
7.7 用c建立一个过滤器
7.7.1 实现一个简单的过滤器
7.7.2 运行过滤器
7.7.3 理解过滤器输出
7.8 mfc过滤器支持
7.8.1 chttpfilter
7.8.2 一个基于mfc的getfilterversion()函数
7.8.3 chttpfiltercontext类
7.9 小结
第8章 用过滤器增强iis日志
8.1 iis日志
8.1.1 记录文本文件
8.1.2 记录到数据库
8.1.3 确定在何处以及如何存储数据
8.2 过滤日志事件
8.2.1 过滤日志事件的理由
8.2.2 增加新域给日志
8.2.3 更改已有日志域
8.3 一个简单的日志过滤器
8.3.1 设计isapi日志过滤器
8.3.2 实现cextradatafilter:getfilterversion()
8.3.3 用onlog()函数处理日志通知
8.4 有效地使用日志过滤器
8.4.1 避免耗时的操作
8.4.2 使用离线选择
8.5 小结
第9章 基于客户浏览器重定向
9.l 为什么以用户浏览器为基础进行重定向
9.1.1 优化站点还是使站点更具普遍性
9.1.2 自动选页的手工执行
9.2 用过滤器重定向
9.3 用扩展重定向
9.4 描述浏览器功能
9.4.1 识别远程浏览器
9.4.2 建立一个浏览器功能机制
9.5 实现一个重定向扩展
9.5.1 要求
9.5.2 声明扩展类
9.5.3 定义parsemap
9.5.4 初始化重定向扩展
9.5.5 处理ifsupported命令
9.6 实现重定向过滤器
9.6.1 要求
9.6.2 为重定向过滤器选择通知方法
9.6.3 设计发送
9.6.4 声明过滤器类
9.6.5 实现getfilterversion()函数
9.6.6 实现onpreprocheaders()函数
9.7 小结
第10章 用过滤器验证
10.1 验证与安全性
10.2 在httpl.1中验证
10.2.1 challenge/response进程
10.2.2 验证方案
10.3 验证和windows nt安全
10.3.1 匿名用户
10.3.2 安全环境和iis
10.3.3 nt访问权限和验证
10.4 验证过滤器
10.4.1 验证过滤器做什么
10.4.2 为什么使用验证过滤器
10. 5 设计和实现验证过滤器
10.5.1 数据存储要求
10.5.2 执行效率要求
10.5.3 设计过滤器
10.5.4 实现过滤器
10.6 小结
第11章 高级表单处理
11.1 mfcparsemap的局限性
11.2 mfc isapi支持的优点
11.3 设计一种机制来支持灵活表单内容
11.3.1 需要的功能
11.3.2 环境特征
11.4 使用未提供文档的mfc来扩展或增强mfc
11.4.1 什么是未被提供文档的mfc
11.4.2 未被提供文档的mfc代码的风险和回报
11.4.3 使用未被提供文档的mfc的基本原理
11.5 实现处理可变表单内容的增强
11.5.1 扩展chttpserver
11.5.2 用chttpfieldtable类管理数据
11.6 在一个isapi扩展中使用chttpfieuserver类
11.6.1 转换一个mfcisah扩展来使用fieldtable类
11.6.2 一个域表扩展样本
11.7 小结
第12章 使用boreanddelphi 2.0的isau编程
12.1 使用delphi的好处
12.2 isapi中delphi的局限性
12.2.1 在isapi程序中没有用户接口
12.2.2 数据库问题
12.2.3 缺少开发isapi应用的应用程序框架
12.3 delphi与c十十isapi贝编程
12.3.1 数据类型对应
12.3.2 mfc或其他框架不可用
12.4 用delphi写一个isapi应用程序
12.4.1 isapiext单元
12.4.2 在dll中提供isapi应用程序入口点
12.4. 3 使用ecb与服务器交互
12.4.4 检索头部信息和履务器变量
12.4.5 解释请求
12.4.6 发送数据给用户
12.4.7 保持状态信息:使用cookkies
12.5 编写一个isapi过滤器
12.6 小结
第13章 使用delphi isapi应用程序框架
13. l 设计目标
13.2 使用isah应用程序框架
13.2.1 为你的扩展建立一个新项目程序
13.2.2 用isapicommand域准备html表单
13.2.3 编写并注册一个类来处理请求
13.2.4 httpservercontext对象
13.2.5 检索表单的域值
13.2.6 检索头文件信息和服务器变量
13.2.7 发送头文件给用户
13.2.8 获取对参数和cookies的直接访问
13.2.9 写数据给用户
13.2.10 处理异常
13.3 建立一个简单的请求处理程序
13.3.1 温度转换请求
13.3.2 温度转换请求处理程序
13.4 高级专题
13.4.1 httputil工具类
13.4.2 读写cookies
13.4.3 写二进制数据给用户
13.4.4 直接访问特殊函数的ecl
13.5 delphiisapi应用程序框架如何工作
13.5.1 作为函数符的请求处理程序
13.5.2 类注册和对象工厂
13.5.3 检索输入数据
13.5.4 保存和发送头部
13.5.5 异常结构
13.6 小结
第14章 调试isapi过滤器
14.1 重入
14.2 代码的关键部分(criticalsection)
14.3 内存泄漏
14.4 在windows nt下调试
14.4.1 在调试器中浏览代码
14.4.2 建立调试
14.4.3 在调试器中装入web服务器
14.4.4 用outputdebugstring()函数调试
14.4.5 用messagebox()函数调试
14.4.6 更方便的调试方法提示
14.4.7 用ismoke.exe调试
14.4.8 用cgiwrap调试
14.5 使之完善
14.5.1 assert语句
14.5.2 运行时调试库
14.5.3 提供错误消息
14.5.4 强化测试
14.5.5 用hammer强化测试
14.6 小结
附录a isapi函数、结构和常量
a.1 扩展
a.1.1 dll入口
a.1.2 回调
a.2 过滤器
a.2.1 dll入口点
a.2.2 回调
附录b 建立一个系统数据源名
b.1 增加一个系统数据源名
b.2 配置一个访问系统数据源名
b.3 配置sql服务器的系统dsn
附录c http状态码
附录d 服务器变量
附录e 常用的头部
附录f 光盘上有什么
f.1 源代码
f.2 开发工具
f.3 文献
f.4 isapi组件
f.5 网络链接
ISAPI实用技术指南
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×