ASP 3.0高级编程(七)
来 源: 互联网 作 者: 不祥 发表日期: 2005-12-17 16:35:42 阅读次数: 106 文章标题:ASP → ASP 3.0高级编程(七) 查看权限: 普通文章 查看方式: 查看:[ 大字 中字 小字 ] [双击滚屏] 正 文: |
ASP 3.0高级编程(七) |
(4) 删除虚拟应用程序 单击“Remove”按钮不会真正地删除Internet Services Manager中的该条目。而是把现有的虚拟应用程序转换为一个虚拟目录。这个目录有一个带有蓝色球的“文件夹”图标,该图标表示这并不是Web网站中一个真正的目录,而是对磁盘上另一个文件夹的一个重定向。对它进行的访问方式与创建它的虚拟应用程序相同(即使用相同的URL),但是不作为一个应用程序。换句话说,它不支持自己的Application对象,而是继承缺省Web网站的Application对象,或者是在该目录的父目录中的另一个应用程序的Application对象。 为了删除一个虚拟应用程序,可简单地在Internet Services Manager中的对象上单击右键,在弹出的菜单中选择Delete。 (5) 应用程序存储的内容 ASP Application对象提供的全局存储空间可以用来存储下列内容: · 简单变量,例如字符串和数字(存储为Variant,类似于ASP脚本变量)。 · Variant类型数组,一维或多维。 · 对一个COM对象实例的变量引用(类型于Variant)。 (6) Variant的定义 Variant是在VBScript脚本引擎中为ASP(和Internet Explorer)提供的唯一变量类型,与在VB和VBA中定义的数据类型 Variant相类似。与大多数常用的基本数据类型(例如字符串或整数)相比,尽管它不能使存储单元最高效地存储变量,需要进行额外的处理,但Variant提供许多用处。 从内部来Variant数据类型存储数值作为独立的子类型。它能自动地处理隐含的类型转换,允许使用如下的代码: strString = ”30” intInteger = 12 Response.Write strString & intInteger ‘Writes 3012 in the resulting page Response.Write strString + intInteger ‘Writes 42 in the resulting page 隐含的数据类型转换允许忽略HTML广西的值和列表控件是字符串的情况,并且如果需要的话可以把它们当成数字(假设字符串确实包含一个有效的数字)。也可以随意地做一些其他的事情,诸如使用VBScript的Len方法检查Request.Form集合中并不存在的一个值的长度。Len函数试图把从Request.Form的调用的值转换成一个字符串。如果该值丢失,返回空(Empty),转换为带有””的一个字符串,因此长度是零。 (7) VBScript数据类型及转换 也可以进行显式的数据类型转换。在VBScript中,VarType方法返回一个整数,表明Variant当前保存的子类型: Select Case VarType(varMyValue) Case 0: Response.Write “Empty (uninitialized)” Case 1: Response.Write “Null (no valid data)” Case 2: Response.Write “Integer” Case 3: Response.Write “Long integer” Case 4: Response.Write “Single-precision floating-point number” Case 5: Response.Write “Double-precision floating-point number” Case 6: Response.Write “Currency” Case 7: Response.Write “Date” Case 8: Response.Write “String” Case 9: Response.Write “Automation Object reference” Case 10: Response.Write “Error” Case 11: Response.Write “Boolean” Case 12: Response.Write “Variant (used only with items in arrays of Variants)” Case 13: Response.Write “Data-access Object” Case 17: Response.Write “Bytes” Case 8192: Response.Write “Variant Array” End Select 还有一些函数,如IsArray、IsDate、IsEmpty、IsNull、IsNumeric和IsObject,对于特定的子类型返回一个Boolean结果。一旦知道了数据的子类型,如果包含的数据合适的话,就可以将之转换成不同的Variant子类型。这对代码的透明性和检查变量是否包含合法值都是有用的,非法的转换将导致运行期错误,转换如下所示: blnBoolean = Cbool(varVariant) ‘Converts to a Variant of subtype Boolean bytByte = Cbyte(varVariant) ‘Converts to a Variant of subtype Byte curCurrency = CCur(varVariant) ‘Converts to a Variant of subtype Currency dtmDate = CDate(varVariant) ‘Converts to a Variant of subtype Date dblDouble = CDbl(varVariant) ‘Converts to a Variant of subtype Double intInteger = CInt(varVariant) ‘Converts to a Variant of subtype Integer ingLong = CLng(varVariant) ‘Converts to a Variant of subtype Long sngSingle = CSng(varVariant) ‘Converts to a Variant of subtype Single strString = CStr(varVariant) ‘Converts to a Variant of subtype String (8) JScript数据类型及转换 在JScript中,其他一些变量类型类似于VBScript,但是没有代表对象的Variant。所有值都是对象,类型是下列六种数据类型之一: · undefined:只有单个值,用于表明请求中的变量没有声明和创建,或者若是隐含创建但还未分配任何值。类似于 VBScript的Empty。 · Null:变量不包含一个有效的值。类似于VBScript的Nothing。 · Boolean。 · String。 · Number。 · Object。 JScript提供了一个typeof函数,返回表示数据的类型的字符串,例如: StrString = ‘30’; IntInteger = 12; Response.Write(typeof(strString)); //Write ‘string’ in the resulting page Response.Write(typeof(intInteger)); //Write ‘number’ in the resulting page 每种数据类型都有toString方法和valueOf方法,toString方法将变量的值转为一个字符串返回,valueOf方法把变量的值作为它的原有数据类型返回。 (9) JScript的级联和加法问题 JScript在许多方面不同于VBScript,在一定程度上是因为没有“&”级联运算符可用。当使用加法运算符时,它先检查变量的数据类型以决定要做什么。如果两个变量都是数值,结果是数值的和。如果一个或两个是字符串,结果是字符串的级联: strString = ‘30’; intInteger = 12; Response.Write(intInteger + intInteger); //Writes 24 in the resulting page Response.Write(strString + intInteger); //Writes 3012 in the resulting page Response.Write(intInteger + strString); //Writes 1230 in the resulting page 如果进行加法的值超过两个,要看执行的顺序。下面的代码进行相应的示范: intInteger = 12; Response.Write(intInteger + intInteger + “<P>”); //Result is ‘24<P>’ Response.Write(“<P>” + intInteger + intInteger + “</P>”); ; &nbs p; //Result is ‘<P>1212</P>’ 在第一种情况下,两个数相加,结果被转换为一个字符串并与“<P>”字符串进行级联。在第二种情况下,第一个运算符是一个字符串和一个数的级联,所以数被转换为一个字符串。而后,所有的运算符都是级联运算符。为了避免这个问题,可以使用括号强制第一个运算符是两个数值的加法: Response.Write(“<P>” + (intInteger + intInteger) + “</P>”); ; &nbs p; //Result is ‘<P>24</P>’ 1. Web应用程序中的组件管理 在ASP中使用虚拟应用程序的第二个主要方面是:具有较好的对在脚本代码内实例化和执行的组件进行管理的能力。先不讨论有关它怎样进行工作以及为什么会如此有用的详细情况,在学习ASP组件的部分时再讨论相关内容。 这里非常简要地介绍在ASP网页(此ASP网页在该应用程序中)中使用组件时,如何对一个虚拟应用程序在Properties对话框(在Internet Services Manager中)进行设置。 在一个虚拟应用程序的Properties对话框的Home Directory页的底部,有两个组合框,为Execute Permissions和 Application Protection,如图3-9所示: 图3-9 Execute Permissions和Application Protection组合框 None ScriptsOnly Scriptsand Executables Execute Permissions选项控制可在该虚拟应用程序中执行的类型,而Application Protection选项影响可执行文件和组件运行的方式。在第1章中已经讨论过可用的选项,但是在这里再重复一次,Application Protection选项如表3-2所示: Low(IIS Process) Medium(Pooled) High(Isolated) 3.2.2 ASP会话的定义 图3-10 Home Directory页 图3-11 App Options页 |
ASP 3.0高级编程(七)相关推荐
- ASP 3.0高级编程(一)
来 源: 互联网 作 者: 不祥 发表日期: 2005-12-17 15:11:10 阅读次数: 96 文章标题: ASP → ASP 3.0高级编程(一) 查看权限: 普通文章 ...
- ASP 3.0高级编程(四)
来 源: 互联网 作 者: 不祥 发表日期: 2005-12-17 15:15:17 阅读次数: 85 文章标题:ASP → ASP 3.0高级编程(四) 查看权限: 普通文章 ...
- C# 6 与 .NET Core 1.0 高级编程 - 41 ASP.NET MVC(中)
译文,个人原创,转载请注明出处(C# 6 与 .NET Core 1.0 高级编程 - 41 ASP.NET MVC(中)),不对的地方欢迎指出与交流. 章节出自<Professional C# ...
- C# 6 与 .NET Core 1.0 高级编程 - 41 ASP.NET MVC(上)
译文,个人原创,转载请注明出处(C# 6 与 .NET Core 1.0 高级编程 - 41 ASP.NET MVC(上)),不对的地方欢迎指出与交流. 章节出自<Professional C# ...
- ASP.NET MVC5 高级编程 第3章 视图
参考资料<ASP.NET MVC5 高级编程>第5版 第3章 视图 3.1 视图的作用 视图的职责是向用户提供界面. 不像基于文件的框架,ASP.NET Web Forms 和PHP ,视 ...
- ASP.NET XML高级编程(一、XML技术简介)
[ASP.NET XML高级编程读书笔记系列] System.Xml: .使用基于拉操作的流API或文档对象模型(DOM)创建和处理XML文档: .查询XML文档(使用XPath): .转换XML文 ...
- 【C#8.0 and .NET Core 3.0 高级编程学习笔记】
@C#8.0 and .NET Core 3.0 高级编程学习笔记 前言 为了能精细地完成对C#语言的学习,我决定选择一本书,精读它,理解它,记录它.我想选择什么书并不是最重要的,最重要的是持之以恒的 ...
- 《ASP.NET MVC3高级编程》学习笔记2
我的目标是月底前看完.今天偷懒了,只看了一点. 第4章:模型 Asp.Net MVC中的模型指是那些发送信息到数据库,执行业务计算并在视图中渲染的模型对象. 这些对象代表应用程序关注的领域,模型就是程 ...
- UNIX_C 高级编程七
tcp协议和udp协议的比较 tcp协议 -- 传输控制协议,面向链接的协议,类似打电话 -- 建立链接=> 进行通信 => 断开链接 -- 在通信的整个过程中全程保持连接 -- 保证了数 ...
最新文章
- python 代码转成 c_如何将此C代码转换为Python?
- Linux命令——mv
- 既然选择了远方 便只顾风雨兼程
- 李宏毅深度学习——梯度下降
- windbg bp condition
- protobuf string类型_Protobuf3 使用其他消息类型
- java实验多线程机制_使用Java多线程的同步机制编写应用程序 PDF 下载
- convert转换虚拟机注意事项及相关经验介绍
- Win10删除文件需要管理员权限则怎么办?
- 【组合逻辑电路】——通用译码器
- 利用 MATLAB 编程实现 Newton 法与阻尼 Newton 法
- 转:红帽旗下Linux的版本说明RedHat、CentOS、Fedora、OEL等
- 烧钱数亿后,趣店罗敏的预制菜业务从兴到衰
- 端游开发中用什么技术可以让用户更短时间内体验游戏?端游分发
- UVA11134 Fabled Rooks
- Android 高德地图计算 Circle 计算上下左右四个点经纬度,Circle和Polygon是否全部包含,计算地图中点到线的最短距离
- Haploview做单倍型分析
- PAT B1032. 挖掘机技术哪家强 (20)
- SSM-Mybatis通用Mapper
- 200行Html5+CSS3+JS代码实现动态圣诞树
热门文章
- 分享:js大小写转换的代码
- js中如何判断是否是数组?
- 基于Origin的一种SCI论文中给散点等图添加标签的方法
- php APP微信支付流程,PHP实现APP微信支付的实例讲解
- 华为云——AI人脸编辑让Lena微笑
- 找了这么多毕业设计题目,反而不知道选哪个了
- 如何选择信安系统,IDC/ISP/CDN信安设备,信安系统评测,备案管理系统
- Semantic Evaluation
- 超级画板自动推理功能初探
- 解决git clone与git push出现的若干问题:Failed to connect to github.com port 443: Timed out