通过前 9篇
![](/icons/46790de.gif)
理论和实战
![](/icons/46790dou.gif)
相信大家已经对 ASP
有了系统
![](/icons/46790de.gif)
了解
![](/icons/46790dou.gif)
虽然至今为止
![](/icons/46790dou.gif)
我们只学了 ASP
![](/icons/46790de.gif)
4
个内建对象
![](/icons/46790dou.gif)
但已经完全能够写出
![](/icons/46790yi.gif)
些实用
![](/icons/46790de.gif)
小
![](/icons/46790chengxu.gif)
了
![](/icons/46790dou2.gif)
今天
![](/icons/46790dou.gif)
作者将继续给大家讲解最后
![](/icons/46790yi.gif)
个
ASP 内建对象——Server
在开始本次课程的前
![](/icons/46790dou.gif)
我仍要在这里回答
![](/icons/46790yi.gif)
些朋友们提出
![](/icons/46790de.gif)
比较普遍
![](/icons/46790de.gif)
问题
![](/icons/46790dou2.gif)
最近仍有不少朋友来信问我
![](/icons/46790dou.gif)
如何构建服务器端
Active Server Page
环境
![](/icons/46790dou2.gif)
我想可能是我在前几篇中没有讲清楚
![](/icons/46790dou.gif)
因此
![](/icons/46790dou.gif)
在本篇
![](/icons/46790de.gif)
开头有必要把这个问题详细阐述
![](/icons/46790yi.gif)
遍
ASP
![](/icons/46790de.gif)
应用完全是基于 Microsoft Internet Information Server(简称 IIS)的上
![](/icons/46790de.gif)
![](/icons/46790dou.gif)
IIS
有分别用于 Windows NT Server 和 WorkStation
![](/icons/46790de.gif)
两个版本中(当然 IIS4.0
也有 Windows98
版
![](/icons/46790dou.gif)
这里暂且不提)
![](/icons/46790dou.gif)
其功能几乎完全相同
![](/icons/46790dou.gif)
所区别
![](/icons/46790de.gif)
只是安装过程
![](/icons/46790dou2.gif)
![](/icons/46790yi.gif)
般来说
![](/icons/46790dou.gif)
我们使用
![](/icons/46790de.gif)
都是基于
NT 服务器上
![](/icons/46790de.gif)
IIS 版本
![](/icons/46790dou2.gif)
在 NT Server
![](/icons/46790de.gif)
环境中
![](/icons/46790dou.gif)
发布信息、管理站点
![](/icons/46790de.gif)
工作
![](/icons/46790yi.gif)
般都是通过 IIS
来完成
![](/icons/46790de.gif)
![](/icons/46790dou2.gif)
通常我们在 NT4.0 版本中运行
![](/icons/46790de.gif)
是 IIS2.0
版
![](/icons/46790dou.gif)
但它不具有支持 ASP
![](/icons/46790de.gif)
功能
![](/icons/46790dou2.gif)
ASP 必须在安装完 IIS
后单独安装
![](/icons/46790dou.gif)
安装文件是
![](/icons/46790yi.gif)
个微软发布
![](/icons/46790de.gif)
ASP 安装包
![](/icons/46790dou.gif)
大约有 9
兆多
![](/icons/46790dou.gif)
应该可以在微软
![](/icons/46790de.gif)
网站WebSite上下载
![](/icons/46790dou2.gif)
当 IIS2.0 中增添了支持 ASP
![](/icons/46790de.gif)
功能后
![](/icons/46790dou.gif)
其也就自动升级为 3.0 版本
![](/icons/46790dou2.gif)
2.0 和 3.0 对于 WEB
服务器来说
![](/icons/46790dou.gif)
并没有什么大
![](/icons/46790de.gif)
改动
![](/icons/46790dou.gif)
只是单纯地增加了运行 ASP
![](/icons/46790de.gif)
能力
![](/icons/46790dou2.gif)
当安装完成后
![](/icons/46790dou.gif)
运行 Internet
服务管理器
![](/icons/46790dou.gif)
你将看到如下画面:
可以到在 IIS3.0 中提供了 3种服务:WWW、Gopher、FTP
![](/icons/46790dou.gif)
WWW
服务为客户浏览器提交 WEB 页
![](/icons/46790dou.gif)
并允许客户访问 .asp
文件
![](/icons/46790dou2.gif)
当然
![](/icons/46790dou.gif)
你可以直接安装最新
![](/icons/46790de.gif)
IIS4.0
版本
![](/icons/46790dou.gif)
作者也建议各位安装此版本
![](/icons/46790dou.gif)
![](/icons/46790yinwei.gif)
它具有更强更高
![](/icons/46790de.gif)
WEB
管理机能和安全性
![](/icons/46790dou2.gif)
在 IIS4.0 中 IIS
![](/icons/46790de.gif)
管理界面发生了根本性
![](/icons/46790de.gif)
改变
![](/icons/46790dou.gif)
熟悉
![](/icons/46790de.gif)
Internet
服务管理器
![](/icons/46790dou.gif)
被取而代的为 Microsoft 管理控制台
![](/icons/46790dou.gif)
简称 MMC
![](/icons/46790dou2.gif)
其界面如下图:
那么如何安装 I IS4.0 呢 ?在 N T4.0 上 安装 I IS4.0 时
![](/icons/46790dou.gif)
你
![](/icons/46790de.gif)
系统中必须已经安装了 N T SP3
![](/icons/46790dou.gif)
以及 I nternet Explorer4.01
注意这里
![](/icons/46790de.gif)
I nternet Explorer
![](/icons/46790de.gif)
版本必须是 4 .01
![](/icons/46790dou.gif)
版本号为 4 .72.3110.8
![](/icons/46790dou2.gif)
这点很重要
![](/icons/46790dou.gif)
否则你将不能安装 I IS4.0
作者为了安装该版本特意花费了
![](/icons/46790yi.gif)
个晚上在微软
![](/icons/46790de.gif)
站点上升级 I E 版
本
IIS
支持虚拟目录
![](/icons/46790dou.gif)
通过在“服务器属性”对话框中
![](/icons/46790de.gif)
“目录”标签可以管理虚拟目录
![](/icons/46790dou2.gif)
建立虚拟目录对于管理
WEB
站点具有非常重要
![](/icons/46790de.gif)
意义
![](/icons/46790dou2.gif)
首先
![](/icons/46790dou.gif)
虚拟目录隐藏了有关站点目录结构
![](/icons/46790de.gif)
重要信息
![](/icons/46790dou2.gif)
![](/icons/46790yinwei.gif)
在浏览器中
![](/icons/46790dou.gif)
客户通过选择“查看源代码”
![](/icons/46790dou.gif)
很容易就能获取页面
![](/icons/46790de.gif)
文件路径信息
![](/icons/46790dou.gif)
如果在
WEB
页中使用物理路径
![](/icons/46790dou.gif)
将暴露有关站点目录
![](/icons/46790de.gif)
重要信息
![](/icons/46790dou.gif)
这容易导致系统受到攻击
![](/icons/46790dou2.gif)
其次
![](/icons/46790dou.gif)
只要两台机器具有相同
![](/icons/46790de.gif)
虚拟目录
![](/icons/46790dou.gif)
你就可以在不对页面代码做任何改动
![](/icons/46790de.gif)
情况下
![](/icons/46790dou.gif)
将
WEB 页面从
![](/icons/46790yi.gif)
台机器上移到另
![](/icons/46790yi.gif)
台机器
![](/icons/46790dou2.gif)
还有就是
![](/icons/46790dou.gif)
当你将 WEB
页面放置于虚拟目录下后
![](/icons/46790dou.gif)
你可以对目录设置区别
![](/icons/46790de.gif)
属性
![](/icons/46790dou.gif)
如:Read、Excute、Script
![](/icons/46790dou2.gif)
读访问表示将目录内容从
IIS
传递到浏览器
![](/icons/46790dou2.gif)
而执行访问则可以使在该目录内执行可执行
![](/icons/46790de.gif)
文件
![](/icons/46790dou2.gif)
当你需要使用
ASP 时
![](/icons/46790dou.gif)
就必须将你存放 .asp 文件
![](/icons/46790de.gif)
目录设置为“Excute(执行)”
![](/icons/46790dou2.gif)
作者建议大家在设置
WEB 站点时
![](/icons/46790dou.gif)
将 HTML 文件同 ASP 文件分开放置在区别
![](/icons/46790de.gif)
目录下
![](/icons/46790dou.gif)
然后将
HTML 子目录设置为“读”
![](/icons/46790dou.gif)
将 ASP
子目录设置为“执行”
![](/icons/46790dou.gif)
这不仅方便了对 WEB
![](/icons/46790de.gif)
管理
![](/icons/46790dou.gif)
而且最重要
![](/icons/46790de.gif)
提高了 ASP
![](/icons/46790chengxu.gif)
![](/icons/46790de.gif)
安全性
![](/icons/46790dou.gif)
防止了
![](/icons/46790chengxu.gif)
内容被客户所访问
![](/icons/46790dou2.gif)
![](/icons/46790yinwei.gif)
在今年 7
月底
![](/icons/46790de.gif)
时候 IIS 被
![](/icons/46790yi.gif)
些网络高手发现了
![](/icons/46790yi.gif)
个可怕
![](/icons/46790de.gif)
bug
![](/icons/46790dou.gif)
那就是
![](/icons/46790dou.gif)
当你在
![](/icons/46790yi.gif)
个站点
.asp 文件后加上 ::$DATA 后
![](/icons/46790dou.gif)
客户将能在浏览器中看到该 .asp
文件
![](/icons/46790de.gif)
所有源代码
![](/icons/46790dou.gif)
这对于
![](/icons/46790yi.gif)
个站点来说是非常可怕
![](/icons/46790de.gif)
![](/icons/46790dou2.gif)
当然微软已经针对这个
bug
![](/icons/46790dou.gif)
编写了补丁
![](/icons/46790dou.gif)
但是为了彻底杜绝这种可能性
![](/icons/46790de.gif)
发生
![](/icons/46790dou.gif)
作者还
![](/icons/46790yi.gif)
建议大家不要将
.asp 所在
![](/icons/46790de.gif)
目录设置为可读
![](/icons/46790dou2.gif)
我想
![](/icons/46790dou.gif)
现在各位应该已经完全了解 ASP
![](/icons/46790de.gif)
服务器端设置了
![](/icons/46790dou.gif)
下面我们就进入正题 -- 学习 ASP
![](/icons/46790de.gif)
最后
![](/icons/46790yi.gif)
个内建对象 Server
![](/icons/46790dou2.gif)
Server 对象提供对服务器上
![](/icons/46790de.gif)
思路方法和属性
![](/icons/46790de.gif)
访问 ,
其中大多数思路方法和属性是作为实用
![](/icons/46790chengxu.gif)
![](/icons/46790de.gif)
功能服务
![](/icons/46790de.gif)
![](/icons/46790dou2.gif)
有了 Server
对象
![](/icons/46790dou.gif)
你就可以在服务器上启动 ActiveX 对象例程
![](/icons/46790dou.gif)
并使用 Active Server
服务提供象 HTML 和 URL 编码这样
![](/icons/46790de.gif)
![](/icons/46790hanshu.gif)
![](/icons/46790yi.gif)
、语法
Server.property|method
2、属性 ScriptTimeout
超时值
![](/icons/46790dou.gif)
在脚本运行超过这
![](/icons/46790yi.gif)
时间的后即作超时处理
![](/icons/46790dou2.gif)
如下代码指定服务器处理脚本在
100 秒后超时
![](/icons/46790dou2.gif)
< % Server.ScriptTimeout=100 %>
这里需要注意
![](/icons/46790de.gif)
是
![](/icons/46790dou.gif)
通过使用元数据库
中
![](/icons/46790de.gif)
A spScriptTimeout 属
性可以为 W eb 服 务或 W eb 服 务器设置缺省
![](/icons/46790de.gif)
S criptTimeout 值
![](/icons/46790dou2.gif)
S
criptTimeout 属 性不能设置为小于在元数据库中指定
![](/icons/46790de.gif)
值
![](/icons/46790dou2.gif)
例如
![](/icons/46790dou.gif)
如果NumSeconds
设 置为 6 0
![](/icons/46790dou.gif)
而元数据库设置包含了默认值 9 0 秒
![](/icons/46790dou.gif)
则脚本在 9 0 秒
后超时
3、思路方法 1、HTMLEncode 思路方法
H TMLEncode 方 法允许你对特定
![](/icons/46790de.gif)
![](/icons/46790zifu.gif)
串进行 H TML 编 码
![](/icons/46790dou.gif)
虽然 H
TML 可 以显示大部分你写入 A SP 文
件中
![](/icons/46790de.gif)
文本
![](/icons/46790dou.gif)
但是当你需要实际包含 H TML 标
记中所使用
![](/icons/46790de.gif)
![](/icons/46790zifu.gif)
![](/icons/46790dou.gif)
就会遇到问题
![](/icons/46790dou2.gif)
这是
![](/icons/46790yinwei.gif)
![](/icons/46790dou.gif)
当浏览器读到这样
![](/icons/46790de.gif)
![](/icons/46790zifu.gif)
串时
![](/icons/46790dou.gif)
会试图进行解释
![](/icons/46790dou2.gif)
例如下面
![](/icons/46790de.gif)
这段文本
:
这是对 HTMLEncode 思路方法
![](/icons/46790de.gif)
测试
![](/icons/46790dou2.gif)
< br>
这里应该不会另起
![](/icons/46790yi.gif)
行
![](/icons/46790dou2.gif)
会被浏览器显示为 :
这是对 HTMLEncode 思路方法
![](/icons/46790de.gif)
测试
这里应该不会另起
![](/icons/46790yi.gif)
行
![](/icons/46790dou2.gif)
为了避免此类问题
![](/icons/46790dou.gif)
我们就需要使用 S erver 对 象
![](/icons/46790de.gif)
H TMLEncode
方 法
![](/icons/46790dou.gif)
采用对应
![](/icons/46790de.gif)
不由浏览器解释
![](/icons/46790de.gif)
H TML Character Code 替 代 H TML 标
记
![](/icons/46790zifu.gif)
![](/icons/46790dou2.gif)
所以
![](/icons/46790dou.gif)
用下面
![](/icons/46790de.gif)
代码才能显示正确
![](/icons/46790de.gif)
H TMLEncode 字
符串
![](/icons/46790dou.gif)
从而在浏览器中按你
![](/icons/46790de.gif)
需要输出文本
< %
Response.write Server.HTMLEncode(\" 这是对 HTMLEncode 思路方法
![](/icons/46790de.gif)
测试
![](/icons/46790dou2.gif)
<
br> 这里应该不会另起
![](/icons/46790yi.gif)
行
![](/icons/46790dou2.gif)
\")%>
2、URLEncode 思路方法 就象 H TMLEncode 方
法使客户可以将
![](/icons/46790zifu.gif)
串翻译成可接受
![](/icons/46790de.gif)
H TML 格 式
![](/icons/46790yi.gif)
样
![](/icons/46790dou.gif)
S erver 对
象
![](/icons/46790de.gif)
U RLEncode 方 法可以根据 U RL 规
则对
![](/icons/46790zifu.gif)
串进行正确编码
![](/icons/46790dou.gif)
当
![](/icons/46790zifu.gif)
串数据以 U RL
形式传递到服务器时
![](/icons/46790dou.gif)
在
![](/icons/46790zifu.gif)
串中不允许出现空格
![](/icons/46790dou.gif)
也不允许出现特殊
![](/icons/46790zifu.gif)
![](/icons/46790dou2.gif)
为此
![](/icons/46790dou.gif)
如果你希望在发送
![](/icons/46790zifu.gif)
串的前进行
U RL 编 码
![](/icons/46790dou.gif)
可以使用 S erver.URLEncode 方 法
![](/icons/46790dou2.gif)
3、MapPath 思路方法 MapPath
思路方法将指定
![](/icons/46790de.gif)
相对或虚拟路径映射到服务器上相应
![](/icons/46790de.gif)
物理目录上
![](/icons/46790dou2.gif)
语法如下 :Server.MapPath(Path)
P ath 指 定要映射物理目录
![](/icons/46790de.gif)
相对或虚拟路径
![](/icons/46790dou2.gif)
若 P ath 以
![](/icons/46790yi.gif)
个正斜杠 ( /) 或 反斜杠 ( ) 开 始
![](/icons/46790dou.gif)
则 M apPath 方 法返回路径时将 P
ath 视 为完整
![](/icons/46790de.gif)
虚拟路径
![](/icons/46790dou2.gif)
若 P ath 不 是以斜杠开始
![](/icons/46790dou.gif)
则 M apPath 方
法返回同 . Asp 文 件中已有
![](/icons/46790de.gif)
路径相对
![](/icons/46790de.gif)
路径
![](/icons/46790dou2.gif)
这里需要注意
![](/icons/46790de.gif)
是 M
apPath 方 法不检查返回
![](/icons/46790de.gif)
路径是否正确或在服务器上是否存在
对于下列举例
![](/icons/46790dou.gif)
文件 data.txt 和包含下列脚本
![](/icons/46790de.gif)
test.asp
文件都位于目录 C:InetpubWwwrootasp 下
![](/icons/46790dou2.gif)
C:InetpubWwwroot
目录被设置为服务器
![](/icons/46790de.gif)
宿主目录
![](/icons/46790dou2.gif)
下列举例使用服务器变量 PATH_INFO
映射当前文件
![](/icons/46790de.gif)
物理路径
![](/icons/46790dou2.gif)
以下脚本
< %= server.mappath(Request.ServerVariables(\"PATH_INFO\"))%>
输出
c:inetpubwwwrootasptest.asp
由于下列举例中
![](/icons/46790de.gif)
路径参数不是以斜杠
![](/icons/46790zifu.gif)
开始
![](/icons/46790de.gif)
![](/icons/46790dou.gif)
所以它们被相对映射到当前目录
![](/icons/46790dou.gif)
此处是目录
C:InetpubWwwrootasp
![](/icons/46790dou2.gif)
以下脚本
< %= server.mappath(\"data.txt\")%>
< %= server.mappath(\"asp/data.txt\")%>
输出
c:inetpubwwwrootaspdata.txt
c:inetpubwwwrootaspaspdata.txt
4、CreateObject 思路方法 S erver.CreateObject 恐 怕是 A SP 中
最为实用
![](/icons/46790dou.gif)
也是最强劲
![](/icons/46790de.gif)
功能了
![](/icons/46790dou2.gif)
它用于创建已经注册到服务器上
A ctiveX 组 件例子
![](/icons/46790dou2.gif)
这是
![](/icons/46790yi.gif)
个非常重要
![](/icons/46790de.gif)
特性
![](/icons/46790dou.gif)
![](/icons/46790yinwei.gif)
通过使用 A ctiveX
组 件能够使你轻松地扩展 A ctiveX
![](/icons/46790de.gif)
能力
![](/icons/46790dou.gif)
正是使用了 A ctiveX 组
件
![](/icons/46790dou.gif)
你可以实现至关重要
![](/icons/46790de.gif)
功能
![](/icons/46790dou.gif)
譬如数据库连接、文件访问、广告显示和其他
V Bscript 不 能提供或不能简单地依靠单独使用 A ctiveX 所
能完成
![](/icons/46790de.gif)
功能
![](/icons/46790dou2.gif)
正是
![](/icons/46790yinwei.gif)
这些组件才使得 A SP 具
有了强大
![](/icons/46790de.gif)
生命力
![](/icons/46790dou2.gif)
其语法如下:
Server.CreateObject(\"Component Name\") 默认情况下
![](/icons/46790dou.gif)
由 S
erver.CreateObject 方 法创建
![](/icons/46790de.gif)
对象具有页作用域
![](/icons/46790dou2.gif)
这就是说
![](/icons/46790dou.gif)
再当前 A
SP 页
处理完成的后
![](/icons/46790dou.gif)
服务器将自动破坏这些对象
![](/icons/46790dou2.gif)
如果要创建有会话或应用
![](/icons/46790chengxu.gif)
作用域
![](/icons/46790de.gif)
对象
![](/icons/46790dou.gif)
可以使用
< OBJECT> 标记并设置 SESSION 或 APPLICATION
![](/icons/46790de.gif)
SCOPE
属性
![](/icons/46790dou.gif)
也可以在对话及应用
![](/icons/46790chengxu.gif)
变量中存储该对象
![](/icons/46790dou2.gif)
如下例程 :
< % Set Session(\"ad\") = Server.CreateObject(\"MSWC.AdRotator\")%>
这里需要注意
![](/icons/46790de.gif)
是
![](/icons/46790dou.gif)
不能创建和内建对象同名
![](/icons/46790de.gif)
对象例子
![](/icons/46790dou.gif)
否则
![](/icons/46790dou.gif)
如下列脚本将返回
![](/icons/46790cuowu.gif)
< % Set Response = Server.CreateObject(\"Response\") %>
至今为止
![](/icons/46790dou.gif)
我们已经学习完了 A SP 所
有
![](/icons/46790de.gif)
内建对象
![](/icons/46790dou.gif)
不知大家是不是很兴奋?其实 A SP 是
很简单
![](/icons/46790de.gif)
![](/icons/46790dou.gif)
只要大家不断
![](/icons/46790de.gif)
实战
![](/icons/46790dou.gif)
相信
![](/icons/46790yi.gif)
段时间后都不难成为 A SP
高手
![](/icons/46790dou2.gif)
从下
![](/icons/46790yi.gif)
篇起作者将开始介绍 A SP 内 建 A ctiveX 组 件
![](/icons/46790dou.gif)
这也是 A
SP 运 用中非常重要和实用
![](/icons/46790de.gif)
![](/icons/46790yi.gif)
部分
![](/icons/46790dou2.gif)
敬请关注
延伸阅读
最新评论