SSI 指令为用户提供在 Web 服务器处理之前将一个文件的内容插入到另一个文件的方法。ASP 只使用这一机制的 #include 指令。要在 .asp 文件中插入一个文件,使用下面的语法:

<!--#include virtual | file ="filename"-->

virtual 和 file 关键字指示用来包含该文件的路径的类型,filename 是您想包含的文件的路径和名称。

被包含文件不要求专门的文件扩展名;但是,为被包含文件赋予 .inc 扩展名以便和其他类型文件相区分是一个良好的编程习惯。

使用 Virtual 关键字

使用 Virtual 关键字指出路径开始于虚拟目录。例如,如果一个被命名为 Footer.inc 的文件属于一个名为 /Myapp 的虚拟目录,则下面的一行将把 Footer.inc 的内容插入到包含该行的文件中:

<!--#include virtual ="/myapp/footer.inc"-->

使用 File 关键字

使用 file 关键字指示使用相对路径。相对路径开始于含有该包含文件的目录。例如,如果您的文件位于目录 Myapp 中,而文件 Header1.inc 在 Myapp\Headers 中,下面的一行将把 Header1.inc 插入到您的文件中:

<!--#include file ="headers/header1.inc"-->

注意,到被包含文件 Headers/header1.inc 的路径是相对于包含文件的;如果包含 #include 语句的脚本不在 /Myapp 目录中,那么该语句将不起作用。

如果在 Internet 服务管理器中的“启用上层目录”选项被选中,则也可以使用 file 关键字和 ../ 语法包含父目录即上一层目录中的文件。有关命令,请参阅 配置 ASP 应用程序。

被包含文件的位置

被包含文件可以在您的 Web 站点内的某个目录中,也可以在您的 Web 站点之外。通常,您应该使被包含文件位于 Web 站点的目录中。如果一个被包含文件位于您的 Web 站点内,则当浏览器下次请求包含文件时,将显示对被包含文件的改变。但是,如果被包含文件位于您的 Web 站点之外,直到 ASP 应用程序重新启动或 Web 服务器重新启动时,这种改变才能体现出来。ASP 检测在应用程序命名空间中(在应用程序的起始目录下)的任何包含文件的改变。

包含文件:提示和警告

一个被包含文件也可以包含其他的文件。如果 #include 指令没有导致循环,一个 .asp 文件可以多次包括同一个文件。例如,如果文件 First.asp 包含文件 Second.inc,则 Second.inc 一定不能再包含 First.asp。一个文件也不能包含自身。ASP 检测此类循环或嵌套错误,并在检测到时产生一个错误消息,同时停止处理被请求的 .asp 文件。

ASP 在执行脚本命令之前包含文件。因此,不能用脚本命令去创建被包含文件的名称。例如,下面的脚本将不能打开 Header1.inc,因为 ASP 会在它分配一个文件名给变量 name 之前先执行 #include 指令。

<!-- This script will fail -->

<% name=(header1 & ".inc") %>

<!--#include file="<%= name %>"-->

脚本命令和过程必须完全包含在脚本定界符 <% 和 %> 、HTML 标记 <SCRIPT> 和 </SCRIPT> 或 HTML 标记 <OBJECT> 和 </OBJECT> 中。也就是说,不能在一个 .asp 包含文件中打开一个脚本定界符,然后在一个被包含的文件中才关闭该定界符;脚本或脚本命令必须是一个完整的单元。例如,下面的脚本将无法运行:

<!-- This script will fail -->

<%

For i = 1 To n

statements in main file

<!--#include file="header1.inc" -->

Next

%>

下面的脚本将正常运行:

<%

For i = 1 to n

statements in main file

%>

<!--#include file="header1.inc" -->

<% Next %>

--------------------------------------------------------------------------------

使用 HTML 表格

使用 ASP Request 对象,您可以创建一个简单而功能强大的脚本来收集和处理 HTML 表格数据。在本主题中,您将不仅学会如何创建基本的表格处理脚本,而且还将获得用于验证 Web 服务器和用户浏览器上的表格信息的一些有用技术。

关于 HTML 表格

HTML 表格是收集 Web 信息最常用的方法,是在 Web 页上提供用户界面控件的特殊的 HTML 标记的排列。文本框、按钮和复选框都是典型的控件,这些控件使用户和 Web 页实现交互,并且将信息提交给 Web 服务器。

下面的 HTML 示例产生一个表格,在表格中,用户可以输入姓名、年龄并包含一个将这些信息提交给 Web 服务器的按钮。该表格也包含了一个隐含的控件(Web 浏览器不显示),可以用该控件向 Web 浏览器传递附加信息。

<FORM METHOD="POST" ACTION="myfile.asp">

<INPUT TYPE="text" NAME="firstname">

<INPUT TYPE="text" NAME="lastname">

<INPUT TYPE="text" NAME="age">

<INPUT TYPE="hidden" NAME="userstatus" VALUE= "new">

<INPUT TYPE="submit" VALUE="Enter">

</FORM>

处理 ASP 输入的表格

