zoukankan      html  css  js  c++  java
  • 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

    %>

  • 相关阅读:
    InfoPath Resource Sites
    深入浅出SharePoint——批量导入数据
    理解Javascript_07_理解instanceof实现原理
    二分图匹配(匈牙利算法模板)
    不錯的幾個ICON搜尋網站推廌
    Sql Server 执行计划及Sql查询优化
    SCSI RAID与IDE RAID性能对比说明
    Lucene.Net的中文分词组件AdvancedChineseAnalyzer
    NAS和SAN存储和恢复技术介绍
    百万数据查询优化技巧三十则
  • 原文地址:https://www.cnblogs.com/zhouhbing/p/4207636.html
Copyright © 2011-2022 走看看