当前位置:首页 » 网站技术 » ASP

包含文件

...

  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请求将被发送给服务器:

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

  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属性计算一个特殊类型的值的出现次数。

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

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

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

  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>


继续阅读
访问数据库 [1]
访问数据库 [2]
访问数据库 [3]
调试 ASP 脚本 [1]
调试 ASP 脚本 [2]
维护 ASP 应用程序的安全 [1]
维护 ASP 应用程序的安全 [2]
ASP.NET 简介
asp.net教程之一:概论(1)
发表评论

昵称:
最新评论
暂时没有评论!