ASP入门

 ·ASP可以使用两种脚本语言:
-VBScript
-JavaScript

·为网页声明使用的脚本语言:
JavaScript: <%@ language=JSscript %>
VBScript: <%@ language=VBSscript %>

=============================================================================
·VBScript一般放在<head>与</head>内的<%和%>之间;

·<%和%>为脚本代码定界符;

·代码的注释:
 多行注释:<!--注释内容-->
 单行注释:<!注释内容!>

·VBScript只有一种数据类型:Variant,它会根据程序的上下文来
判断为数字类型或者字符串类型;
例如:
 字符串:i=“2232”
 数  字:i=1232

·声明变量:
Dim语句 Public语句 Private语句
Dim a,b
注意:直接使用没有声明的变量,叫隐式变量,弊端是程序出错,无法查找;

·变量根据声明位置,分为:过程级和脚本级;
在过程中声明的变量为过程级变量;
在过程以外声明的变量为脚本级变量,可以被多个过程调用。

=============================================================================
·JavaScript是面向对象的语句
特点:
-解释型语言
-基于对象
-开发环境简单,安全性高
-跨平台性

·JavaScript的写入方式与VBScript一样,放在<%和%>之间;

·JavaScript的声明一般采用Var;语句的末尾一般要用“;”隔开;
=============================================================================

·以下使用VBScript脚本语言来实现ASP:

·两种方法:
和html混合使用:<%和%>
 eg:<% Response.write now()%>
另一种:<script></script>
 eg:<script language="VBScript" runat="server">
  Response.write now()
     </script>

·ASP的注释,在<%和%>之间使用“'”;

·常量的定义:
使用Const语句,分为字符串型和数字型;

·通过代不代引号来区分其类型;
字符串型:const jy="asp学习<br/>"
数字型:const jc=22
表示日期常量 书写在两个#之间:const rq=#2006-09-01#

·控制流程语句分为两大块:
-条件语句;
-循环语句;

·两种条件语句:
If...Then...Else语句
Select Case 变量
 case 判断
 ...
 case 判断
 ...
 ......
End Select语句
举例:
dim x
x=10

select case x
 case 1,3,5,7,9
  Response.Write "单数"
 case 2,4,6,8,10
  Response.Write "双数"
end select

·循环语句分为三种类型:
1、当条件不为假之前的时候重复执行语句;
2、当条件变为真之前重复执行语句;
3、按照指定的次数重复执行语句。

·四种循环语句:
1、Do...Loop 直到条件为True(真)时循环;
2、While...Wend 当条件为True(真)时循环;
3、For...Next指定循环次数,使用计数器重复运行语句;
4、For Each...Next 对于集合的每项或者数组中的每项,重复执行一组语句。

·Do...Loop:

-格式1:先判断While后面的条件是否为真,如果为真则执行以下的代码;
Do while 条件
 ……
Loop

-格式2:先至少执行一次循环体,然后再判断While后面的条件是不是为真;
Do
 ……
Loop While 条件

·For……Next格式:
For 变量=1 to N(总量) Step M(步长)
……
Next
-说明:For……Next可以指定语句运行的次数;

·For Each……Next
不是指定语句运行的次数,而是对于集合中的每项或者数组中的每个元素,重复
执行一次,这个语句对于不知道集合或者数组中具体数目的时候,非常有用;

=============================================================================
·过程:实现不同功能的代码模块;
在VBScript中分为两种:
1、Sub 没有返回值
2、Function 有返回值

·Sub 过程名(由调用过程传递的常数、变量或表达式)
 具体的代码
end sub

·function 过程名()
 
end function

·使用Call调用过程带括号,不用call时,函数不用括号;

·Function过程就是函数:
Function 过程名(由调用过程传递的常数、变量或表达式)
 具体的代码
end sub

·Function返回值由函数名返回;
例如:
Function test(a,b)
 test=a & b;
End Function 
使用它:result=test("hello ","bobo");

==============================================================================
·Response对象向浏览器输出数据:
-两种格式:

格式一:
<%Response.write 具体的代码,字符用引号,数字不用引号%>
eg: Response.write "当前系统时间:" & hour(now) & ":" & minute(now) & ":" & second(now) & "<br/>"

格式二:
<%
=体的代码,字符用引号,数字不用引号
%>
eg:
<%="当前系统时间:" & hour(now) & ":" & minute(now) & ":" & second(now) & "<br/>"
%>
!!注意:只有一个输出的时候才能直接使用格式二的情况;

·停止输出数据:
Response.End();
eg:执行到501就结束了,不再输出了!
for x=1 to 1000
 Response.write x
 Response.write "<br/>"
 if x>500 then Response.End()
next

·页面重新定向:
Response.redirect(转入的网址)
eg:
Response.redirect("bb.asp")

·Response的数据集合Cookies:
 Cookies用于浏览器端存储用户的信息,例如帐号等;
