asp基础

0.1在浏览器中通过查看源代码的方式是无法看到 ASP 源代码的,你只能看到由 ASP 文件输出的结果,而那些只是纯粹的 HTML 而已。这是因为,在结果被送回浏览器前,脚本已经在服务器上执行了。

0.2通常情况下,ASP 文件包含 HTML 标签,类似 HTML 文件。不过,ASP 文件也能够包含服务器端脚本,这些脚本被分隔符 <% 和 %> 包围起来。

<html>

<body>

<%

response.write("Hello World!")

%>

</body>

</html>

等效

<html>

<body>

<%="Hello World!"%>

</body>

</html>

0.3你可以在 ASP 中使用若干种脚本语言。不过,默认的脚本语言是 VBScript:

 

1定义变量和页面写文字

<html>

<body>

 

<%

dim name

name="Donald Duck"

response.write("My name is: " & name)

%>

</body>

</html>

1.2 数组

<%

Dim fname(5),i

fname(0) = "George"

fname(1) = "John"

fname(2) = "Thomas"

fname(3) = "James"

fname(4) = "Adrew"

fname(5) = "Martin"

 

For i = 0 to 5

      response.write(fname(i) & "<br />")

Next

%>

2 基于时间的问候语

<%

dim h

h=hour(now())

response.write("<p>" & now())

response.write(" (Beijing Time) </p>")

If h<12 then

   response.write("Good Morning!")

else

   response.write("Good day!")

end if

%>

3 子函数

3.1 两种调用子函数

<html>

<head>

<%

sub vbproc(num1,num2)

response.write(num1*num2)

end sub

%>

</head>

<body>

<p>您可以像这样调用一个程序:</p>

<p>结果:<%call vbproc(3,4)%></p>

<p>或者,像这样:</p>

<p>结果:<%vbproc 3,4%></p>

</body></html>

3.2js和vb的调用

<html>

<head>

<%

sub vbproc(num1,num2)

Response.Write(num1*num2)

end sub

%>

<script  language="javascript" runat="server">

function jsproc(num1,num2)

{

Response.Write(num1*num2)

}

</script>

</head>

<body>

<p>结果:<%call vbproc(3,4)%></p>

<p>结果:<%call jsproc(3,4)%></p>

</body>

</html>

VBScript 与 JavaScript 之间的差异

当从一个用 VBScript 编写的 ASP 文件中调用 VBScript 或者 JavaScript 子程序时,可以使用关键词 "call",后面跟着子程序名称。假如子程序需要参数,当使用关键词 "call" 时必须使用括号包围参数。假如省略 "call",参数则不必由括号包围。假如子程序没有参数,那么括号则是可选项。

当从一个用 JavaScript 编写的 ASP 文件中调用 VBScript 或者 JavaScript 子程序时,必须在子程序名后使用括号。

4 表单

4.1 post方式

html>

<body>

<form action="/example/aspe/demo_aspe_simpleform.asp" method="post">

您的姓名:<input type="text" name="fname" size="20" />

<input type="submit" value="提交" />

</form>

<%

dim fname

fname=Request.Form("fname")

If fname<>"" Then

      Response.Write("您好!" & fname & "!<br />")

      Response.Write("今天过得怎么样?")

End If

%>

</body>

</html>

4.2 get方式

<html>

<body>

<form action="/example/aspe/demo_aspe_reqquery.asp" method="get">

您的姓名:<input type="text" name="fname" size="20" />

<input type="submit" value="提交" />

</form>

<%

dim fname

fname=Request.QueryString("fname")

If fname<>"" Then

      Response.Write("你好!" & fname & "!<br />")

      Response.Write("今天过得怎么样?")

End If

%>

</body>

</html>

Request.Form 命令用于搜集使用 "post" 方法的表单中的值。使用 POST 方法从表单传送的信息对用户是不可见的,并且对所发送信息的量也没有限制。

