ASP动态网站开发的步骤ptr.docx
第1章 ASP基础Microsoft Active Server Pages 即我们所称的 ASP ,是一套微软开发的服务器端脚本环境,通过 ASP 我们可以结合 HTML 网页、 ASP 指令和 ActiveX 元件建立动态、交互且高效的 WEB 服务器应用程序。有了 ASP 你就不必担心客户的浏览器是否能运行你所编写的代码,因为所有的程序都将在服务器端执行,包括所有嵌在普通 HTML 中的脚本程序。当程序执行完毕后,服务器仅将执行的结果返回给客户浏览器,这样也就减轻了客户端浏览器的负担,大大提高了交互的速度。本章节重点介绍ASP的特点、文件结构、基本语法、创作方法以及运行方式。1.1 ASP的特点1. 使用 VBScript 、 JavaScript 等简单易懂的脚本语言,结合 HTML 代码,即可快速地完成网站的应用程序。2. 无须 compile 编译,容易编写,可在服务器端直接执行。3. 使用普通的文本编辑器,如 Windows 的记事本,即可进行编辑设计。当然我们使用Dreamweaver作为开发工具。4. 与浏览器无关, 用户端只要使用可执行 HTML 码的浏览器,即可浏览ASP所设计的网页内容。ASP所使用的脚本语言 (VBScript 、 JavaScript) 均在 WEB 服务器端执行,用户端的浏览器不需要能够执行这些脚本语言。5. ASP的源程序,不会被传到客户浏览器,因而可以避免所写的源程序被他人剽窃,也提高了程序的安全性。6. 运行 ASP 所需的环境简单,要求的配置低,单机只需安装IIS 。如上所述,与一般的程序不同,ASP程序无须编译,ASP 程序的控制部份,是使用 VBScript 、 JavaScript 等脚本语言来设计的,当执行 ASP 程序时,脚本程序将一整套命令发送给脚本解释器 ( 即脚本引擎 ) ,由脚本解释器进行翻译并将其转换成服务器所能执行的命令。当然,同其他编程语言一样, ASP 程序的编写也遵循一定的规则,如果你想使用你所喜爱的脚本语言编写 ASP 程序,那么你的服务器上必须要有能解释这种脚本语言的脚本解释器。当你安装 ASP 时,系统提供了两种脚本语言: VBsrcipt 和 JavaScript ,而 VBscript 则被作为系统默认的脚本语言。ASP本身并不是一种脚本语言,它只是提供了一种使镶嵌在 HTML 页面中的脚本程序得以运行的环境。ASP 程序其实是以扩展名为 .asp 的纯文本形式存在于 WEB 服务器上的,你可以用任何文本编辑器打开它, ASP 程序中可以包含纯文本、 HTML 标记以及脚本命令。其实我们在此要说的是,用ASP程序实现的是一系列*.asp的文本文件,只需要将这些文本文件存储到服务器的相应位置,然后通过日常上网浏览网页的方式,由服务器端解释执行ASP程序,将用户请求的信息发送到客户浏览器,实现我们经常所说的B/S(浏览器/服务器)模式。这与其他程序设计有所区别,无需对编写的程序进行打包,形成可执行文件。1.2 ASP文件结构ASP的文件包括:文本、HTML 标记、ASP 对象、ActiveX 组件、Java 小程序、客户端脚本、服务器端脚本。1. ASP 文件结构<% LANGUAGE= "主要脚本语言" %><html><head> <title> 标题</title> </head> <body> <% 'asp 代码 - - - %> </body></html>2. ASP基本语法(1)ASP的所有代码都用放在<% %>之中,这些代码有服务器解释执行。(2)ASP的注释语句采用 ' 的形式。(3)在ASP文件的开头注明采用的是那种脚本语言:<% LANGUAGE= "VBScript/JavaScript" %>(4)在书写ASP代码时不必区分字母的大小写,但务必记住ASP代码中用到的标点符号必须是输入法英文状态下的。1.3 ASP创作方法任何一个文本编辑器都可以用来编写ASP文件,如记事本,对于程序设计水平较高者可以采用记事本的方式来编写,这样能够加深对程序的印象,提高对程序的敏感度,但对于大多数人还是通过一个方便的工具来编写ASP代码,会更简单容易。我们经常用的工具是Dreamweaver ,这是网页三剑客之一,中文解释“为梦幻编织”,这是我们制作网页最常用的工具。详细介绍见附录2 。1.4 ASP运行方式ASP文件的运行方式比较简单,我们用ASP创建的是动态网站,因此,为我们运行的方式也就是访问网站的方式,我们可以用以下两种方式来访问网站:1.单机运行在我们创作网站的过程中我们一般采用单机运行的方式来浏览我们的网站,浏览ASP动态网站不像浏览静态网页那么简单,静态网页文件以.html或.htm为后缀名,直接在IE浏览器中打开即可浏览,而ASP动态网站的浏览需安装IIS(Internet 信息服务)(1)配置IIS单击“开始”按钮,选择“设置”命令,再选择“控制面板”命令。选择“添加/删除程序”选项,打开“添加/删除程序”窗口.单击“添加/删除Windows组件”图标,看到有很多相关的Windows组件可以安装。在“组件”列表框中选择“Internet信息服务(IIS)”选项。在网上下载一个适合于本计算机操作系统的IIS安装包(例如适合于windows xp的IIS 5.0),解压缩之后,将文件夹命名为i386存入优盘中,安装过程中将提示的文件所在路径修改为优盘所在路径,例如:G:i386 或者H:i386 等。完成IIS的安装。 (2)浏览网站将网站文件夹复制到C:Inetpub目录下。单击“开始”按钮,选择“设置”命令,再选择“控制面板”命令,在控制面板中选择“管理工具”,双击“Internet信息服务”,出现以下操作界面:按上图所指位置单击,在弹出的子目录中选择“网站”,再单击“网站”,右击弹出的“默认网站”子目录,选择“属性”,弹出“默认网站”属性对话框,我们在此需要修改的有“主目录”和“文档”属性,单击主目录得到以下对话框:按上图所示,要将我们要运行的网站设置为主目录,单击“浏览”,找到我们复制到C:Inetpub目录下的网站文件夹。对于“文档”属性选项卡,如果“启用文档中”没有index.asp ,需要添加上,因为我们的ASP主页默认为index.asp 。在IE浏览器地址栏中输入或即可浏览网站。2.网站上传将网站上传到自己申请的网站空间中,然后在IE浏览器的地址栏中输入相应的网址即可浏览网站。现在有好多网站提供免费的动态网站空间,比如,我们可以很方便的在此网站上申请免费申请动态网站空间。课后作业:1. 练习IIS安装和配置。2. 申请免费网站空间,编写一个简单的ASP程序,上传到自己申请的网站空间中。 第2章 连接数据库2.1 ACCESS数据库<%strconn = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath ("数据库文件") set conn = server.createobject("adodb.connection") conn.open strconn%>或<% Set conn=Server.CreateObject("ADODB.Connection")Conn.ConnectionString="Provider=Microsoft.jet.oledb.4.0;data source="&server.mappath("数据库路径")conn.open()%>2.2 SQL SERVER数据库 <%strconn = "Driver=SQL Server;Description=sqldemo;SERVER=127.0.0.1;_UID=LoginID;PWD=Password;DATABASE=Database_Name" set conn = server.createobject("adodb.connection") conn.open strconn%>注:我们通常将以上连接数据库的程序代码存储在一个公用文件中,并将其命名为conn.asp中,要连接访问数据库时,在相应页面的代码区域嵌入此页面,通常使用以下代码:<!-#include file="conn.asp"->这一般是我们进行动态网站开发的第一步,也是最关键的一步。课后作业:用ACCESS创建一个数据库,命名为data.mdb ,分别用以上两种方法实现连接数据库。第3章 ASP动态网站开发的步骤3.1 显示信息的步骤1.简单显示信息(显示一条记录)(1)确定脚本语言:<%LANGUAGE="VBSCRIPT"%>注:这句代码不需要掌握,在用Dreamweaver创建一动态页面时,Dreamweaver默认的脚本语言就是VBSCRIPT,因此,在新建页面的代码区域第一行便是如下代码:<%LANGUAGE="VBSCRIPT" CODEPAGE="936"%>(2)连接数据库:<!-#include file="conn.asp"->(3)创建记录集:<% set rs= Server.CreateObject("adodb.recordset") %>(4)书写SQL语句:<% sql="select * from 表名 where 条件" %>(5)执行SQL语句:<% rs.open sql,conn,1,1 %>(6)显示信息:<%= rs("字段名") %>注:在进行显示信息时,一般用表格来布局,插入相应行列的表格,在相应的单元格的代码区域添加代码:<%= rs("字段名") %> 。(7)关闭记录集:<% rs.Closeset rs = nothing %>2.分页显示信息(显示多条记录)(1)确定脚本语言:<%LANGUAGE="VBSCRIPT"%>(2)连接数据库:<!-#include file="conn.asp"->(3)创建记录集:<% set rs= Server.CreateObject("adodb.recordset") %>(4)书写SQL语句:<% sql="select * from 表名 where 条件 order by 字段名desc" %>(5)执行SQL语句:<% rs.open sql,conn,1,1 %>(6)显示信息:<%= rs("字段名") %>实现分页的代码:<% rs.PageSize=2 '指示Recordset中一页所包含的记录数(数字可变)PageCount=rs.PageCount '用PageCount属性确定Recordset对象中数据的页数Page=int(request.QueryString("Page")if Page<=0 or request.QueryString("Page")="" then Page=1end ifrs.AbsolutePage=Page '指定当前记录所在的页%>循环语句开始:<% i=0 do while(i<rs.PageSize and not rs.bof and not rs.eof) %>要显示的信息:插入表格进行布局,一般循环的是表格的某一行。在相应的单元格的代码区域添加代码:<%= rs("字段名") %> 循环语句结束:<% rs.movenext() i=i+1 loop %>(7)关闭记录集:<% rs.Closeset rs = nothing %>(8)设置页码超级链接:<% for i=1 to PageCount %> <a href = "信息显示页面.asp?Page=<%=i%>"><%=i%></a> <%next%>3.2 添加信息的步骤(1)确定脚本语言:<%LANGUAGE="VBSCRIPT"%>(2)获取要插入的数据:用Request对象(2)连接数据库:<!-#include file="conn.asp"->(3)创建记录集:<% set rs= Server.CreateObject("adodb.recordset") %>(4)书写SQL语句:<% sql="select * from 表名" %>(5)执行SQL语句:<% rs.open sql,conn,1,3 %>(6)执行插入命令:<% rs.addnew %>(7)记录集字段赋值:<% rs("字段名")=变量名 %>(8)执行更新命令:<% rs.update %>(9)关闭记录集:<% rs.Closeset rs = nothing %>3.3 修改信息的步骤(1)确定脚本语言:<%LANGUAGE="VBSCRIPT"%>(2)获取要修改的数据:用Request对象(2)连接数据库:<!-#include file="conn.asp"->(3)创建记录集:<% set rs= Server.CreateObject("adodb.recordset") %>(4)书写SQL语句:<% sql="select * from 表名where 条件" %>(5)执行SQL语句:<% rs.open sql,conn,1,3 %>(6)记录集字段赋值:<% rs("字段名")=变量名 %>(7)执行更新命令:<% rs.update %>(8)关闭记录集: <% rs.Closeset rs = nothing %>3.4 删除信息的步骤(1)确定脚本语言:<%LANGUAGE="VBSCRIPT"%>(2)获取要删除的数据:用Request对象(2)连接数据库: <!-#include file="conn.asp"->(3)创建记录集: <% set rs= Server.CreateObject("adodb.recordset") %>(4)书写SQL语句:<% sql="select * from 表名where 条件" %>(5)执行SQL语句:<% rs.open sql,conn,1,3 %>(6)执行删除命令:<% rs.delete %>(7)执行更新命令:<% rs.update %>(8)关闭记录集: <% rs.Closeset rs = nothing %>课后作业:在数据库data.mdb中创建数据表student ,字段名称为:编号id(自动编号),学号sid(文本),姓名sname(文本),年级sgrade(文本),专业sspeciality(文本),电话sphone(文本)。添加相应信息如:20060201,张三,2006,计算机信息管理,15999999999 。1. 编写ASP代码实现在网页中显示学号为20060201所有信息。2. 编写ASP代码实现通过网页向数据表student中添加信息:20060202,里斯,2006,计算机信息管理,158888888883. 分页显示所有学生记录信息,每页显示1条记录信息。4. 学号为20060202的同学转入计算机及应用,编写程序实现将学号为20060202的同学的专业修改为计算机及应用。5. 学号为20060202的同学转入其他班级,编写程序实现删除该同学的记录信息。第4章 功能实现经常上网的同学会发现,在我们使用一个网站提供的资源时,网站提供给我们的是这样一些操作功能,比如我们可以浏览网站提供给我们的一些公用资源,直接复制网页当中提供的资料即可,再比如有一些重要的资料设定了访问权限,需要我们注册为网站的用户,在登录网站之后即可执行相应的操作在我们学习网站开发时,我们首先做一些基本的约定,我们制作的网页都存放在自己命名的网站文件夹中(本教材以xinxiguanli为例),在xinxiguanli文件夹中建立images文件夹用来存放制作网页用的图片资料,建立database文件夹用来存放数据库文件,建立include文件夹用来存放嵌入文件,建立file文件夹用来存放一些可供下载的文件,建立upfile文件夹用来存放用户上传的文件。4.1网站公用模块在我们上网浏览网站时,我们经常会发现网页的某些部分在整个网站所有页面中始终不变,例如网页的顶端或底端在网站中始终是不变的,解决这一问题我们经常采用嵌入文件的方法,将网站的公用模块单独设置为几个独立的网页,然后用以下命令将其嵌入即可:<!-#include file="网页文件路径及名称"->例题4.1操作要求:参照以上图片完成在主页(index.asp)的顶端嵌入include文件夹中的head.asp文件。操作步骤如下:1.选择素材:完成此操作需要用到以下两个图片index.jpg和bar.gif index.jpg bar.gif2.制作head.asp页面:(1)新建一动态页面,将其保存到include文件夹下,并命名为head.asp,切换到代码视图,删除所有代码。(2)居中插入一宽度为726px,1行1列的表格,设置其边框为0,在表格内居中插入图像index.jpg,设置图像尺寸,宽726px高150px。(3)居中插入一宽度为726px,1行8列的表格,设置其边框为1,背景颜色为#99FFFF,边框颜色为#FFFFFF,均匀设置各列的宽度,依次输入首页、系部介绍、专业介绍、课程设置、考试信息、校园新闻、就业指导、招聘信息,并设置字号为12px。(4)居中插入一宽度为726px,1行1列的表格,设置其边框为0,在表格内居中插入图像bar.gif,设置表格的背景图像为bar.gif。3.制作主页及其它网页:新建一动态页面,将其保存到xinxiguanli文件夹下,并命名为index.asp,切换到代码视图,在代码<%LANGUAGE="VBSCRIPT" CODEPAGE="936"%>之下添加代码:<!-#include file="include/head.asp"->(如果感到代码多了很乱的话,可以删除这两句代码以下的所有HTML代码)依照以上操作制作其它网页:xibujieshao.asp、zhuanyejieshao.asp、kechengshezhi.asp、kaoshixinxi.asp、xiaoyuanxinwen.asp、jiuyezhidao.asp、zhaopinxinxi.asp。4.制作超级链接:切换到head.asp页面的设计视图,以制作首页的超级链接为例,选定“首页”两个字,在属性栏的链接处输入index.asp,或者单击链接右边的文件夹图标,查找相应的页面,即可完成相应的操作。其它文字的超级链接都可按照以上方法完成。在IE浏览器中输入网址即可浏览操作的结果。4.2 显示信息模块我们上网浏览网页时,经常会发现网站首页会提供给我们一些最新的通知或重要信息,而且这些信息大多数以时间倒序排列,也就是说最新的消息或通知总是显示在页面的最上面,当我们点击此标题时,会弹出相应的详细信息。然而这些信息的标题是提前被存储在数据库相应的数据表中,我们首先要做的是显示数据库中的信息,再采用网址传递参数的方式在另外的页面中显示此标题的详细内容。网址传递参数是动态网站开发的重要方法,运用此方法可以大大减少网站维护的工作量,网址传递参数的基本格式是:网址?参数名=参数值。例题4.2操作要求:在zhaopinxinxi.asp页面中显示数据库data.mdb中数据表zhaopin的有关内容,要求运用表格布局页面,倒序显示编号、公司名称、招聘职位、招聘人数、发布时间等信息,并在没一行的最后用户点击查看即可弹出浏览器窗口,查看该招聘的详细要求。操作步骤:1.建立数据库:在网站文件夹xinxiguanli中新建文件夹database,打开ACCESS创建数据库data.mdb,并保存到database文件夹中,在数据库中创建数据表zhaopin,表格结构及信息如下图:2.页面设计:用Dreamweaver打开zhaopinxinxi.asp页面,在页面中插入2行6列的表格,表格宽度设置为726px,在第1行依次输入编号、公司名称、招聘职位、招聘人数、发布时间和招聘要求,在第2行最后一栏输入“查看”两个字,并设置表格和单元格属性为居中。3.代码编写:<%LANGUAGE="VBSCRIPT" CODEPAGE="936"%><!-#include file="include/head.asp"-><!-#include file="conn.asp"-><html><head><title>招聘信息</title><script language="javascript"><!-function winopen(url) window.open(url,"search","toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=yes,width=600,height=500,top=200,left=100");/-></script></head><body><% set rs= Server.CreateObject("adodb.recordset") %><% sql="select * from zhaopin order by id desc"%><% rs.open sql,conn,1,1 %><% rs.PageSize=2 '指示Recordset中一页所包含的记录数(数字可变)PageCount=rs.PageCount '用PageCount属性确定Recordset对象中数据的页数Page=int(request.QueryString("Page")if Page<=0 or request.QueryString("Page")="" then Page=1end ifrs.AbsolutePage=Page '指定当前记录所在的页%><table width="726" border="1" align="center" bordercolor="#0033FF" bgcolor="#CCFFFF" cellpadding="0" cellspacing="0" bordercolorlight="#0000dd" bordercolordark="#FFFFFF"><tr align="center" valign="middle" bgcolor="#0066FF"> <td width="50">编号</td> <td width="180">公司</td> <td width="180">招聘职位</td> <td width="67">招聘人数</td> <td width="151">发布时间</td><td width="72">招聘要求</td></tr><% i=0 do while(i<rs.PageSize and not rs.bof and not rs.eof) %><tr align="center" valign="middle"> <td><%= rs("id") %></td><td><%= rs("gongsi") %></td> <td><%= rs("zhiwei") %></td> <td><%= rs("renshu") %></td> <td><%= rs("time") %></td><td><a href="javascript:winopen('zhaopin.asp?id=<%=rs("id")%>')">查看</a></td></tr><% rs.movenext() i=i+1loop %></table> <% rs.Closeset rs = nothing %><div align="center"><% for i=1 to PageCount %><a href = "zhaopinxinxi.asp?Page=<%=i%>"><%=i%></a><%next%></div></body></html>4.制作弹出页面(zhaopin.asp):(1)在zhaopinxinxi.asp页面的代码视图中,<head></head>标记中添加如下JavaScript代码:<script language="javascript"><!-function winopen(url) window.open(url,"search","toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=yes,width=600,height=500,top=200,left=100");/-></script>(2)在设计视图中选择“查看”,在属性栏“链接到”添加如下代码:javascript:winopen('zhaopin.asp?id=<%=rs("id")%>')在代码视图中将看到以下代码:<a href="javascript:winopen('zhaopin.asp?id=<%=rs("id")%>')">查看</a>(3)新建页面zhaopin.asp,创建表格9行2列的表格,合并第1行,输入“-招聘信息”,从第二行开始左侧列依次输入“招聘职位”,“招聘人数”,“招聘专业”,“年龄要求”,“学历要求”,“截止时间”,“工作经验”,“其他要求”。(4)代码编写:<%LANGUAGE="VBSCRIPT" CODEPAGE="936"%><!-#include file="conn.asp"-><% id=request("id") %><% set rs= Server.CreateObject("adodb.recordset") %><% sql="select * from zhaopin where id="&id %><% rs.open sql,conn,1,1 %><html><head><title><%= rs("gongsi")%>- 招聘信息</title></head><body><div align="center"> <table width="400" border="1" cellpadding="0" cellspacing="0" bordercolor="#9966FF"> <tr align="center" valign="middle"> <td colspan="2" bgcolor="#9966FF"><%= rs("gongsi")%>-招聘信息</td> </tr> <tr align="center" valign="middle"> <td width="126" height="20"> 招聘职位: </td> <td width="268" height="20"><%= rs("zhiwei")%></td> </tr> <tr align="center" valign="middle"> <td height="20">招聘人数: </td> <td height="20"><%= rs("renshu")%></td> </tr> <tr align="center" valign="middle"> <td height="20">招聘专业: </td> <td height="20"><%= rs("zhuanye")%></td> </tr> <tr align="center" valign="middle"> <td height="20">年龄要求: </td> <td height="20"><%= rs("nianling")%></td> </tr> <tr align="center" valign="middle"> <td height="20">学历要求: </td> <td height="20"><%= rs("xueli")%></td> </tr> <tr align="center" valign="middle"> <td height="20">截止时间: </td> <td height="20"><%= rs("jiezhitime")%></td> </tr> <tr align="center" valign="middle"> <td height="20">工作经验: </td> <td height="20"><%= rs("jingyan")%></td> </tr> <tr align="center" valign="middle"> <td height="20">其它要求: </td> <td height="20"><%= rs("qita")%></td> </tr> </table></div><% rs.Closeset rs = nothing %></body></html>4.3 登录验证模块1.页面设计:在index.asp页面中创建如上图的用户登录框,要特别注意的是给每一个表单元素分别命名(账号文本域为userid,密码文本域为password,类型下拉列表为usertype),选中整个表单,在属性栏中设置动作属性为login.asp。2.数据库设计:打开database文件夹下的data.mdb数据库,创建三个数据表如下:(1)student数据表(2)teacher数据表(3)admin数据表3.功能实现:新建页面login.asp,进入代码视图,删除自动生成的所有代码,添加如下代码用来实现登录验证功能。<%LANGUAGE="VBSCRIPT" CODEPAGE="936"%><!-#include file="conn.asp"-><% '用Request对象获取表单的值userid =Trim(Request.Form("userid") password =Trim(Request.Form("password")usertype =Trim(Request.Form("usertype")'判断用户名和密码是否为空if (userid="" or password="") thenResponse.Write("<script>alert('用户名或密码不能为空')</script>")Response.Write("<script>history.go(-1)</script>")Response.end End If'创建记录集set rs= Server.CreateObject("adodb.recordset")'判断用户类型(学生)if (usertype="student") then'书写查询语句,在student表中查找符合条件的记录sql="select * from student where sid='"&userid&"' and spwd='"&password&"'"'只读数据rs.open sql,conn,1,1'如果记录指针移动到最后没有查找到该记录则说明用户名或密码错误If (rs.eof) Then Response.Write("<script>alert('用户名或密码错误')</script>") Response.Write("<script>history.go(-1)</script>") Response.endElse'用Session对象记录用户账号和类型,以便控制用户访问权限session("userid")=useridsession("usertype")=usertype'转到student.asp页面,学生登录成功Response.redirect("student.asp")End ifEnd if'判断用户类型(教师)if (usertype="teacher") thensql="select * from teacher where tid='"&userid&"' and tpwd='"&password&"'" rs.open sql,conn,1,1If (rs.eof) Then Response.Write("<script>alert('用户名或密码错误错误')</script>") Response.Write("<script>history.go(-1)</script>") Response.endElsesession("userid")=useridsession("usertype")=usertypeResponse.redirect("teacher.asp")End ifEnd if'判断用户类型(管理员)if (usertype="admin") thensql="select * from admin where aid='"&userid&"' and apwd='"&password&"'" rs.open sql,con