首页 | 站长免费中心 | 新手上路 | 网站运营 | 网页制作 | 图片设计 | 动画设计 | 网页编程 | 网页特效 | 本站专题 | 虚拟主机 | 域名注册 | 网站建设 | 程序下载
       免费空间资源 | 新闻咨询 | 免费域名 | 免费网盘 | 网站推广 | 网站策划 | 建站经验 | 网站优化 | 网页代码 | 源码下载 | 音乐小偷 | 网络赚钱 | 论坛交流
网站建设
网站建设
虚拟主机
虚拟主机
域名注册
域名注册
711网络首页
站长工具
站长工具
网站源码
网站源码
站长论坛
站长论坛

 711网络 网页编程ASP代码

asp简介和五大内置对象

来源: 互联网    日期:2007-1-13 15:10:10
 

    目 次 [转自:711网络工作室 http://www.tc711.com]

    1.ASP基础
    2.ASP的五大对象
    3.Request对象
    4.Response对象
    5.Server对象
    6.Application对象
    7.Session对象

    1.ASP基础 [转自:711网络工作室 http://www.tc711.com]

    Microsoft Active Server Pages,即读者朋友们所称的ASP,是一套微软开发的服务器端脚本环境,ASP内含于IIS之中,最新版的ASP 3.0内含于IIS 5.0之中。通过ASP大家可以结合HTML网页、ASP指令和ActiveX控件建立动态、交互且高效的WEB服务器应用程序。有了ASP你就不必担心客户的浏览器是否能运行你所编写的代码,因为所有的程序都将在服务器端执行,包括所有嵌在普通HTML中的脚本程序。当程序执行完毕后,服务器仅将执行的结果返回给客户浏览器,这样也就减轻了客户端浏览器的负担,大大提高了交互的速度。

    ASP总结起来有以下特点:     

  • 使用VBScript、JScript等简单易懂的脚本语言,结合HTML代码,即可快速地完成网站的应用程序。
  • 无须编译,容易编写,可在服务器端直接执行。
  • 使用普通的文本编辑器就可编写,为了更好地进行团队开发,微软特别开发一套开发工具Visual InterDev,它是一个集成的Web应用软件开发系统,包括开发、发行、以及管理数据库驱动的Web应用软件所需的所有功能。
  •  ASP所使用的脚本VbScript、JScript均在Web服务端执行,用户端的浏览器不需要能够执行这些脚本语言。
  • ASP的源程序不会被传到客户浏览器,因而可以避免所写的程序被他人剽窃,从而提高了网站的安全性。
  •  ActiveX Server Components具有无限的可扩充性。可以使用Visual Basic、Java、Visual C++、CoBol等编程语言来编写你所需要的ActiveX Server Component。
  •  ASP程序中可以包含纯文本、HTML标记以及脚本命令。你只需将.asp程序放在Web服务器的虚拟目录下(该目录必须要有可执行的权限),就可以通过WWW的方式访问ASP程序了。

    学习ASP要掌握的基础知识:

  • 学会MicroSoft Visual InterDev软件的使用。
  •  ASP服务器的安装和使用。
  • ASP是内含于IIS,象NT 4.0的IIS 4.0就含IIS 2.0,Windows 2000的IIS 5.0就含IIS 3.0。如果是普通Windows 98用户也没关系,微软也开发了一个专为学习ASP的服务器Personal Web Server,它一般包含在Windows 98正式版的add-ins/pws目录下,只要装了Personal Web Server,windows 98用户照样可以学习ASP编程。
  • 熟练掌握HTTP和HTML。
  • 熟练掌握VBScript或javascript。
  •  熟练掌握数据库知识。如:MicroSoft SQL Server,要熟悉ADO和ODBC,熟悉Transact-SQL语言。

    2.ASP的五大对象

    Request Object

    集合:querystring、Form、cookies、Servervariable

    主要作用:读取提交表单中的数据或cookies中的数据。

    Response Object

    属性:buffer、cookies、ContentType、Expires、ExpiresAbsolute、Status、IsClientConnected、CacheControl

    方法:write、redirect、end、flush、cookies、BinaryWrite、AddHeader、AppendToLog

    主要作用:向浏览器输出文本、数据和cookies以及控制在传送网页过程中的每一个阶段。

    Server Object

    属性:scripttimeout

    方法:CreateObject、mappath、URLencode、HTMLencode

    主要作用:创建COM对象和Scripting组件等。

    Application Object

    属性:lock和unlock

    主要作用:Application对象被用于放在同一个应用中多个用户之间的共享信息。

    Session Object

    属性:SessionID和TimeOut

    方法:Abandon

    主要作用:为单个用户保持数据。

[1] [2] [3]  

    3.Request对象

    Resquest对象代表由各客户程序发往HTTP的请求报文。事实上,Request对象的功能是单向的,它只能接收客户端Web页面提交的数据,与Response对象的功能刚好相反。

    Resquest接收数据时通过两个集合QueryString和Form来检索表单的数据,具体用哪一个集合,取决于Web页面提交数据的HTTP表单的Method属性,当Method属性值为“Get”时以QueryString,而Method属性值为“Post”时以Form。当省略了具体的集合名称时,ASP将以下面的顺序来搜索集合:QueryString -> Form -> Cookie ->ServerVariables。 

<html>
<head>
</head>
<body>
<form aciton="log.asp" method="Get" name="login">
<input type=text name=logid>
<input type=text name=password>
<input type=submit name=submit1 value="提交">
</form>
</body>
</html>  

      当数据提交到服务器端的log.asp文件后,在log.asp中使用Request对象得到用户提交的数据,加以判断用户是否合法。log.asp文件如下:

 <%
dim User
dim Passwd
User=Request.QueryString("logid")
Passwd=Request.QueryString("password")
if User="jeff" then
 if Passwd="123456" then
  Response.write "登录成功!"
 else
  Response.write "密码错误!"
 end if
else
 Response.write "用户名错误!"
end if
%>

    上面这个例子中Method属性使用了Get方法,所以使用Request.QueryString接收数据,相反若Method属性使用了Post方法,则使用Request.Form接收数据。

    而ServerVariables集合可用于提供有关随HTTP请求一起传递的头信息,它的引用格式为:

    Request.ServerVariables("关键字")

    其中的“关键字有:

    REMOTE_ADDR -> 可以知道客户端的IP

    URL -> 得到系统的URL路径

    PATH_TRANSLATED -> 当前Active Server Page的真实地址

    HTTP_UA_OS -> 浏览器所在的操作系统

    4.Response对象

    Response对象用于向客户端浏览器发送数据,用户可以使用该对象将服务器的数据以HTML的格式发送到用户端的浏览器,它与Request组成了一对接收、发送数据的对象,这也是实现动态的基础。下面介绍它常用的属性和方法。

    Buffer属性

    该属性用于指定页面输出时是否要用到缓冲区,默认值为False。当它为True时,直到整个Active Server Page执行结束后才会将结果输出到浏览器上。如:

<%Response.Buffer=True%>
<html>
<Head>
<title>Buffer示例</title>
</head>
<body>
<%
for i=1 to 500
 response.write(i & "<br>")
next
%>
</body>
</html>

    这页执行时,整个主页的所有内容会同时显示在浏览器上,这个主页会存在缓存区中直到脚本执行结束。

    Expires属性

    该属性用于设置浏览器缓存页面的时间长度(单位为分),必须在服务器端刷新。通过如下设置:    

<%Response.Expires=0%>

    通过在ASP文件中加入这一行代码,要求每次请求是刷新页面,因为Response一收到页面就会过期。

    Write方法

    该方法把数据发送到客户端浏览器,如:

    <%Response.write "Hello,world!"%>

    Redirect方法

    该方法使浏览器可以重新定位到另一个URL上,这样,当客户发出Web请求时,客户端的浏览器类型已经确定,客户被重新定位到相应的页面。如:

<html>
<head>
<title>Redirect示例</title>
</head>
<body>
<form aciton="formjump.asp" method="post">
<select name="wheretogo">
<option selected value="fun">Fun</option>
<option value="news">News</option>
<option value="sample">Sample</option>
</select>
<input type=submit name="jump" value="Jump">
</form>
</body>
</html>

      以上是提交的表单,下面是处理表单的文件formjump.asp:

<%response.buff=true%>
<html>
<head>
<title>Redirect示例</title>
</head>
<body>
<%
thisurl="http://jefenet.yesky.net/"
where=Request.form("wheretogo")
Select Case where
case "fun"
 response.redirect thisurl & "/fun/default.asp"
case "news"
 response.redirect thisurl & "/news/default.asp"
case "sample"
 response.redirect thisurl & "/sample/default.asp"
End Select
%>
</body>
<html>

    这个例子当用户选择了以后,按"Jump"按钮提交表单,服务器接到申请后调用formjump.asp判断后定位到相应的URL。不过这里有一点要注意,HTTP标题已经写入到客户浏览器,任何HTTP标题的修改必须在写入页内容之前,遇到这种问题时,可以如下做:

    在文件的开始<@ Language=..>后写:

    Response.Buffer=True

    在结尾定:

    Response.Flush

    这里Flush是Response的一个方法,它必须是Buffer属性设置为True时才能使用,否则会产生一个运行模式错误。另外一个Clear方法也是用于清除被缓存的页面,同样要Buffer属性设置为True时才能使用。

    End方法

    该方法用于告知Active Server当遇到该方法时停止处理ASP文件。如果Response对象的Buffer属性设置为True,这时End方法即把缓存中的内容发送到客户并清除冲区。所以要取消所有向客户的输出民,可以先清除缓冲区,然后利用End方法。如:

<%
Response.buffer=true
On error resume next
Err.clear
if Err.number<>0 then
 Response.Clear
 Response.End
end if
%>

上一页  [1] [2] [3]  

     5.Server对象

    Server对象是ASP中一个很重要的对象,许多高级功能都是靠它来完成的。它提供了对Active Server Pages和方法的使用,在这我主要介绍几个常用的方法。

    MapPath方法

    该方法返回指定文件的相对路径或物理路径。若Path以一个(/)或(\)开始,则MapPath方法返回路径时将Path视为完整的虚拟路径。若Path不是以斜杠开始,则MapPath方法返回同.asp文件中已有的路径相对的路径。

    如:test.asp文件位于C:\inetpub\wwwroot\myhome下,C:\inetpub\wwwroot为服务器的宿主目录,而test.asp包含如下脚本:

    <%Response.write Server.MapPath(Request.ServerVariables("PATH_INFO")%>

    输出:C:\inetpub\wwwroot\myhome\test.asp

    要得到这个结果还可以用如下方法:

    <%Response.write Server.MapPath("myhome/test.asp")%>

    CreateObject方法

    这个方法是Server对象中最重要的方法,在后面可以看到,许多功能都不得不用到它。它用于创建已注册到服务器上的ActiveX组件。这是一个非常的特性,因为通过使用ActiveX组件能够使你扩展ActiveX的能力。

    用于创建服务器端的方法如下:Server.CreateObject("ComponentName")

    用来创建的组件可以是所有ActiveX能使用的内置组件,实际上是存在于服务器的所有ActiveX组件。

    6.Application对象

    Application对象是个应用程序级的对象,用来在所有用户间共享信息,并可以在Web应用程序运行期间持久地保持数据。

    Application的属性:

    Application对象没有内置的属性,但是我们可以自行创建其属性。

    <% Application("属性名")=值 %>

    其实大部分Application变量都 存放在Contents集合中,当你创建一个新的Application变量时,其实就是在Contents集合中添加了一项。下面两个脚本是等效的:

    <%Application("greeting")="hello!"%>

    或<% Application.contents("greeting")="hello!"

    由于Application变量存在集合里,所以如果想要全部显示,其方法我们已经多次使用,例如For Each循环。

<%
For Each item IN Application.Contents
 Response.write("<br>"&item&Application.Contents(item))
next
%>

    Application的方法:

    Application的方法只有两个方法:一个是Lock,另一个是Unlock。其中Lock方法用于保证同一时刻只能一个用户对Application操作。Unlock则用于取消Lock方法的限制。如:

<%
Application.Lock
Application("visitor_num")=Application("visitor_num")+1
Application.Unlock
%>

    Application的事件:

  • Application_OnStart(),当事件应用程序启动时触发。
  • Application_OnEnd(),此事件应用程序结束时触发。

    这两个事件过程都是必须定义在Global.asp文件中,一般把连接数据的函数定义在这两个事件,然后放在Global.asp中。例如:

Sub Application_OnStart
Application("tt18_ConnectionString")="driver={SQLServer};
server=jeff;uid=sa;pwd=;database=test"
End Sub

    一个数组能够被定义成Application对象,不过这个数组只能作为一个对象保存,而不能用Application(0)取出其值。可以定义一个临时数组实现这种功能。如:

 <%
dim Array()
Array=Application("array")
for i = 0 to ubound(array)
 Response.write Array(i)
next i
%>

    同样要修改这个Application对象也可以定义一个临时数组,把Application对象赋给数组,然后修改这个数组的元素,最后把数组赋回Application对象。如:

 <%
dim Array()
Array=Application("array")
Array(0)="jeff"
Array(1)="zhu"
.
.

Application.lock
Application("array")=Array
Application.unlock
%>

    7.Session对象

    Session其实指的就是访问者从到达某个特定主页到离开为止的那段时间。每一访问者都会单独获得一个Session。在Web应用程序中,当一个用户访问该应用时,Session类型的变量可以供这个用户在该Web应用的所有页面中共享数据;如果另一个用户也同时访问该Web应用,他也拥有自己的Session变量,但两个用户之间无法通过Session变量共享信息,而Application类型的变更则可以实现站点多个用户之间在所有页面中共享信息。

    a> SessionID属性

    该属性返回当前会话的唯一标志,为每一个Session分配不同的编号。我曾在开发过程中就遇到对用户的控制问题。它要实现的功能就是,针对某个网站的一个模块,当一个会员登录后正在看此模块时,另一个人用同样的会员名登录,就不能浏览这个模块。也就是说一个会员名同时只能一个人浏览此模块。我通过用会员名(假设为UserID,唯一)和SessionID来实现了控制。当会员登录时,给这个会员一个Session记录登录状态如:Session("Status")="Logged",同时把这个会员的Session.SessionID写入数据库。当他要浏览此模块时,先判断其是否登录,若已经登录再判断它的SessionID是否与数据库记录的相同,如果不同则不能访问。这样,当另一个用户用相同的会员名登录时,那么数据库中记录的就是新的SessionID,前者访问此模块时就不能通过检查。这就实现了一个会员名同时只能一个人浏览某个模块。这个功能在一些收费网站有很有特别作用,它防止了一个会员名给多个人浏览的问题,为公司保障了利益。

    b>.TimeOut属性

    该属性用来定义用户Session对象的时限。如果用户在规定的时间内没有刷新网页,则Session对象就会终止。一般默认为20分钟。

    c>.Abandon方法

    该方法是Session对象的唯一方法,可以清除Session对象,用来消除用户的Session对象并释放其所占的资源。如: <% Session.Abandon %>

    d>.Session_OnStart和Session_OnEnd事件

    和Application一样,当对象的例程每一次启动时触发Session_OnStart事件,然后运行Session_Onstart事件的处理过程。也就是说,当服务器接收到应用程序中的URL的HTTP请求时,触发此事件,并建立一个Session对象。同理,这个事件也必须定在Global.asa文件中。

    当调用Session.Abandon方法时或者在TimeOut的时间内没有刷新,这会触发Session_OnEnd事件,然后执行里面的脚本。Session变量与特定的用户相联系,针对某一个用户赋值的Session变量是和其他用户的Session变量完全独立的,不会存在相互影响。

    Session应用一例:

    与Application一样,一个被定义为Session类型的数组只能将整个数组作为一个对象,用户不能直接改变Session数组中某个元素的值。为了创建一个Session数组,需先定义一个普通的数组,并对它的每一个元素赋初值,最后把它定义为一个Session数组。如:

 <%
dim array()
array=array("jeff","zhu","male")
Session("info")=array
Response.write Session("info")(0) &"-"
Response.write Session("info")(1) &"-"
Response.write Session("info")(2) &"<br>"
%>
<hr>
<%
array(0)="jun"
array(1)="li"
array(2)="female"
Session("info")=array
Response.write Session("info")(0) & "-"
Response.write Session("info")(1) & "-"
Response.write Session("info")(2) & "<br>"
%>
以上这段程序输出结果是:

jeff-zhu-male
_____________
jun-li-female

    
     

上一页  [1] [2] [3] 



更多的asp简介和五大内置对象请到论坛查看: http://BBS.TC711.COM



【 双击滚屏 】 【 评论 】 【 收藏 】 【 打印 】 【 关闭 】 来源: 互联网    日期:2007-1-13 15:10:10   

发 表 评 论
查看评论

  您的大名:
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
认证编码: 刷新验证码
点评内容: 字数0
  精品推荐  
  本月推荐  
  友情赞助  

关于我们 | 联系我们 | 广告投放 | 留言反馈 | 免费程序 | 虚拟主机 | 网站建设 |  网站推广 |  google_sitemap baidu_sitemap RSS订阅
本站所有资源均来自互联网,如有侵犯您的版权或其他问题,请通知管理员,我们会在最短的时间回复您
Copyright © 2005-2015 Tc711.Com All Rights Reserved 版权所有·711网络   蜀ICP备05021915号
110网监备案 信息产业备案 不良信息举报