山云文库
当前位置:首页 » 十天学会ASP » 正文

十天学会ASP

2010-04-29 17:12:34

十天学会asp.net
十天学会asp.net十天学会ASP

十天学会 ASP第一天 学习目的:装置调试 ASP 的环境,写出第一个 HELLO WORLD 次第。

首先我们来装置 WINSOWS2000 自带的 IIS 作为效劳器。

(WINSOWS98 的 PWS 也能够,但 是不推举,装置大致和 2000 相反,那个地点就不详细说了。

)先是操作面板-添加或删除次第。

接着是添加删除 windows 组件-选中 IIS 组件前面的勾 翌日 学习目的:学会用表单元素向效劳器传送变量,接着显示变量在客户端的扫瞄器。

首先,让我们来看一下 DREAMWEAVER 的表单元素。

1

表单元素要放在一个表单域外头,树立一个表单域。

接着修正举措外头的文件为要接纳 那个表单变量的 ASP 文件。

办法有两种,一种是 POST,那个办法传送的变量不或许在扫瞄器的 地址栏外头显示,能够大批量传送数据;GET 则是会在扫瞄器地址栏外头显示的,等一会举 例子。

下面我们来一个一个看表单元素。

1、文本域,那个是最差不多的,传送的是文本信息,一 般用户名,密码都要用那个传送,只是假设密码的话要在类型外头抉择密码,如此就会以* 替代显示出来的字符,文本域的名字格外严重,以来会用到那个名字因此平常不用默许的名字。

如今举一个例子:假设文本域的名字是 name 的话,用来传送网上用户注销的名字,在表单域 外头,传送到 reg.asp,用 POST 办法,那样在 reg.asp 外头如此失掉变量假设要显示变量再 家加一句, response.write name, 如此就构成了一个从客户端到扫瞄器再回到客户端的进程。

假设办法用的是 GET 的话,那样就改为 name=request.querystring("name")实践上两者能够 一致为 name=request("name")。

下面看看按钮,按钮外头无非两种,一种是提交表单的按钮, 一种是从头输入的按钮。

单选按钮,一个按钮有一个值。

在列表外头异样,添加列表选项和 值。

下面举一个例子,实践上各种表单元素基本上差不多的。

下面是 DREAMWEAVER 外头的代码: 姓名: //文本域,名字叫 name 密码: //文本域,用来输入密码,名字叫 psw 性别: //单选,名字叫 sex,数值是"男" 男 //单选,名字叫 sex,数值是"女" 女2

都市: //复选,大伙儿自己分析一下提交上海//提交按钮重置下面是 reg.asp 的代码,用来显示出刚才遭到的信息:等学会了数据库以来,是不是觉得做一个留言簿格外简明? 第三天 学习目的:学会 ACCEES 数据库的运用,并树立一个未来要用的留言簿数据库。

首先,大伙儿要装置 OFFICE 外头的 ACCEES(我的演示是 OFFICE XP 版本),装置进程这 里就不说了,装置好以来会浮现下图的菜单。

单击翻开 ACCEES安空数据库,新建一个数据库,文件名字能够叫 gustbook.mdb,我那个地点叫 example3.mdb (为了安全时期,文件名复杂一点好,由于 ACCESS 数据库能够被下载的!!)3

此主题相关图片如下:运用设计器创立新的表,一个数据库 MDB 文件外头能够有多个表 此主题相关图片如下:填写字段名字接着抉择字段类型,一条记载能够有格外多字段,能够有格外多字段类型,字 段大小的意义一定是那个字段最多能够容纳的字符树,当那个字段没有任何信息是,ACCEES 会 用默许值替代(没有任何信息不是空的意义),平常必填字段和赞同空字符串分手设置为否、 是,以预防出错。

此主题相关图片如下:4

依照上图大伙儿分手树立几个字段,在时刻中默许值为=now()一定是那个字段不需求填写, 系统直截了当以往后时刻替代 此主题相关图片如下:因此的字段都树立以来,封锁那个窗口,系统会浮现上图的提示,抉择是,主键是记载 的标识,为了以来简明,大伙儿能够把编号改为 ID,还有在 ACCEES 外头尽可能不要用中文显示 字段名字。

此主题相关图片如下:最终来,把那个表的名字设置为 guestbook,接着双击翻开那个表,观看表外头的记载。

好了,大伙儿不要急,那个数据库以来有用的,大伙儿不要删除。

5

装好以来翻开操作面板中的管理工具,会发现多了两个图标,翻开 IIS 管理器 抉择默许 WEB 站点,接着右键属性或许直截了当按快捷键 大伙儿不要头痛,外头只好三个页面需求修正,先是 WEB 站点,假设用户有固定 IP,能够 安排一个 IP接上去在注名目中抉择一个自己硬盘下面的文件夹存放网站,选中读取、写入。

