基于BS架构的班级网站设计与实现--ASP课程设计_第1页
基于BS架构的班级网站设计与实现--ASP课程设计_第2页
基于BS架构的班级网站设计与实现--ASP课程设计_第3页
基于BS架构的班级网站设计与实现--ASP课程设计_第4页
基于BS架构的班级网站设计与实现--ASP课程设计_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、ASP课程设计实验报告项 目 名 称: 基于B/S架构的班级网站设计与实现 参 与 成 员: 学 号: 联 系 电 话: 日 期: 2010-11-02 一、前言ASP(Active Server Pages)活动服务器页面,基于微软公司的服务器IIS的统一环境,是Microsoft的一种技术,它起一种编程语言的作用,利用它编写动态产生网页的HTML程序代码。ASP可以使用两种脚本语言:VBScript和Jscript(所谓的Jscript语言就是微软件版本的JavaScript语言) ,但主要使用VBScript。这些脚本可以执行应用程序逻辑,并能够用ActiveX组件执行特殊任务,如数据库

2、查询、文件输入输出等。ASP内含5个内置的Active Server Components(ActiveX服务器组件),即Database Access component(数据库访问组件)、File Access component(文件访问组件)、Ad Rotator component(广告轮显器组件)、Browser Capabilities component(浏览器信息组件)、Content Linking component(内部链接组件)。最常用的内置组件是文件组件和广告组件。ASP最强大的功能还是使用外置组件。ASP本身包含了一个DLL文件,名字为asp.dll,缺省安装在W

3、inntSystem32inetsrv目录下。这个DLL文件负责得到一个ASP页面(由文件扩展名.asp标识),然后对它进行分析,寻找服务器端脚本内容。这个脚本传给相应的脚本引擎,脚本的执行结果与ASP页中的HTML和模板文本结合在一起。完整的页面会送到Web服务器,送往原先请求的客户端。二、个人网站的设计体系结构本系统通过客户端浏览器向网络上的服务器发出请求,服务器对浏览器的请求进行处理,将用户所需信息返回到浏览器。B/S结构简化了客户机的工作,把二层C/S结构的事务处理逻辑模块从客户机的任务中分离出来,由Web服务器单独组成一层来负担其任务,从而减轻了客户机的压力。系统的体系架构:Brow

4、ser/Web/DataBase(Access)。设计目标在现有的各种异构平台的基础之上构筑一个通用的平台无关、语言无关的技术层,将网站的所有功能作为Web服务展示出来,用户根据自己的需要选择相关的服务。主要功能模块图1 主要功能模块本系统的权限采用基于角色的访问控制,权限赋予角色,角色分配给用户。用户通过所属的角色享有权限。通过权限控制,保障了合法用户顺利实现系统功能,禁止了非授权用户对系统的入侵。数据库设计通讯录通讯录数据库文件bjtxl.mdb文件包括两个表,分别为alogin和txl。alogin用来存储登录界面的用户名和密码信息,txl用来存储同学的信息,表1和表2所示表1 数据库表

5、alogin的结构字段名类型说明ID自动编号用户的标识yhm文本(20)登录的用户名mm文本(20)登录的密码表2 数据库表txl的结构字段名类型说明ID自动编号同学信息的标识xm文本(20)同学的姓名lxfs文本(80)同学的联系方式bz文本(80)备注留言簿留言簿数据库包括两个表GuestBook和hfBook。GuestBook用来存储教师留言信息,hfBook用来存储教务员的回复信息,表3和表4所示。hfBook数据库表中的字段“rID”存储原主题的ID,该ID就是GuestBook数据库表中的ID字段。表3 数据库表GuestBook的结构字段名类型说明ID自动编号留言的标识姓名文本