Request.QueryString 命令用于搜集使用 method="get" 的表单中的值。使用 GET 方法从表单传送的信息对所有的用户都是可见的(出现在浏览器的地址栏),并且对所发送信息的量也有限制。

4.3单选项按钮的表单

<html>

<%

dim cars

cars=Request.Form("cars")

%>

<body>

<form action="/example/aspe/demo_aspe_radiob.asp" method="post">

<p>请选择您喜欢的汽车:</p>

<input type="radio" name="cars"

<%if cars="Volvo" then Response.Write("checked")%>

value="Volvo">Volvo</input>

<br />

<input type="radio" name="cars"

<%if cars="Saab" then Response.Write("checked")%>

value="Saab">Saab</input>

<br />

<input type="radio" name="cars"

<%if cars="BMW" then Response.Write("checked")%>

value="BMW">BMW</input>

<br /><br />

<input type="submit" value="提交" />

</form>

<%

if cars<>"" then

   Response.Write("<p>您喜欢的汽车是" & cars & "</p>")

end if

%>

</body>

</html>

5 cookie记录

<%

dim numvisits

response.cookies("NumVisits").Expires=date+365

numvisits=request.cookies("NumVisits")

if numvisits="" then

   response.cookies("NumVisits")=1

   response.write("欢迎!这是您第一次访问本页面。")

else

   response.cookies("NumVisits")=numvisits+1

   response.write("之前,您已经访问过本页面 ")

   response.write(numvisits & " 次。")

end if

%>

<html>

<body>

</body>

</html>

"Response.Cookies" 命令用于创建 cookie。

注意:Response.Cookies 命令必须位于 <html> 标签之前。

在下面的例子中,我们会创建一个名为 "firstname" 的 cookie,并向其赋值 "Alex":

<%

Response.Cookies("firstname")="Alex"

%>

向 cookie 分配属性也是可以的,比如设置 cookie 的失效时间:

<%

Response.Cookies("firstname")="Alex"

Response.Cookies("firstname").Expires=#May 10,2020#

%>

在下面的例子中,我们取回了名为 "firstname" 的 cookie 的值,并把值显示到了页面上:

<%

fname=Request.Cookies("firstname")

response.write("Firstname=" & fname)

%>

带有键的 cookie

如果一个 cookie 包含多个值的一个集合,我们就可以说 cookie 拥有键(Keys)。

在下面的例子中,我们会创建一个名为 "user" 的 cookie 集。"user" cookie 拥有包含用户信息的键:

<%

Response.Cookies("user")("firstname")="John"

Response.Cookies("user")("lastname")="Adams"

Response.Cookies("user")("country")="UK"

Response.Cookies("user")("age")="25"

%>

读取带有键值得cookie

假设您的服务器将所有的这些 cookie 传给了某个用户。

现在,我们需要读取这些 cookie。下面的例子向您展示如何做到这一点(请注意,下面的代码会使用 HasKeys 检查 cookie 是否拥有键):

<html>

<body>

<%

dim x,y

 for each x in Request.Cookies

  response.write("<p>")

  if Request.Cookies(x).HasKeys then

    for each y in Request.Cookies(x)

      response.write(x & ":" & y & "=" & Request.Cookies(x)(y))

      response.write("<br />")

    next

  else

    Response.Write(x & "=" & Request.Cookies(x) & "<br />")

  end if

  response.write "</p>"

next

%>

</body>

</html>

输出:

firstname=Alex

user:firstname=John

user:lastname=Adams

user:country=UK

user:age=25

获取一个值,通过该值指示 Cookie 是否具有子键。如果 Cookie 具有子键,则为 true;否则为 false。 默认值为 false。

6 变量

如需声明供多个 ASP 文件使用的变量,请将变量声明为 session 变量或者 application 变量。

Session 变量

Session 变量用于存储单一用户的信息,并且对一个应用程序中的所有页面均有效。存储于 session 中的典型数据是姓名、id 或参数。

