Asp动态服务器页面,是使用IIS部署运行的脚本语言。开发语言主要是VBScript语法。下面主要说说开发asp程序需要注意的地方和与数据库连接的基本代码格式,inc包含文件,函数,过程定义,页面编码格式设置等。
一 准备工作
1.开发asp IDE软件:推荐使用ASP Studio 版本1.45
2.设置IE脚本调试模式,方便查询IIS抛出的服务器端错误信息,否则只会显示简单的Http 500 服务器内部错误等。不方便程序的调试。
IE ->工具 ->Internet选项 ->高级 ->禁用脚本调试(Internet Explorer)不选(默认是选择状态)。
3.IIS安装,推荐安装版本6.0。
开始 ->控制面板 ->添加或删除程序 ->添加或删除Windows组件 ->选择Internet信息服务(IIS) ->下一步,直到安装成功。
4.IIS设置。
开始 ->控制面板 ->性能和维护 ->管理工具 ->Internet 信息服务
1.创建虚拟目录
默认网站 ->右击 ->新建 虚拟目录
2.设置根目录
默认网站 ->属性 ->主目录(指定本地路径)
默认网站 ->属性 ->网站(指定IP地址,提供本地局域网测试使用,默认为localhost,端口80)
3.浏览
选择需要浏览的页面 ->右击 ->浏览打开。
二 场景分析
查询显示数据库中大类型和小类型信息,已菜单的格式显示出来。ASP+Access数据库。
三 代码开发
inc.asp
<% '请在这里输入您的ASP代码 response.Write("这一行是inc包含文件输出的内容!<br/>") %>
conf.asp
<% '请在这里输入您的ASP代码 '定义函数 function TD_productsclass() TD_productsclass="这个是function函数定义返回值!<br/>" end function '定义过程 sub ShowArticleContent() dim PaginationType PaginationType=2 select case PaginationType case 0 call DefaultPagination() '无内容分页格式 case 1 call AutoPagination() '自动内容分页 case 2 call ManualPagination() '按定义分页 end select end sub sub DefaultPagination() response.Write("sub无内容分页格式<br/>") end sub sub AutoPagination() response.Write("sub自动内容分页<br/>") end sub sub ManualPagination() response.Write("sub按定义分页<br/>") end sub %>
conn.asp
<% 'conn '准备工作 dim conn dim connstr dim path path = server.mappath("\OneFCMS_Data\OneFCMS.mdb") response.Write(path & "<br/>") 'on error resume next connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&path set conn=server.createobject("ADODB.CONNECTION") conn.open connstr If Err Then err.Clear Set Conn = Nothing Response.Write "数据库连接出错,请检查数据库连接文件中的数据库参数设置。" Response.End End If %>
index.asp
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> <%Response.CodePage=65001%> <%Response.Charset="utf-8"%> <!--#include file="inc.asp"--> <!--#include file="conf.asp"--> <!--#include file="conn.asp"--> <HTML> <HEAD> <Title>index.asp</Title> <META http-equiv="Content-Type" content="text/html; charset=utf-8"> <META name="Generator" content="Asp Studio 1.0"> </HEAD> <BODY> <!-- 请在这里输入您的HTML代码 --> <%=TD_productsclass%> <%call ShowArticleContent()%> <% '请在这里输入您的ASP代码 dim BigClassID '不能直接赋予值 BigClassID = 5 if not isnumeric(BigClassID) then Response.Write "<script>alert('警告!请勿尝试注入!');history.go(-1);</script>" Response.End() end if '第一步:创建对象 set rs1=server.CreateObject("adodb.recordset") '第二步:打开连接,执行数据库查询语句 rs1.open "select * from [bigClass] order by px_id asc",conn,1,1 if rs1.eof and rs1.bof then response.Write(" 暂无记录 !") end if '第三步:判断记录集是否到达结尾 if not rs1.eof then '第四步:数据的读取和操作 for i=1 to rs1.recordcount '查询该大类下面的小类 set rs2=server.createobject("adodb.recordset") exec="select * from [smallclass] where BigClassID="&rs1("BigClassID")&" order by px_id asc " rs2.open exec,conn,1,1 response.Write("<br/><a href='xxx?bigId=" & rs1("BigClassID") & "' title=" & rs1("BigClassName") &">" &rs1("BigClassName") & "</a>") '循环输出该小类的信息 '################################# do while not rs2.eof response.Write("<br/>---<a href='xxx?smallId=" & rs2("SmallClassID") & "' title=" & rs2("SmallClassName") & ">" & rs2("SmallClassName")& "</a>") rs2.movenext loop rs2.close set rs2=nothing '################################# 'response.Write("<br/>") rs1.movenext '大类移动到下一条。 next end if '第五步:数据库对象的关闭和资源回收 rs1.close set rs1=nothing %> </BODY> </HTML>
四 数据库表
bigClass表
####################
1.BigClassID
2.BigClassName
3.px_id
####################
smallClass表
####################
1.SmallClassID
2.SmallClassName
3.BigClassID
4.px_id
####################