6、(80)留言人的姓名E-mail文本(160)留言人的E-mail主题文本(255)留言的主题留言备注留言的内容时间日期/时间留言的时间,now()IP文本留言人的IP地址Verify数字验证标志,暂时没用表4 数据库表hfBook的结构字段名类型说明ID自动编号回复信息的唯一标识rID数字原来主题的ID用户名文本回复人的姓名IP文本回复人的IP地址回复内容文本回复的内容时间日期/时间回复的时间三、系统实现1.身份认证主要代码:<% syhm=request("yhm")smm=request("mm")set rs=server.CreateOb

7、ject("Adodb.recordset")sql="select * from alogin where yhm='"&syhm&"'"rs.open sql,connif syhm="" then response.Write("管理员的名不能为空!") %><link href="css/alogin1.css" rel="stylesheet" type="text/css" /&g

8、t; <p><a href=javascript:history.back()>请输入管理员名!</a><br><br> <% response.End() end if if smm="" then response.Write("密码不能为空") %> <a href=javascript:history.back()>请输入密码!</a><br /><br /> <% response.end() end if if syh

9、m<>"chenqing" then response.write("您不是系统管理员!") %> <a href=javascript:history.back()>请重新输入系统管理员名!</a> <br /><br /> <% response.end() else if smm=rs("mm") then response.Redirect(session("file") else %> <a href=javascript

10、:history.back()>密码错误!请重新输入密码!</a> <br /><br /> <% end if end if rs.closeset rs=nothingconn.closeset conn=nothing%></p>2.聊天室进入聊天室需要进行身份认证,完成此操作过后,自动跳转至聊天界面,在页面上方可以可见当前在线人数,其主要代码如下: message.asp:聊天室的信息输入界面<% mywords = Request("message")oneSentence = "姓

11、名:" & Session("username") oneSentence = oneSentence & "机器号:" & Session("no")& "说:" & mywordsApplication.Lock()Application("talk")=Application("talk") & oneSentence & "<br>"Application.UnLock(

12、)%><HTML><BODY BGCOLOR="LIGHTBLUE"><FORM METHOD="POST" ACTION="MESSAGE.ASP"><INPUT NAME="message" TYPE="TEXT" SIZE="50"><INPUT TYPE="SUBMIT" VALUE="SEND"></FORM></BODY></HT

13、ML> display.asp:聊天信息显示页面<HTML><HEAD><META HTTP-EQUIV="REFRESH" CONTENT="3;URL=display.asp"><SCRIPT LANGUAGE="JavaScript"> function scrollWindow() this.scroll(0,65000)setTimeout('scrollWindow()',200) scrollWindow()</SCRIPT></HE

14、AD><BODY><%Response.Write(Application("talk")%></BODY> </HTML>3.留言簿留言簿包含提交留言,浏览留言,编辑留言(修改和删除),清除重写四大模块,其中编辑留言需要身份认证才可以进行修改、删除操作;并且浏览留言采用分页显示技术。“留言簿”主页面运行效果如图2所示,其主要代码如下: handle.asp:处理程序<%'读取各字段的数据Name = Request("Name")Email = Request("Email&

15、quot;)Subject = Request("Subject")Memo = Request("Memo")'检查各字段是否输入了数据If Name = "" Or Email = "" Or Subject = "" Or Memo = "" Then Response.Write ("字段空白不接受!")'不再处理以下的程序 Response.End End If'插入到数据库set conn = Server.Create