Application 变量

Application 变量同样对一个应用程序中的所有页面均有效。Application 变量用于存储一个特定的应用程序中所有用户的信息。

7 session对象

ASP 通过为每位用户创建一个唯一的 cookie 的方式解决了这个问题。cookie 被传送至客户端,它含有可识别用户的信息。这种接口被称作 Session 对象。

Session 对象用于存储关于用户的信息,或者为一个用户的 session 更改设置。存储于 session 对象中的变量存有单一用户的信息,并且对于应用程序中的所有页面都是可用的。存储于 session 对象中的信息通常是 name、id 以及参数。服务器会为每个新的用户创建一个新的 Session,并在 session 到期时撤销掉这个 Session 对象。

如用户没有在规定的时间内在应用程序中请求或者刷新页面,session 就会结束。默认值为 20 分钟。

下面的例子设置了 5 分钟的超时时间间隔:

<%

Session.Timeout=5

%>

要立即结束 session,可使用 Abandon 方法:

<%

Session.Abandon

%>

一旦值被存入 session 变量,它就能被 ASP 应用程序中的任何页面使用:

移除session 变量

在下面的例子中,假如 session 变量 "age" 的值小于 18,则移除 session 变量 "sale":

<%

If Session.Contents("age")<18 then

  Session.Contents.Remove("sale")

End If

%>

如需移除 session 中的所有变量,请使用 RemoveAll 方法:

<%

Session.Contents.RemoveAll()

%>

8  Application 对象

Application 对象用于存储和访问来自任何页面的变量,类似于 session 对象。不同之处在于,所有的用户分享一个 Application 对象,而 session 对象和用户的关系是一一对应的。

Application 对象存有会被应用程序中的许多页面使用的信息(比如数据库连接信息)。这意味着可以从任何的页面访问这些信息。同时也意味着你可在一个地点改变这些信息,然后这些改变会自动反映在所有的页面上

创建 application("users")=1 建立变量users 赋值1

访问 Application 变量的值Application("users")

遍历Application.Contents

contents 集中的项目数量Application.Contents.Count

对象的值 Application.StaticObjects

我们可以使用 "Lock" 方法来锁定应用程序。当应用程序锁定后,用户们就无法改变 Application 变量了(除了正在访问 Application 变量的用户)。我们也可使用 "Unlock" 方法来对应用程序进行解锁。这个方法会移除对 Application 变量的锁定:

<%

Application.Lock

  'do some application object operations

Application.Unlock

%>

9 #include 指令

#include 指令用于在多重页面上创建需重复使用的函数、页眉、页脚或者其他元素等。

Including 文件的语法:

如需在 ASP 中引用文件,请把 #include 命令置于注释标签之中:

<!--#include virtual="somefilename"-->

或者:

<!--#include file ="somefilename"-->

关键词 Virtual

关键词 virtual 指示路径以虚拟目录开始。

如果 "header.inc" 文件位于虚拟目录 /html 中,下面这行代码会插入文件 "header.inc" 中的内容:

<!-- #include virtual ="/html/header.inc" -->

关键词 File

关键词 File 指示一个相对的路径。相对路径起始于含有引用文件的目录。

假设文件位于 html 文件夹的子文件夹 headers 中,下面这段代码可引用 "header.inc" 文件的内容:

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

注意:被引用文件的路径是相对于引用文件的。假如包含 #include 声明的文件不在 html 目录中,这个声明就不会起效。

您也可以使用关键词 file 和语法 (..) 来引用上级目录中的文件。

重要事项:在脚本执行前,被引用的文件就会被处理和插入。

下面的代码无法执行,这是由于 ASP 会在为变量赋值之前执行 #include 命令:

<%

fname="header.inc"

%>

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

不能在脚本分隔符之间包含文件引用:

<%

For i = 1 To n

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

Next

%>

原文地址:https://www.cnblogs.com/zhouhbing/p/4207636.html