在表格向 Web 服务器提交信息时,用户的 Web 浏览器请求用 HTML <FORM > 标记的 ACTION 属性所指定的 .asp 文件(在前面的例子中,该文件被称为 Myfile.asp)。.asp 文件包含了处理表格值(如显示结果表或从数据库查询信息)的脚本。

可以通过三种途径用 .asp 文件收集 HTML 表格的值

静态的 .htm 文件可以包含一个将其数值邮送给 .asp 文件的表格。

.asp 文件可以创建一个将其信息邮送给另一个 .asp 文件的表格。

.asp 文件可以创建一个将其信息邮送给自身的表格,即包含该表格的文件。

前两个方法的操作方式相同,当表格与网关程序交互时,除 ASP 之外,可以包含读取和响应用户选择的命令。

创建一个包含表格定义且传送信息给自身的 .asp 文件较复杂,但却是有很强功能的处理表格的方法。这一过程在 验证表格输入 中演示。

获得表格输入

ASP Request 对象提供了两种集合,在很大程度上简化了检索附加在 URL 请求上的表格信息的任务。

QueryString 集合

QueryString 集合获取作为跟在请求的 URL 的问号后面的文本传递给 Web 服务器的值。通过使用 HTTP GET 方法或手工将表格的值添加到 URL,表格的值可以被附加在请求的 URL 之后。

例如,如果先前的表格示例使用 GET 方法 (ACTION = "GET") 且用户键入 Jeff、Smith 和 30,那么下面的 URL 请求将被发送给服务器:

[url]http://scripts/Myfile.asp?firstname=Jeff&lastname=Smith&age=30&userstatus=new[/url]

Myfile.asp 包含下面的表格处理脚本:

Hello, <%= Request.QueryString("firstname") %> <%= Request.QueryString("lastname") %>.

You are <%= Request.QueryString("age") %> years old.

<%

If Request.QueryString("userstatus") = "new user" then

Response.Write"This is your first visit to this Web site!"

End if

%>

在这种情况下,Web 服务器将返回下面的文本给用户的 Web 浏览器:

Hello, Jeff Smith. You are 30 years old. This is your first visit to this Web site!

QueryString 集合有一个可选参数,可用来访问显示在请求正文中的多个值中的一个。也可以使用 Count 属性计算一个特殊类型的值的出现次数。

例如,表格包含一个多项目的列表框可以提交下面的请求:

[url]http://list.asp?food=apples&food=olives&food=bread[/url]

您也可以使用下面的命令去对多个值计数:

Request.QueryString("food").Count

如果想显示多个值的类型,List.asp 应包含下面的脚本;

<%Total = Request.QueryString("food").Count%>

<%For i = 1 to Total%>

<%= Request.QueryString("food")(i) %> <BR>

<%Next%>

上述脚本将显示:

apples

olives

bread

Form 集合

当使用 HTTP GET 方法去向 Web 服务器传递长而复杂的表格值时,将可能丢失信息。大多数的 Web 服务器倾向于严格控制 URL 查询字符串的长度,以便用 GET 方法传送的冗长的表格值被截断。如果您需要从表格发送大量信息到 Web 服务器,就必须使用 HTTP POST 方法。此法用于在 HTTP 请求正文中发送表格数据,而且发送的字符的个数可以无限多。也可以使用 ASP Request 对象的 Form 集合检索用 POST 方法发送的值。

Form 集合与 QueryString 集合存储数值的方式相同。例如,如果用户用一长串名称填充表格,您就可以用下面的脚本检索这些名称:

<% For i = 1 to Request.Form.Count %>

<% =Request.Form("names")(i) %>

<% Next %>

验证表格输入

一个好的表格处理脚本在处理数据前,应先验证输入表格的信息是否有效。验证脚本可以检验用户输入到表格的信息类型是否正确。例如,如果您的 Web 站点包含一个表格,该表格允许用户计算财务信息,那么在处理结果之前,需要验证用户确实输入了数值信息而不是文本。

一个非常方便的验证表格输入的方法是创建一个向自身传递信息的表格。在这种情况下,.asp 文件包含可获取信息的表格。例如,下面的脚本通过向自身传递信息来验证用户是否在 "age" 表格字段中输入了数值:

<% If Isnumeric(Request.QueryString("Age")) then %>

<p>Hello, your age is <%=Request.QueryString("age")%>

<%Else %>

<p>Please enter a numerical age.

<%End If %>

<FORM METHOD= "POST" ACTION="verify.asp" >

Name: <INPUT TYPE="text" NAME="Name" >

Age: <INPUT TYPE="text" NAME="Age" >

<INPUT TYPE="submit" VALUE="Enter">

</FORM>

在这个例子中,脚本也在包含表格的同一 Verify.asp 文件中。表格通过在 ACTION 属性中指定 Verify.asp 向自身传送信息。

您也可以创建客户端脚本来检验用户是否输入了有效的信息。验证用户在 Web 浏览器上的输入除了更迅速地向用户提示表格项错误外,还可以减少 Web 服务器的网络流量。下面的脚本运行在用户的 Web 浏览器上,在将信息提交到 Web 服务器之前,验证用户信息。

<SCRIPT LANGUAGE="VBScript">

