1、网络开发课程设计网络开发课程设计1 课程设计背景网络开发技术是一门涉及计算机科学、网络技术、数据库技术、管理信息系统、信息安全等多方面知识的综合性课程。网络开发技术本质上是研究在网络环境下开发管理信息系统,管理信息系统就是人们常说的MIS(Management Information System),在强调管理、强调信息的现代社会中它越来越得到普及。MIS是一门新的学科,它跨越了若干个领域,比如管理科学、系统科学,运筹学、统计学以及计算机科学。在这些学科的基础上,在这些学科的基础上,形成信息收集和加工的方法,从而形成一个纵横交织的系统;在网络环境下管理信息系统的开发技术中,Microsoft公
2、司的ASP(Active Server Pages)被广为使用。ASP实际上是将标准的HTML文件拓展了一些附加特征,为编写人员提供了在服务器端运行脚本的环境,使编写人员可以利用VBScript和JavaScript或其他的第三方脚本语言来创建ASP,实现过去需要编写发杂的CGI程序才能实现的有动态内容的网页,如计数器等。ASP提供了一些内置对象和组件,允许用户从浏览器中接收和发送信息。ASP可以和诸如ACCESS、SQL Server这样的数据库进行连接,进而完成数据的交换与更新。网络开发技术课程设计就是在网络环境中开发诸如网络新闻系统、网络购物系统、网络考试系统等管理信息系统。2 课程设计
3、目的通过网络开发课程设计,使我们掌握浏览器/服务器架构的原理,掌握网络管理信息系统的组成和动态网页的工作机制,掌握各种动态内容的实现技术,掌握网络信息系统开发环境配置,包括IIS中站点的创建和属性设置、Dreamweaver 8.0的特点、本地站点设置、测试服务器以及文件管理等内容;通过对网络留言板管理信息系统的需求分析、系统功能划分、数据库的概念设计、逻辑设计,掌握数据库的设计,掌握如何在ASP中实现对数据库的访问,掌握如何使用记录集对象来访问数据库并在页面上显示数据库,掌握通过页面实现对数据库数据的维护方法,包括添加更新和删除记录等。3 设计思路网络留言板系统可以分为两部分:第一部分是普通
4、用户浏览,此部分要完成显示留言内容,以及发布留言;第二部分是管理员管理部分,管理员进入管理页面后,可以对留言进行回复,删除,还可以对页面进行基本的设置。4 课程设计准备一、 在本地计算机上搭建服务器环境基于ASP技术的Web应用程序的服务器端开发环境需要ASP应用程序服务器,以及能够访问数据库的数据库驱动程序。在windows XP中内置了能同时作为Web服务器和应用程序服务器的IIS(Microsoft Internet Information Server),因此是开发ASP技术的Web应用程序的首选。本机开发环境:Microsoft Dreamweaver 8.0二、 建立Web站点建立
5、一个Web站点,提供服务器端的开发环境,用来调试应用程序的每一个页面和试运行整个应用程序。构建当前站点的虚拟目录。启动IIS,单击“默认Web”站点,执行命令“新建虚拟目录”,打开虚拟目录创建向导。在虚拟目标别名栏中输入liuyanban,单击“下一步”。输入真实磁盘路径,单击“下一步”。默认选择允许“读取”和允许“运行脚本”两项,单击“下一步”,完成虚拟目录的创建。三、 创建数据库连接新建conn.asp,代码输入。使用OLEDB提供的程序访问数据库notes.mdb。四、 创建记录集Recordset是用来封装一组数据源记录的对象。Recordset对象在某一时刻只能代表一个记录集合,AD
6、O的核心。部分记录集创建:从数据库中查询所有记录并按照id 降序排列 Set rs=Server.CreateObject(adodb.Recordset) sql=select * from note_comment order by id descrs.pagesize = msg_per_page rs.open sql,conn,1,3 从数据库中查询id 列的值为id 的记录 set rs=server.createobject(adodb.recordset) sql = select * from note_comment where ID=&id rs.open sql,con
7、n,1,3显示详细资料 set rs = server.createobject(adodb.recordset) sql = select * from note_comment where ID=&id rs.open sql,conn,1,15、课程设计过程一、数据库设计Note_admin数据表设计:Notes_comment数据表设计:Web数据表设计:二、留言发布页面设计 (book_write.asp)username=trim(request.form(username) 读取表单传递过来的姓名数据usermail=trim(request.form(usermail) 读取表
8、单传递过来的用户邮箱数据用户姓名或留言主题或留言内容没有填写if username= or request.form(Comments)= or request.form(subject) = thenresponse.write alert(填写资料不完整,请检查后重新输入!);history.back();response.endend if邮箱为必填时检查邮箱是否合法填写的邮箱地址中不存在字符.或,或者邮箱长度小于10 或大于50都是非法邮箱地址if mailyes=0 then if Instr(usermail,.)=0 or Instr(usermail,)=0 or len(us
9、ermail)50 thenresponse.write alert(您输入的电子邮件地址格式不正确,请检查后重新输入!);history.back();response.endend ifend if留言主题长度大于要求的长度 if len(request.form(subject)subjectmaxlength thenresponse.write alert(留言主题太长了,请不要超过&subjectmaxlength&个字符!);history.back(); response.end end if留言内容长度大于要求的长度 if len(request.form(Comments)
10、maxlength then response.write alert(留言内容太长了,请不要超过&maxlength&个字符!);history.back(); response.end end if set rs=Server.CreateObject(ADODB.RecordSet) 将留言保存到数据库中 rs.Addnew 添加一条记录 rs(Name)=Request.Form(username) 姓名 rs(Comment)=Request.Form(comments) 留言内容 rs(Email)=Request.Form(usermail) 邮箱地址 rs(url)=Reque
11、st.Form(url) 主页 rs(Communication)=Request.Form(communication) 其他联系方式 rs(IP)=Request.serverVariables(REMOTE_ADDR) IP 地址 rs(PostDate) = now() 留言提交时间 rs(Subject) = Request.Form(subject) 留言主题 rs.Update 更新数据库 rs.close 关闭RecordSet 对象 提交成功,给出提示,并返回到留言查看界面 response.write alert(留言提交成功,单击“确定”返回留言列表!);location
12、.href=index.asp; response.end三、留言显示页面(index.asp) % set rs=Server.CreateObject(ADODB.RecordSet) 创建RecordSet 对象 rs.open select * from note_comment order by id desc,conn,1,3 从数据库中读取留言,并保存在rs 中 if rs.eof and rs.bof then 不存在留言记录 response.redirect book_write.asp 转到撰写留言页面 else 存在记录 if counts=0 or counts= t
13、hen counts=10 每页留言条数 rs.pageSize = counts 每页记录数 allpages = rs.pageCount 总页数 page = Request(page) 从浏览器取得当前页 If not isNumeric(page) then page=1 page不是数字 if isEmpty(page) or Cint(page) = allPages then page 值大于总页数 page = allPages end if rs.AbsolutePage = page 转到某页头部 Do While Not rs.eof UserName=rs(Name)
14、 用户名 Comments=rs(Comment) 内容 Reply=rs(Reply) 回复 Usermail=rs(Email) 邮件 url=rs(Url) 主页 replyname = rs(ReplyName) 回复人姓名 I=I+1 序号 temp=RS.RecordCount-(page-1)*rs.pageSize-I+1 % 四、管理员登录页面(admin_login.asp) %if request.QueryString(act)=login then 管理员登陆 user = Request.Form(username) 读取从表单传递过来的用户名数据 pass = R
15、equest.Form(password) 读取从表单传递过来的密码数据 Set NArs=Server.CreateObject(Adodb.RecordSet) 建立RecordSet 对象 从数据库中查找Admin 列的值为user,pwd 列的值为pass 的记录 sql=Select * from note_admin where Admin=&user& and pwd=&pass& 执行查询操作,并将结果保存在NArs 中 NArs.open sql,conn,1,1 If not(NArs.bof and NArs.eof) Then 存在满足条件的记录,则登录成功 Sessi
16、on(login) = ok 将Session 变量login 置为ok Session(user) = NArs(Admin) 将当前登录管理员的用户名赋给Session 变量user Session(id) = NArs(id) 将当前登录管理员的id 赋给Session 变量id Response.Redirect admin_main.asp?action=main 页面转到留言管理界面Else Response.Write(alert(管理员用户名称或密码输入有误,请检查后重新输入!);history.back() Response.End End If NArs.Close 关闭R
17、ecordSet 对象 Set NArs= nothingEnd If%五、登录失败(admin_loginout.asp) 六、登录成功,管理页面(admin_loginmain.asp) % dim rs,msg_per_page dim sql msg_per_page = 10 每页显示记录数 Set rs=Server.CreateObject(ADODB.Recordset) 创建RecordSet 对象 sql=select * from note_comment order by id desc 从数据库中查询所有记录并按照id 降序排列 rs.pagesize = msg_p
18、er_page 每页显示记录数 rs.open sql,conn,1,3 执行查询操作 if rs.eof and rs.bof then 数据库中不存在记录 response.write 暂时没有留言 end if if not (rs.eof and rs.bof) then 检测记录集是否为空 totalrec = RS.RecordCount 总记录条数 if rs.recordcount mod msg_per_page = 0 then 计算总页数,recordcount:数据的总记录数 n = rs.recordcountmsg_per_page n:总页数 else n = r
19、s.recordcountmsg_per_page+1 n:总页数 end if currentpage = request(page) currentpage:当前页 If currentpage then currentpage 值存在 currentpage = cint(currentpage) cint函数将currentpage 转换为整数 if currentpage 1 then currentpage 值小于1 currentpage = 1 end if if err.number 0 then 产生某种错误 err.clear 清除错误信息 currentpage = 1
20、 end if else currentpage 值为空 currentpage = 1 End if if currentpage*msg_per_page totalrec and not(currentpage-1)*msg_per_page 0 循环显示所有的记录 content=rs(Comment) 留言内容 subject = rs(Subject) 留言主题 reply=rs(reply) 回复内容 UserName=rs(Name) 留言者姓名 使用Response 对象的write 方法在网页上显示复选框、留言者姓名、留言主题、留言内容、留言日期和留言状态 Response
21、.write Response.write &UserName& Response.write lleft(server.htmlencode(subject),50) Response.write subject 建立到管理员回复留言的超级链接 Response.write Response.write lleft(server.htmlencode(content),50) Response.write content Response.write &rs(Postdate)& if Isnull(Reply) then 没有留言回复 response.write 新留言 else 管理员
22、已经回复留言 response.write 已回复 end if rowcount=rowcount-1 显示一条记录后,将每页未显示的记录数减1 rs.movenext 指向下一条记录 loop end if rs.close 关闭RecordSet 对象 set rs=nothing %end subsub delfeedback() 留言删除 if delid= or isnull(delid) then 要删除的记录id 为空 则给出提示 response.write alert(操作失败,没有选择合适参数,请单击“确定”返回!); response.redirect admin_ma
23、in.asp 返回到留言管理界面 response.end else id 存在 执行数据库中的删除操作,删除数据库中id 列的值在delid数组中的记录 conn.Execute(delete * from note_comment where ID in (&delid&) 删除成功,给出提示 response.write alert(留言删除成功,请单击“确定”返回!); response.redirect admin_main.asp 返回到留言管理界面 response.end end ifend subsub detailfeedback() 留言回复 if id= then 要回
24、复的留言id 为空 给出提示 response.write alert(无此留言编号,请单击“确定”返回!); response.redirect admin_main.asp 返回到留言管理界面 response.end end if 修改留言资料 if request(send)=ok then 提交留言回复内容 set rs=server.createobject(adodb.recordset) 创建RecordSet 对象 sql = select * from note_comment where ID=&id 从数据库中查询id 列的值为id 的记录 rs.open sql,conn,1,3 执行查询,并将结果保存在rs 中 if not (rs.eof and rs.bof) t
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1