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 ="headers\header.inc" -->

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

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

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

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

<%

fname="header.inc"

%>

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

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

<%

For i = 1 To n

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

Next

%>

asp基础的更多相关文章

  1. ASP 基础三 SQL指令

    一 增删改查 <% set conn=server.CreateObject("adodb.connection") DSNtemp="DRIVER={SQL Se ...

  2. ASP 基础二 内置对象

    一 Request 二 Response 三 Application 四 Session 五 Server <script language="vbscript" runat ...

  3. ASP 基础一 基本语法

    一 声明变量 二 给变量赋值 三 循环 四 case <html> <head title="test hello world"> </head> ...

  4. ASP 基础一 网站开发 初步认识

    一 .ASP 与 ASP.NET的区别 i.ASP是解释型的动态语言,asp文件包含了前端和动态语言VBScript,来实现对服务器的交互,运行在IIS.PWS等WEB服务器上 II.ASP.NET是 ...

  5. ASP 基础一

    ASP是什么? •ASP代表Active Server Pages(动态服务器页面) •需在IIS中运行的程序 我自己的理解就是UI和逻辑代码同在一个页面中,而缺点就是不易维护.code-Behind ...

  6. ASP.NET之旅—再一次与ASP谋面

    ASP对我来说已经不是新名词了,因为在一年以前就开始了ASP的学习,那时候虽然效果很不好,但是对ASP还是有了一些最基础的了解.ASP.NET是在ASP基础上增加了一些.NET的一些特性,基础的东西还 ...

  7. 精通Web Analytics 2.0 (4) 第二章:选择你的网络分析灵魂伴侣的最佳策略

    精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第二章:选择你的网络分析灵魂伴侣的最佳策略 在Web Analytics 2.0的新世界秩序中,您必须跳出"单一真理来 ...

  8. 入坑IT都快十年了

    一起帮的开发直播已经告一段落:一是主体的功能差不多都实现了,二是用到的架构技术都展示得差不多了.以后就算继续开发,也应该都是一些“技术上”重复的工作而已.整个直播过程耗时近半年,SVN提交1062次, ...

  9. js收藏代码

    js收藏代码~ 1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键 <table border oncon ...

随机推荐

  1. 解题:POI 2015 Pieczęć

    题面 发现好像没有什么好做法,那就模拟么=.= 以印章左上角的'x'为基准,记录印章上'x'的相对位置模拟.记录相对位置是因为可能有这种情况↓ 直接模拟是会漏掉的=.= #include<cst ...

  2. 【51nod1965】奇怪的式子

    Portal --> 51nod1965 Solution 怎么说呢..这题..做的有点痛苦.. 首先看这个式子长得..比较奇怪,指数里面那个加号有点烦人,而且这个函数不是一个积性函数也有点烦人 ...

  3. php使用 SImpleXMLElement 把 xml 和 数组 互转

    <?php $xml = <<<XML <xml> <ToUserName><![CDATA[toUser]]></ToUserNam ...

  4. tp between

    $a = array( 'time' => array('between',[c,d]) ); c<= time <= d

  5. SpringBoot (四) :thymeleaf 使用详解

    原文出处: 纯洁的微笑 在上篇文章< springboot(二):web综合开发 >中简单介绍了一下thymeleaf,这篇文章将更加全面详细的介绍thymeleaf的使用.thymele ...

  6. [LeetCode] 25. Reverse Nodes in k-Group ☆☆☆

    Given a linked list, reverse the nodes of a linked list k at a time and return its modified list. k  ...

  7. Order By 问题集合

    问题(一):Order By 多个参数排序 在做多字段的排序的时候我们经常会会用到该语句. 所以多参数排序是从左到右的局部排序,修改的范围只有前面参数(几个参数)相同的情况下在排序. select * ...

  8. Eclipse中使用Maven创建项目 (转)

    转自:http://www.gogogogo.me/development/eclipse-maven-webapp.html       Apache Maven是一个优秀的项目构建和管理工具,许多 ...

  9. Oracl闪回数据命令。

    当数据库操作没有备份,并且误删数据.可闪回任何 当前闪回15分钟前数据库状态.  alter table BASE_APPOINT_LOG enable row movement;flashback  ...

  10. Codechef Course Selection

    Home » Practice(Hard) » Course Selection Course Selection Problem Code: RINSubmit https://www.codech ...