在文档中添加默许的页面,比如打 www.sina.com.cn 新浪一定是调用了一个默许文档接上去也是最要紧的:1、在刚才你定义的一个文件夹外头新建一个文件,能够用记事本 树立一个 TXT 文件接着改名为 ASP,外头的内容如下 response.write 一定是显示的意义,左右的是 asp 的标志符号,在这外头的信息都由效劳 器处置。

保管以来就能够在扫瞄器外头运转那个文件了。

127.0.0.1(=localhost)是本机的 IP,前面再直截了当加上树立的那个文件名字就能够了,之因此我图片下面还有一个 example, 那是由于我树立了一个虚拟名目,那个不了解不要紧,我们往下走,详细深化的东西大伙儿自 己慢慢追求,必尽我们的目的一定是快速掌握嘛。

第四天6

学习目的:掌握 ACCESS 数据库的衔接和读取记载 改日要学习的内容有一点单调,但是格外严重。

在那个地点大伙儿不需求了解命令详细的运转情 况,外头的格外多书籍之因此不合适入门一定是由于讲解了太多的实际学咨询,让初学者一头雾水。

下面开门见山,看两句话: <% set conn=server.createobject("adodb.connection") conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("example3.mdb") %> 第一句话定义了一个 adodb 数据库衔接组件,第二句衔接了数据库,大伙儿只需修正前面的数 据库名字就能够了。

是不是格外简明? 下面再看三句: <% exec="select * from guestbook" set rs=server.createobject("adodb.recordset") rs.open exec,conn,1,1 %> 这三句加在前面两句的前面,第一句:设置查询数据库的命令,select 前面加的是字段,如 果都要查询的话就用*,from 前面再加上表的名字,我们前面树立的是不是一个 gustbook 表 阿?第二句:定义一个记载集组件,全部搜寻到的记载都放在这外头,第三句是翻开那个记 录集,exec 一定是前面定义的查询命令,conn 一定是前面定义的数据库衔接组件,前面参数“1, 1”,这是读取,前面讲到修正记载就把参数设置为 1,3,好了接上去我们读取记载。

<%do while not rs.eof%><% rs.movenext loop %>
<%=rs("name")%> <%=rs("tel")%> <%=rs("message")%> <%=rs("time")%>
在一个表格中, 我们用 4 列分手显示了上次树立的表外头的四个字段, do 循环, rs.eof 用 not 的意义是条件为没有读到记载集的最终来,rs.movenext 的意义是显示完一条转到下面一条记 录,<%=%>就等于<%response.write%>用于在 html 代码外头拔出 asp 代码,要紧用于显示变 量。

好了改日就完毕了,大伙儿能够多实际,能够先下载我的示例看一下,调试一下。

下面是 我机械下面的结果图片7

第五天 学习目的:学会数据库的差不多操作 1(写入记载) 数据库的差不多操作无非是:查询记载,写入记载,删除记载,修正记载。

改日我们先学 习写入记载。

先树立一个表单:

name
tel
message
表单提交到 example5.asp,下面是 example5.asp 的代码: <% set conn=server.createobject("adodb.connection") conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("example3.mdb") name=request.form("name") tel=request.form("tel") message=request.form("message") exec="insert into guestbook(name,tel,message)values('"+name+"',"+tel+",'"+message+"')" conn.execute exec conn.close set conn=nothing response.write "记载添加成功!" %> 在那个地点前面两句我不说了,前面三句我也不说了,前面说过 exec 外头的是实行的命令,添加 记载的比拟繁,大伙儿要仔细看。

insert into 前面加的是表的名字,前面的括号外头是需求 添加的字段,不用添加的或许字段的内容一定是默许值的能够省略。

留意,那个地点的变量一定要 和 ACCESS 外头的字段名对应,否则就会出错。

values 前面加的是传送过去的变量。

exec 是 一个字符串,"insert into guestbook(name,tel,message)values('"是第一段,在 ASP 外头 不能嵌双引号,因此能够用'替代双引号,放在双引号外头,衔接两个变量用+或许&因此"'," 又是一段,中间夹了一个 name 一定是表单传来的变量,如此就能够在那个变量外头加两个'', 显示是字符串了,前面的 tel 是数字型变量因此不需求外头包围'',大伙儿慢慢分析这句话, 如 果 用 表 单 传 来 的 数 据 代 替 变 量 名 字 的 话 这 句 话 为 ( 假 设8

name="aaa",tel=111,message="bbb" ) : "insert into guestbook(name,tel,message)values('aaa',111,'bbb')"。

接上去的 conn.execute 一定是实行那个 exec 命令,最终来别遗忘把翻开的数据库封锁,把定义 的组件设置为空,如此能够前往资源。