要求:
Response.Cookies语句必须放在<html>标志之前;
-例子:
--------------------------
<%@language=VBScript%>
<%
visitTime=request.cookies("visitTime")
response.cookies("visitTime")=now
%>
<html>
<head>
</head>
<body>
<%
response.write "上次访问时间:" & visitTime & "<br/>"
response.write "本次访问时间:" & now()
%>
</body>
</html>

=========================================================================
·Request对象
可以把浏览器收集的信息发送给服务器;

=========================================================================
·Html中表单提交数据的方式:
-第一种用Get:
 需要用Request.QueryString获取;
 限制长度;
-第二种用Post:
 需要用Request.Form获取;
 不限制信息的长度;

例子一:post方法:
<form method="post" action="get.asp">
------------
<br/><%Response.write Request.Form("name")%>
<br/><%Response.write Request.Form("qqnumber")%>
<br/><%Response.write Request.Form("phone")%>

例子二:get方法:
===================================================================
要提交的文件:index.asp
<form method="get" action="get.asp">
<br/>名称:<input type="text" name="name" value="ccb">
<br/>QQ号:<input type="text" name="qqnumber" value="123456">
<br/>电话:<input type="text" name="phone" value="13756039657">
<br/><input type="submit" value="提 交">
</form>
获取信息的文件:get.asp
<br/><%Response.write Request.QueryString("name")%>
<br/><%Response.write Request.QueryString("qqnumber")%>
<br/><%Response.write Request.QueryString("phone")%>
=====================================================================

·数据库操作:
ASP中,用来存取数据库的对象统称ADO(Active Data Object),主要含有三中
对象:
Connection:负责打开或连接数据库;
Recordset:负责存取数据表;
Command:负责对数据库执行行动查询命令(SQL语句命令);

·读取数据库的流程:
第一步:设置驱动和数据库的路径;
第二步:创建Connection对象;
第三步:利用连接对象Conn的Open方法打开一个指定的数据库;

·连接数据库的驱动程序:
由驱动程序和数据源两种,建议使用驱动程序,比较方便;

·有以下几种驱动类型:
Microsoft.Jet.OLEDB.4.0 Mdb
Microsoft Access Driver Access
Microsoft dBase Driver Dbase
Microsoft Excel Driver Excel
Microsoft Visual FoxPro Driver Dbc
SQLOLEDB.1 SQL srver7.0

·在这里,我们使用:
第一步:设置驱动和数据库的路径;
Dim strConn
strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("test.mdb")
第二步:创建Connection对象;
set conn=Server.CreateObject("ADODB.Connection")
第三步:利用连接对象Conn的Open方法打开一个指定的数据库;
conn.open strConn

·存取数据表:
<%
 set rs=CreateObject("ADODB.Recordset")
 rs.open "select * from test",conn
 dim counts
 
%>
<%if rs.EOF and rs.BOF then
 response.write "暂时还没有文章"
else
  do Until rs.EOF
  response.write "<br/>编号:" & rs("编号")
  response.write "<br/>名称:" & rs("名称")
  response.write "<br/>价格:" & rs("价格")
  response.write "<hr/>"
  rs.movenext
 loop
end if%>

<%rs.close
  set rs=nothing%>
===================================
·生成菜单:
index.asp
--------------
<%@language=VBScript%>

<%
Dim strConn
strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("test.mdb")
set conn=Server.CreateObject("ADODB.Connection")
conn.open strConn
%>

<html>
<head>
</head>
<body>
<%
 set rs=CreateObject("ADODB.Recordset")
 rs.open "select * from test",conn

%>

<%if rs.EOF and rs.BOF then
 response.write "暂时还没有文章"
else
  do Until rs.EOF
%>

<a href="get.asp?classid=<%=rs("编号")%>"> <%=rs("名称")%> </a>|

<%
 rs.movenext
 loop
end if%>

<%rs.close
  set rs=nothing%>

</body>
</html>
--------------------------------------------------------
get.asp
-------------
<%@language=VBScript%>

<%
Dim strConn
strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("test.mdb")
set conn=Server.CreateObject("ADODB.Connection")
conn.open strConn
%>
<html>
<head>
</head>
<body>
<%
 dim classid
 classid=Request.QueryString("classid")
 set rs=CreateObject("ADODB.Recordset")
 rs.open "select * from test where 编号=" & classid,conn
%>
您要的是:<strong><%=rs("名称")%></strong>吗?
<p/><a href="default.asp">返回</a>
<%rs.close
  set rs=nothing%>
</body>
</html>
-----------------------------------------------------------------

·分页的制作:fenye.asp

·判断读取的页数,并指定每页显示记录数目:
rs.PageSize=2 '指示Recordset中一页所包含的记录数
pagecount=rs.PageCount '使用PageCount属性可确定Recordset对象中数据的页数
page=int(request("page"))
if page<=0 then page=1
if request("page")="" then page=1
rs.AbsolutePage=page '指定当前记录所在的页

·显示指定页:
<%
if rs.EOF and rs.BOF then
 response.write "暂时还没有文章"