16、Object("ADODB.Connection")conn.Open("driver=Microsoft Access Driver (*.mdb);dbq=" &_Server.MapPath("lyb.mdb")SQL = "INSERT INTO lyb(姓名,email,主题,内容) VALUES('" &_Name & "','" &Email & "','" & Subjec

17、t & "','" & Memo & "')"'Response.Write(SQL)conn.Execute(SQL)conn.close()Response.Redirect("display.asp")%> display.asp:显示程序<%'连接数据库,做查询set conn = Server.CreateObject("ADODB.Connection")conn.Open("driver=Microsoft Acce

18、ss Driver (*.mdb);dbq=" &_Server.MapPath("lyb.mdb")sql = "SELECT * FROM lyb ORDER BY 时间 DESC"set rs = conn.Execute( sql )%><%'按照的样式输出While Not rs.EOF%> <TABLE BORDER="0" BORDERCOLOR="#111111"> <TR> <TD><B><FONT

19、SIZE="4" COLOR="#008080">姓名:</FONT></B></TD> <TD><%=rs("姓名")%></TD> </TR> <TR><TD><B><FONT SIZE="4" COLOR="#008080"> Email:</FONT></B></TD> <TD><A HREF=&q

20、uot;MAILTO:<%=rs("email")%>"> <%=rs("email")%></A></TD> </TR> <TR><TD><B><FONT SIZE="4" COLOR="#008080">主题:</FONT></B></TD> <TD WIDTH="542" HEIGHT="17">&l

21、t;%=rs("主题")%></TD></TR> <TR><TD><B><FONT SIZE="4" COLOR="#008080">时间:</FONT></B></TD> <TD><%=rs("时间")%></TD> </TR> <TR><TD><B><FONT SIZE="4" COLOR=

22、"#008080">内容</FONT></B></TD> <TD><%=rs("内容")%></TD> </TR> </TABLE> <HR><%rs.movenext()Wend%>图2 留言簿主页面4.通讯录通讯录的功能是保存姓名、E-mail地址、家庭住址等常用的联系信息。模块包含浏览记录,查询记录,添加记录和编辑记录(修改和删除)四个部分,其中添加记录和编辑留言需要身份认证。浏览留言采用分页显示技术,通讯录主页面运行效果如

23、图3所示,其主要代码如下: add.asp:添加记录<% set rs=server.CreateObject("adodb.recordset")rs.open "txl",conn,1,2 rs.addnew rs("xm")=request.Form("xm") rs("lxfs")=request.Form("lxfs") rs("bz")=request.Form("bz") rs.Update response.wri

24、te "记录己经被成功输入。" rs.close set rs=nothing conn.close set conn=nothing %> del.asp:删除记录<% id=request.querystring("id") SQLstmt="DELETE from txl where id="& id &"" conn.execute(SQLstmt) conn.close set conn=nothing Server.Transfer "tongxunlu.asp&q

25、uot; %> query.asp:查询记录<% xm2=request.form("xm") sqlstmt="SELECT * from txl where xm='"& xm2 &"'" set rs=server.createobject("adodb.recordset") rs.open sqlstmt,conn,1,1 totalerec=rs.recordcount if totalerec=0 then response.write "没有符合

26、条件的记录,请重新输入!" response.endend if%> <table> <tr> <td>姓名</td> <td>联系方式</td> <td备注</td> </tr><% do while not rs.eof %> <tr align="center"> <td ><%=rs("xm")%></td> <td><%=rs("lxfs&q

27、uot;)%></td> <td><%=rs("bz")%></td> </tr><% rs.movenext loop rs.close set rs=nothing conn.close set conn=nothing %> </table> mod.asp:修改记录<% id3=request.form("id")xm3=request.form("xm")lxfs3=request.form("lxfs")bz

28、3=request.form("bz")sqlstmt="UPDATE txl set xm='"& xm3 &"',lxfs='"& lxfs3 &"',bz='"& bz3 &"' where id="& id3 &""conn.execute(sqlstmt)conn.closeset conn=nothingserver.transfer "ton

29、gxunlu.asp"%>图3 通讯录主页面图4 通讯录浏览5.图片计数器图片计数器是Application对象的一个用途,因为Application是所有的用户所共有的,所以可以存储计数器的值,当有新用户访问网页时自动增值计数器的值。其代码如下:<% Application.Lock()Application("Counter") = Application("Counter") + 1Application.UnLock()Function G ( counter ) Dim S, i S = CStr( counter ) F

30、or i = 1 to Len(S) myimage = myimage & "<IMG SRC=" & Mid(S, i, 1) & ".gif>" Next G = myimageEnd Function %><P ALIGN="CENTER">您是本站第<%=G (Application("Counter")%> 位贵宾! </P>6.当前时间当前时间是now()自动调用系统时间实现的,其代码如下:<script langua

31、ge="vbscript">document.write(now()</script>7.在线人数统计在线人数统计采用Application对象和Session对象来编写。当网站开启时就自动调用global.asa文件,此时其中的Application_OnStart首先被调用,然后执行其中的语句,Application("whosOn")被自动清零。然后当第一位用户登录网站时,Session_OnStart被调用,此时Application("whosOn")被自动加一。当第二位、第三位用户登录时,又被加一,所以显

32、示的是在线的人数。其代码如下: CountOnLine.asp<%Response.Write("现在有" & Application("whoson")& "人在线")%> global.asa<Script LANGUAGE="VBScript" RUNAT="SERVER">Sub Application_OnStart()Application.Lock()Application("whosOn") = 0Application

33、.UnLock()End SubSub Session_OnStart()Application.Lock()Application("whoson") = Cint(Application("whoson") + 1Application.UnLock()End SubSub Session_OnEnd()Application.Lock()Application("whoson") = Cint(Application("whoson") - 1Application.UnLock()End Sub</S

34、cript>8.广告轮显广告图片的动态显示时利用内置组件ADROTATOR来实现的。使用该组件,可以在每次访问中显示不同的图标,可以设置广告的不同权重使得显示频率不同。其代码如下: ad.asp<META HTTP-EQUIV="REFRESH" CONTENT="3"URL=DEFAULT.ASP><% set MyAdvertise = Server.CreateObject("MSWC.AdRotator")%><CENTER><%=MyAdvertise.GetAdvertise

35、ment("ad.txt") %></CENTER> ad.txtREDIRECT ad_redir.aspWIDTH 230 HEIGHT 60 BORDER 0*yule.gif././web/mifeng.html 娱乐天宫40welcome.gif././zhuye.asp 我的地盘我做主30lvhai.gif././web/lvhai.mht 安徽绿海商务学院30 ad_redir.asp<% Response.Redirect(Request("url") %>9.文件链接组件文件链接组件使用户可以在你页面中自由

36、跳转,当有许多并列的页面时,改组件非常有用,可以大大简化每个页面加入相应链接信息的这个过程。其代码如下: link.asp总文件个数为:<%Set Link = Server.CreateObject("MSWC.nextlink")Response.Write(Link.GetListCount("link.txt")%><BR><% Sum = Link.GetListCount("link.txt")'返回文件总数For I = 1 to Sum'用循环依次写出所有的文件链接%>

37、;<a href=" <%=Link.GetNthURL("link.txt",I)%>" target="_blank"> <%=Link.GetNthDescription("link.txt",I)%></a><br><% Next %> link.txtwenjian/01.asp咏白海棠 wenjian/02.asp荷塘月色wenjian/03.asp三国演义 wenjian/05.asp咏菊问菊wenjian/06.asp赤壁怀古1

38、0.记录客户端的IP地址该程序中OpenTextFile(path,8,true)方法有三个参数,第一个参数“path”打开文件的地址;第二个参数“8”是打开方式,这里是以追加的形式打开;第三个参数“true”表示如果该文件不存在就创建一个新文件。Request.ServerVariables("REMOTE_ADDR")为客户端的IP地址,这样所有访问过该页面的IP地址就被记录下来了。其代码如下:<% path = Server.MapPath("test.log")set MyFileObject = Server.CreateObject(&

39、quot;Scripting.FileSystemObject")set MyTextFile = MyFileObject.OpenTextFile(path,8,true)MyTextFile.WriteLine(Request.ServerVariables("REMOTE_ADDR")MyTextFile.Close()%>11.文件上传文件上传组件可以使用户在ASP页面中接受客户浏览器上传的文件。本文件上传包含下载、浏览、删除操作,其中删除操作需要身份认证,用户上传的文件保存到数据库中,Access中是利用类型“OLE对象”来上传文件的。其代码如下

40、: index.asp<HTML> <BODY><P ALIGN='RIGHT'><A HREF="ADD_FORM.ASP">上传文件</A><TABLE WIDTH="100%" BORDER="1"><TR BGCOLOR="#CACACA" ALIGN="CENTER"><TD WIDTH="10%">预览</TD><TD WIDTH=&q

41、uot;15%">名称</TD><TD WIDTH="13%">大小(K)</TD><TD WIDTH="15%">类型</TD><TD WIDTH="17%">简介</TD><TD WIDTH="10%">下载</TD><TD WIDTH="10%">浏览</TD><TD WIDTH="10%">删除</TD&

42、gt;</TR><%set conn = server.createobject("ADODB.CONNECTION")conn.open "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" &_server.mappath("temp.mdb")strSql = "SELECT * FROM uploadfiles ORDER BY submit_date DESC" Set rs = conn.Execute(strSql)Do while No

43、t rs.EofResponse.Write "<tr bgcolor='#EBEBEB'>"Response.Write "<td><img src='showimage.asp?id=" &_rs("id") & "' width='120' height='80'></td>"Response.Write "<td>" & rs("f

44、ilename") & "</td>"Response.Write "<td align='right'>" & Int(rs("size")/1024) & "</td>"Response.Write "<td>" & rs("ext") & "</td>"Response.Write "<td>"

45、 & rs("intro") & "</td>"Response.Write "<td align='center'><a href='download.asp?id=" &_rs("id") & "'>下载</a></td>"Response.Write "<td align='center'><a href='brow

46、se.asp?id=" &_rs("id") & "' target='_blank'>浏览</a></td>"Response.Write "<td align='center'><a href='delete.asp?id=" &_rs("id") & "'>删除</a></td>"Response.Write &qu

47、ot;</tr>"rs.MoveNextLoop%></TABLE></BODY> </HTML> add_form.asp<HTML><HEAD> <SCRIPT Language="JavaScript">function check_Null()if (document.form1.upfile.value="")alert("文件不能为空!"); return false;if (ro.val

48、ue="")alert("说明不能为空!"); return false; return true;</SCRIPT></HEAD><BODY><H2 ALIGN="CENTER">上传文件</H2><CENTER><FORM ACTION="upload.asp" METHOD="post" ENCTYPE="multipart/form-data" NAME="form1"

49、ONSUBMIT="return check_Null();"><TABLE BORDER="0" WIDTH="60%"><TR><TD>选择文件</TD><TD><INPUT TYPE="file" NAME="upfile" SIZE="40"><BR>(文件名请勿用中文)</TD></TR><TR><TD>简单说明</TD&g

50、t;<TD><INPUT TYPE="TEXT" name="intro" SIZE="50">(必须输入)</TD></TR></TABLE><P><INPUT TYPE="SUBMIT" VALUE=" 确定 "></FORM></CENTER></BODY> </HTML> browse.asp<HTML><BODY><img s

51、rc="showimage.asp?id=<%=Request.QueryString("id")%>"></BODY></HTML> showimage.asp<% set conn = server.createobject("ADODB.CONNECTION")conn.open "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" &_server.mappath("temp.mdb")'

52、;打开记录集strSql = "SELECT * FROM uploadfiles WHERE id = " & Request("id")Set rs = conn.Execute(strSql)'下面将文件输出到客户端浏览器Response.ContentType = "image/*" Response.BinaryWrite rs("fileimage") %> download.asp<% set conn = server.createobject("ADODB.C

53、ONNECTION")conn.open "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" &_server.mappath("temp.mdb")'打开记录集strSql = "Select * From uploadfiles where id = " & Request("id")Set rs = conn.Execute(strSql)'下面将文件输出到客户端,首先指明ContentTypeResponse.ContentT

54、ype = "application/octet-stream"'告诉浏览器文件名称Response.AddHeader "Content-Disposition","attachment;filename=" & rs("filename")'告诉浏览器文件大小Response.AddHeader "Content-Length", CStr(rs("size")'输出二进制文件Response.BinaryWrite rs("fileimage")%> delete.asp<%'删除数据库中的记录set conn = server.createobject("ADODB.CONNECTION")conn.open "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" &

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论