上次的读取为了简明,我没有封锁,大伙儿能够补充上 去: rs.close set rs=nothing conn.close set conn=nothing 记住,次第不能够颠倒! 大伙儿能够到数据库外头去看一看,或许用 example4.asp 读取看看是不是多了记载阿? 第六天 学习目的:学会数据库的差不多操作 2(查询记载) 在第四天中我们有如此一个次第: <% set conn=server.createobject("adodb.connection") conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("example3.mdb") exec="select * from guestbook" set rs=server.createobject("adodb.recordset") rs.open exec,conn,1,1 %> 我们查询的是全部的记载,但是我们要修正、删除记载的时辰不能够是全部记载,全部 我们要学习检索合适的记载。

先看一条语句: a="张三" b=111 exec="select * from guestbook where name='"+a+"'and tel="+b where 前面加上的是条件,与是 and,或是 or,我想=,<=,>=,<,>的寓意大伙儿都了解 吧。

这句话的意义一定是搜寻 name 是张三的,同时电话是 111 的记载。

还有一点一定是假设要搜 索一个字段外头是不是包括一个字符串就能够那样写: where instr(name,a)也一定是搜寻 name 外头有 a(张三)那个字符串的人。

我那个地点的 a,b,是常量,大伙儿能够让 a,b 是表单提交过去的变量,如此就能够做一个搜寻 了。

下面大伙儿看看那个代码,了解一下:

搜寻:
name = and tel=
9

example6.asp: <% name=request.form("name") tel=request.form("tel") set conn=server.createobject("adodb.connection") conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("example3.mdb") exec="select * from guestbook where name='"+name+"' and tel="+tel set rs=server.createobject("adodb.recordset") rs.open exec,conn,1,1 %> 无标题文档 <% do while not rs.eof %> <% rs.movenext loop %>
<%=rs("name")%> <%=rs("tel")%> <%=rs("message")%> <%=rs("time")%>
改日实践上就讲了一个 where,大伙儿回去做做试验,把 instr()做出来,改日见! 第七天 学习目的:学会数据库的差不多操作 3(删除记载) 开门见山,大伙儿直截了当看次第。

exec="delete * from guestbook where id="&request.form("id")10

下面这句话完成了删除记载的操作,只是锁定记任用了记载唯独的显示 id,我们前面建 立数据库的时辰用的是系统给我们的主键,名字是编号,由因此中文的名字不是格外便利,大 家能够修正为 id,不修正的话一定是 exec="delete * from guestbook where 编号="&request.form("id")下面我们看完整的代码:一个表单传给 ASP 文件一个 ID,接着那个 ASP 文件就删除了这 个 ID。

delete:提交example7.asp: 我在示例外头加了一个 example72.asp,和 example4.asp 差不多,一定是加了一个 id 字 段,大伙儿能够先运转那个文件看一下全部记载的 ID 和想删除记载的 ID,删除记载以来也可 以经过那个文件复查。

等到最终来一天,我们会把全部的这些东西整合的。

大伙儿就不或许需求这 么费事的操作。

example72.asp: 第八天 学习目的:学会数据库的差不多操作 4(修正记载) 先来看代码: <% set conn=server.createobject("adodb.connection") conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("test.mdb")//这不是平常的一个数据库, 外头就 aa,bb 两 个字段 exec="select * from test where id="&request.querystring("id") set rs=server.createobject("adodb.recordset") rs.open exec,conn %>

aa bb
"> 11

"> ">

<% rs.close set rs=nothing conn.close set conn=nothing %> 大伙儿到如今应该分析那个代码没有啥成绩, 那个代码的作用是接纳前面一个页面的 ID 接着 显示这条记载,文本框即是输入的中央也是显示的中央,假设需求修正的话修正以来按提交; 假设不需求修正就能够直截了当按提交按钮。

那个地点还有一个东西平常没有说,那一定是隐蔽的表单 元素:hidden 元素,外头的 value 是不用用户输入的,会随着表单一齐提交,用于传递变量。

下面是 modifysave.asp 的代码: <% set conn=server.createobject("adodb.connection") conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("test.mdb") exec="select * from test where id="&request.form("id") set rs=server.createobject("adodb.recordset") rs.open exec,conn,1,3 rs("aa")=request.form("aa") rs("bb")=request.form("bb") rs.update rs.close set rs=nothing conn.close set conn=nothing %> 在那个地点,rs.open exec,conn,1,3 前面的参数是 1,3,这我平常提过,修正记载就要用 1,3。