else
 for i=1 to rs.PageSize
  response.write "编号:" & rs("编号")
  response.write "名称:" & rs("名称")
  response.write "价格:" & rs("价格")
  response.write "<hr/>"
  rs.movenext
 next
end if
%>

这里讲两种:
第一种:通过显示的页码来跳到指定页:
<%for i=1 to pagecount%>
<a href="fenye.asp?page=<%=i%>"><%=i%></a>
<%next%>

第一种完整代码:
----------------------------
<%@language=VBScript%>

<%
Dim strConn
strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("test.mdb")
set conn=Server.CreateObject("ADODB.Connection")
conn.open strConn
%>

<html>
<head>
</head>
<body>
<%
 set rs=CreateObject("ADODB.Recordset")
 rs.open "select * from test",conn,1,1

 rs.PageSize=3
 totalPage =rs.PageCount
 page=int(request("page"))
 if page<=0 then page=1
 if request("page")="" then page=1
 rs.AbsolutePage=page

 if rs.EOF and rs.BOF then
  response.write "暂时还没有文章"
 else
  for i=1 to rs.PageSize
   if rs.EOF then exit for
   response.write "编号:" & rs("编号")
   response.write "名称:" & rs("名称")
   response.write "价格:" & rs("价格")
   response.write "<hr/>"
   rs.movenext
  next
 end if
%>
<%for i=1 to totalPage%>
<a href="default.asp?page=<%=i%>"><%=i%></a>
<%next%>

<%

rs.close
  set rs=nothing%>

</body>
</html>
----------------------------
==============================
第二种:通过翻页来跳到指定页:
-------------------------
<%@language=VBScript%>

<%
Dim strConn
strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("test.mdb")
set conn=Server.CreateObject("ADODB.Connection")
conn.open strConn
%>

<html>
<head>
</head>
<body>
<%
 set rs=CreateObject("ADODB.Recordset")
 rs.open "select * from test",conn,1,1

 rs.PageSize=3
 totalPage =rs.PageCount
 page=int(request("page"))
 if page<=0 then page=1
 if request("page")="" then page=1
 rs.AbsolutePage=page

 if rs.EOF and rs.BOF then
  response.write "暂时还没有文章"
 else
  for i=1 to rs.PageSize
   if rs.EOF then exit for
   response.write "编号:" & rs("编号")
   response.write "名称:" & rs("名称")
   response.write "价格:" & rs("价格")
   response.write "<hr/>"
   rs.movenext
  next
 end if
%>


<p align="center">
<%if page=1 and not page=totalpage then %>
第一页|上一页
<a href="default.asp?page=<%=page+1%>">下一页</a>|
<a href="default.asp?page=<%=totalpage%>">最后页</a>

<%elseif page<>1 and not page=totalpage then%>
<a href="default.asp?page=1">第一页</a>|
<a href="default.asp?page=<%=page-1%>">上一页</a>|
<a href="default.asp?page=<%=page+1%>">下一页</a>|
<a href="default.asp?page=<%=totalpage%>">最后页</a>

<%elseif page=totalpage then%>
<a href="default.asp?page=1">第一页</a>|
<a href="default.asp?page=<%=page-1%>">上一页</a>|
下一页|最后页
<%end if%>
</p>

<%

rs.close
  set rs=nothing%>

</body>
</html>
----------------------------------

·通过加载页面来是网站的页面更有条例:
把连接数据库的代码单独存方在conn.asp中
在要连接的页面中是<!--#include file="conn.asp"-->

---------------------------------------

·动态加载图片:
index.asp
------------------
<%@language=VBScript%>

<%
Dim strConn
strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("test.mdb")
set conn=Server.CreateObject("ADODB.Connection")
conn.open strConn
%>

<html>
<head>
</head>
<body>
<%
 set rs=CreateObject("ADODB.Recordset")
 rs.open "select * from test",conn,1,1

%>
<table width="320" align="center">
<marquee behavior="alternate">
<%while(NOT rs.EOF)%>
<a href="get.asp?classid=<%=rs("编号")%>"><img src="<%=rs("图片")%>" width="80" height="80"/></a>
<%rs.movenext
wend%>
</marquee>
<table>

</p>

<%

rs.close
  set rs=nothing%>

</body>
</html>
------------------------------------

·get.asp
--------------------
<%@language=VBScript%>

<%
Dim strConn
strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("test.mdb")
set conn=Server.CreateObject("ADODB.Connection")
conn.open strConn
%>
<html>
<head>
</head>
<body>
<%
 dim classid
 classid=Request.QueryString("classid")
 set rs=CreateObject("ADODB.Recordset")
 rs.open "select * from test where 编号=" & classid,conn
%>
您要的是:<strong><%=rs("名称")%></strong>吗?
<p/><a href="default.asp">返回</a>
<%rs.close
  set rs=nothing%>
</body>
</html>
=====================================================================================
End       22:24 2006-9-2

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值