<!--

Sub btnEnter_OnClick

Dim TheForm

Set TheForm = Document.MyForm

If IsNumeric(TheForm.Age.Value) Then

TheForm.submit

Else

Msgbox "Please enter a numerical age."

End if

End Sub

//-->

</SCRIPT>

<FORM METHOD= "POST" NAME= MyForm ACTION="myfile.asp" >

Name: <INPUT TYPE="text" NAME="Name" >

Age: <INPUT TYPE="text" NAME="Age" >

<INPUT TYPE="button" NAME="btnEnter" VALUE="Enter">

</FORM>

本文转自starger51CTO博客,原文链接: http://blog.51cto.com/starger/17126,如需转载请自行联系原作者

asp教程七:包含文件相关推荐

  1. asp.net core 教程(七)-异常处理、静态文件

    Asp.Net Core-异常处理 Asp.Net Core-异常处理 在这一章,我们将讨论异常和错误处理.当 ASP.NET Core应用程序中发生错误时,您可以以各种不同的方式来处理.让我们来看看 ...

  2. ASP.NET 5系列教程(七)完结篇-解读代码

     在本文中,我们将一起查看TodoController 类代码. [Route] 属性定义了Controller的URL 模板: [Route("api/[controller]&quo ...

  3. 七牛云详细教程(包含与阿里云建立连接)

    七牛云详细教程(包含与阿里云建立连接) 1.七牛云简介 不管是设计师,还是开发者,亦或是个人.公司.我们有时会需要将图片存在网络上,然后用链接来分享给他人.或是,用来给网站做图片外链,通过CDN加速, ...

  4. R语言七天入门教程六:文件相关操作

    R语言七天入门教程六:文件相关操作 一.文件的读写 R 语言作为统计学编程语言,常常需要处理大量数据,而这些数据通常会从文件中进行读取,因此文件读写在R语言中是非常重要的操作.在R语言中,用到最多的文 ...

  5. 【ASP.NET教程-WP教程08】ASP.NET Web Pages - 文件-在ASP.NET Web Pages中处理文件和实现文件上传功能的介绍

    ASP.NET Web Pages - 文件处理与上传 在ASP.NET Web Pages开发中,文件处理和上传是常见的任务之一.文件处理涉及到多个方面,包括文件的读取.写入.复制.移动和删除等操作 ...

  6. ASP.NET Web Pages – 文件夹简介

    ASP.NET Web Pages - 文件夹包括逻辑文件夹结构和物理文件夹结构,虚拟名称和物理名称,Web URL 和 Web 路径等. 逻辑文件夹结构 下面是典型的 ASP.NET 网站文件夹结构 ...

  7. EXTJS+ASP.NET上传文件带实时进度条代码

    一,文件夹 二,upLoad.cs是继承IHttpModule的类: usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usin ...

  8. MongoDB 教程七: MongoDB和PHP结合开发

    视频:MongoDB 教程七: MongoDB和PHP结合开发 Linux上安装 MongoDB PHP扩展 在终端上安装 你可以在linux中执行以下命令来安装MongoDB 的 PHP 扩展驱动 ...

  9. ASP.NET 如何操作文件

    本文由chenyangasp版权所有,可以转载,复制,粘贴,并请注明出处,但不得修改! 在asp.net操作文件的所有concept都在system.io  namespace中,这个namespac ...

最新文章

  1. 90后教授:回国是用数学计算出的“最优解”
  2. 为git服务器配置gitosis管理权限
  3. 【通知】《深度学习之摄影图像处理》配套代码开源!
  4. python的yield和yield from
  5. Linux LVM与磁盘配额详解
  6. React之props的简写方式和报错示范
  7. 初识数据库 1006
  8. maven asm 依赖配置_Maven教程_v20201119
  9. Linux 命令(29)—— ls 命令
  10. selinux-setroubleshoot安装及详解
  11. mac install: /usr/bin/unrar: Operation not permitted
  12. css 元素上下居中
  13. python e_python 常数e
  14. 微新小程序封装wx.request (使用回调函数)
  15. mfc利用SQL、DAO调用access数据库
  16. 百度网盘网页端视频倍速方法
  17. sqlserver常用语句(报表,递归,分页等)
  18. shutter截图编辑功能
  19. 解决浏览器主页被劫持问题
  20. Android接电话流程、Phone来电过程、phone上层来电话解析 接通电话

热门文章

  1. 隐藏文字的另一种方法
  2. tomcat日志,用户以及启动时的一些问题
  3. [读书笔记] 史玉柱自述:我的营销心得
  4. 蓝桥杯第七届国赛JAVA真题----平方末尾
  5. Hadoop Balancer运行速度优化
  6. oracle rac实例切换,RAC+单实例DG的切换
  7. java文本域 图片_java swing中给面板或者文本域设置背景图片的方法!
  8. mysql 从库 问题_一篇文章帮你解决Mysql 中主从库不同步的问题
  9. 古风一棵桃花树简笔画_为什么,很多农村家庭的院子里,会喜欢种一棵樱桃树呢?...
  10. 数据结构之结构体复习