实践上修正记载格外复杂看懂,记载集是 rs,rs("aa")一定是往后记载 aa 字段的东西,让它等 于新的数据 request.form("aa")固然就修正了,只是最终来别遗忘保管,那一定是 rs.update! 说到那个地点,记载的搜寻,读取,修正,拔出都说了,经过这最差不多的东西就能够作出复杂的 东西了,外头的大型数据库:旧事系统,留言簿一定是字段多一点罢了。

改日的示例中的代码 是结合平常的数据库的, 大伙儿 DOWN 了以来回去调试分析一下。

rar 外头的那个 example72.asp ( 依然供大伙儿查询记载 ID 和核对修正以来的记任用的) 第九天 学习目的:差不多的 SESSION 组件,总结 response,request 组件。

首先,有会员系统的任何次第都会用到检测是不是用户曾经登陆那个步骤。

这就用到了 SESSION 组件,下面我们 看一个代码来阐明。

12

这句话的意义一定是在 session 外头定义一个 islogin 字符串变量, 值为"yes", 直截了当能够赋值, 不需求声明。

是不是格外简明? 假设我们做管理员登陆系统的话,首先是一段检测是不是管理员 if 是 then session("isadmin")=yes" else session("isadmin")="no" end if 在每一个需求管理员才干看的页面最前面加上 如此平常用户就无法翻开那个页面。

讲解一下 response.redirect,它是转向的意义,前面 的"login.htm"一定是转向的文件。

如此没有登陆的管理员是无法看到前面的内容的。

下面总结一下 response 组件差不多一定是用到 response.write (),response.redirect() 分手是写字符串和 转向的作用 request 差不多一定是 request.form(), request.querystring() 分手是接纳 post,get 办法传来 的信息 改日就说到那个地点了,最终来我的演示是一个登陆系统大伙儿能够追求一下,差不多一定是下面的学咨询 点比拟简明的。

第十天 学习目的:分页技术,总结 改日最终来一天我们学习一下 ASP 外头稍微难一点地分页技术,终究当我们有 N 条记载的 时辰我们不能够把全部记载显示在一个页面外头吧。

<% exec="select * from test" set rs=server.createobject("adodb.recordset") rs.open exec,conn,1,1 rs.PageSize=3 pagecount=rs.PageCount page=int(request.QueryString ("page")) if page<=0 then page=1 if request.QueryString("page")="" then page=1 rs.AbsolutePage=page %> rs.pagesize 设置一个页面外头显示的记载数,pagecount 是我们自己定义的一个变量, rs.pagecount 是记载的个数,page 也是我们自己定义的一个变量,我们下一页的链接能够设 置为 list.asp?page=<%=page+1%>,下一页的链接能够设置为 list.asp?page=<%=page-1%>, 如此当按下链接的时辰调用页面自己,page 那个变量就+1 或许-1 了,最终来我们让 rs.absolutepage(往后页面)为第 page 页就能够了。

if request.QueryString("page")="" then page=1,这句话的作用一定是我们翻开 list.asp 的时辰没有尾随 page 变量,自动设置为 page=1,预防出错,还有当我们 if....then...放在 一行的时辰 end if 能够省略。

是不是分页也不难? 下面说一种特殊状况: if page=1 and not page=pagecount,那个时辰没有上一页,但是有下一页13

elseif page=pagecount and not page=1,那个时辰没有下一页,但是有上一页 elseif page<1,那个时辰没有任何记载 elseif page>pagecount then,那个时辰没有任何记载 elseif page=1 and page=pagecount,那个时辰没有上一页,没有下一页 else,那个时辰有上一页,也有下一页。

下面看一段显示 1 到 n 页,且每一个数字点击以来就浮现那个数在代表的页面的代码,格外常 见哦。

<%for i=1 to pagecount%> <%=i%>" title=""><%=i%>" target="_blank">"><%=i%><%next%> for....next 是循环从 i=1 末尾,循环一次加 1 到 pagecount 为止。

http://www.acnow.net/ suL 最终来我的实例外头包括了一个最简明的 ASP 次第,但是功用样样有,是 ASP 的精髓,每一个 ASP 大型次第都包括了它。

add.htm 添加记载页面 add.asp 添加记载操作 conn.asp 数据库链接 del.asp 删除记载操作 modify.asp 修正记载页面 modifysave.asp 修正记载操作 list.asp 那个是那个次第的中心,经过那个页面完成记载的添加、修正、删除。

test.mdb 数据库,外头有 aa,bb 两个字段:aa 数字型只能接纳数字,bb 是字符型。

好了,十天到改日就完毕了,我想我那个教程是让大伙儿入门的,大伙儿觉得写的浅也不要批评 必尽不能够初学者和高手都照料到吧,最终来我想说一句,改日的实例是 ASP 的精髓,大伙儿一 定要好好追求,通了那个次第,你会发现你曾经会 ASP 了。

14