• 100.50 KB
  • 2022-05-26 19:18:08 发布

基于bs模式的班级管理社区”的构建

  • 9页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
基于B/S模式的班级管理“社区”的构建[摘要]目前大部分学校的班级都是通过人工方式来管理,班主任的工作可想而知,而学生的配合效果并没有达到初步的设想。本文利用当前不断完善的数据库技术,结合ASP技术,对B/S模式的工作原理,“社区”构建的流程及其实现进行分析,构建出一个动态的班级管理社区,以提高班级管理效率。【关键词】SQLServer数据库ASP存储过程B/S模式班级管理“社区”1.引言随着网络技术的迅速发展,人们越来越多地通过Internet来获取大量的、实时的、高效的信息,大大提高了学习、工作的效率。特别是近几年来数据库技术的不断完善和发展,与其结合后的Web的作用得到更多人的支持和认可。目前大部分学校的班级都是通过人工方式来管理,班主任的工作可想而知,大部分的时间都浪费在管理学生的思想、纪律和其他琐碎工作上,而学生的学习、活动的配合效果并没有达到初步的设想。为此,根据这一普遍现象,抓住学生对网络的喜爱心理,利用ASP和数据库技术构建一个动态的班级管理社区,使班级的班委充分发挥其作用各事其职,使学生在社区平台上的同学的监督下自觉改正缺点,提高学习及参加活动的积极主动性,以其来减少班主任或辅导员的工作,把更多的时间投入到教学工作中是本文研究的目的。2.班级管理“社区”的构建原理本文构建班级管理社区的基本原理是B/S模式的工作原理。2.1B/S模式的含义B/S模式即浏览器/服务器模式,是一种网络结构模式,发展于二层C/S模式[2](客户端服务器模式),应用于大型的管理信息系统时,大大地降低了软件开发、维护和升级的费用。2.2B/S模式的工作原理B/S模式的工作原理图如图一所示:浏览器数据库服务器Web服务器图一B/S模式工作原理图说明:B/S模式的基本工作原理如图一所示,即客户端使用浏览器界面输入需要的数据信息,提交给web服务器,web服务器接到请求后通过网关与数据库服务器相连,数据库服务器通过监测,验证请求的合法性[2],并将处理的结果返回给web服务器,web服务器再将结果转化成HTML文档形式提交给浏览器,客户端就能看到以页面形式呈现的处理结果。3.采用的技术本文构建的班级管理社区主要采用ASP技术,它是MicrosoftIIS服务器所提供的一项用来替代传统CGI程序的技术,它提供了一种服务器端脚本编写环境和服务器端运行的环境。[3]在ASP中所有的程序都将在服务器中执行,服务器仅将执行的结果返回给客户端浏览器,这样就减轻了客户端的负担,大大提高了交互的速度。9 同时由于它是服务器端脚本,一般用户无法看见,有效地保证了系统的安全性。采用的开发工具是DreamweaverMX,使用的数据库用SQLServer建立。在众多数据库软件中采用SQLServer软件主要是因为它是基于服务器的中型数据库,可以适合大容量数据的应用,数据库大小无极限限制,在处理海量数据的效率,后台开发的灵活性可扩展性等方面强大[5]。因为现在的数据库都使用标准的SQL语言来管理数据库,如果两者都是标准SQL语言就基本可以通过。同时它提供了许多图形化的管理和开发工具,安全性高,为用户提供了方便。后台服务器采用MicrosoftIIS作为服务器。4.总体设计4.1班级管理社区的数据流程图其数据流程图如图二所示:论坛密码验证个人信息班长数据库班级密码学生密码验证学习委员学生密码验证班级活动生活委员密码验证学生成绩信息密码验证成绩信息纪律委员纪律表现宿舍园地学生图二班级管理“社区”数据流程图其数据流程图按照部分围绕整体原则,整个班级信息作为数据仓库。以学生作为主要使用者,通过前台ASP查看相关信息,部分隐私性信息(如:成绩信息)通过个人密码验证来查询结果。数据库的更新主要由各班委负责,通过密码验证向数据库添加或删除信息。4.2功能结构模型图其功能结构模型图如图三所示:9 班级管理社区班级插入删除更新论坛更新数据库管理模块前台界面设计模块基本表存储过程学习纪律宿舍查看操作直接调用个人信息班级活动成绩信息…公布信息布置作业每周纪律…查询图三功能结构模型图该“社区”的功能结构主要由两部分组成:一是,数据库管理模块。主要由基本表和存储过程组成,重点是存储过程的建立与使用。二是,前台界面设计模块,主要由查询模块,论坛,相应模块的更新组成。整个“社区”的主要功能实现集中体现在前台界面直接调用后台的存储过程方面。本文在使用ASP与SQLServer时主要是通过使用ASP来调用数据库内的存储过程。主要是基于存储过程具有以下优点:①存储过程允许当作组件来使用存储过程被创建后可以在程序中被多次调用,而不必重新编写该存储过程的SQL语句。管理员可以随时对存储过程进行修改,而对源程序代码不会产生任何影响(因为在源程序代码内只含有调用语句)。②存储过程执行速度快存储过程是预编译的,在首次运行一个存储过程时,查询优化器对其进行分析、优化,最终给出执行计划[1]。而若使用SQL语句在每次运行时都要进行编译,速度比较慢。③存储过程能减少网络流量在对一个数据库进行查询、修改时,涉及此操作的过程被组织成存储过程,那么当客户端调用时,只是通过网络传送该调用语句,而不是多条SQL语句,从而减少了网络流量。④使用存储过程时它可看做是一种安全机制管理员对某一存储过程的执行权限进行限制,就能够实现对相应的数据访问权限的限制,避免非授权用户访问数据,保证了数据的安全性。5.数据库设计使用的数据库主要用SQLServer建立,主要包括基本表和存储过程两个部分。5.1基本表基本表主要有学生信息表,活动情况表,学习情况表,纪律情况表,宿舍情况表,论坛信息表,班长专栏表,学委专栏表,生委专栏表,纪委专栏表10个表。其中,前面6个表主要用于查询,后面4个表主要用于对数据库的更新。各表由相应的班委进行管理,如下:9 Dbo.[xsxxb]:学生信息表,有学号、姓名、政治面貌、职务、宿舍编号、宿舍电话、QQ、Email、手机号码字段。Dbo.[hdqkb:活动情况表,有活动时间、活动地点、活动主题、出席人数、活动支出字段。Dbo.[xxqkb]:学习情况表,有学号、学习成绩、其他成绩、综合测评、名次、密码字段。Dbo.[jlqkb]:纪律情况表,有学号、升旗缺勤数、旷课早退次数、未佩带校徽次数、劳动出勤率、工作值班缺勤次数。Dbo.[ssqkb]:宿舍情况表,有评比月份、宿舍编码、宿舍成员、文明宿舍与否、排名、缺勤成员名单字段。Dbo.[bzzlb]:班长专栏表,有公布时间、主题、内容字段。Dbo.[xwzlb]:学委专栏表,有公布时间、作业信息、考试信息字段。Dbo.[jwzlb]:纪委专栏表,有升旗缺勤名单、星期、旷课早退名单、未佩带校徽名单、劳动缺勤名单、工作值班缺勤名单字段。Dbo.[swzlb]:生委专栏表,有时间、学习用品支出、体育用品支出、活动支出、总计字段。Dbo.[bbs]:论坛信息表,有用户名、主题、内容、回复四个字段。5.2存储过程存储过程主要分为两部分,各存储过程由相应的班委进行管理。一部分用来直接查询基本表中信息或通过密码进行验证,后对基本表进行查询;另一部分主要通过密码对基本表进行更新。存储过程主要有18个,主要有:select_grxx:查看个人信息,方便同学间联系。select_hd:查看班级活动情况,关注班集体生活。select_xxcj:带有密码参数,当输入密码后方可查询相应的学习成绩,具有保密性。select_jlsh:查询每位学生的学习纪律、工作纪律方面的情况,便于互相监督,不断进步。select_ssyd:用于查询每个宿舍的评比情况,有助于互相监督,同时不断养成良好的生活习惯。Select_bzgg:查看班长公告栏的信息。Select_jwgg:查看纪律委员公布的信息。Select_xwgg:查看学习委员公布的信息。Select_swgg:查看生活委员公布的信息。Select_bbs:查看灌水区的内容。insert_bz:班长使用自己的密码对班长公告栏进行插入更新。delete_bz:班长使用自己的密码对班长公告栏进行删除更新。insert_xw:学习委员使用自己的密码对学委公告栏进行插入更新。delete_xw:学习委员使用自己的密码对学委公告栏进行删除更新。insert_sw:生活委员使用自己的密码对生委公共栏进行插入更新。delete_sw:生活委员使用自己的密码对生委公共栏进行删除更新。insert_jw:纪律委员使用自己的密码对纪委公告栏进行插入更新。update_jwzl:纪律委员使用自己的密码对每周的纪律情况进行更新。6.各模块的设计本“社区”采用ASP框架设计,分数据库层,应用程序逻辑层,客户端层共三层结构。它可以有效地保证数据库、整个“社区”的可移植性和可扩展性。为保证数据安全,还须对用户权限进行判断。“社区”用户主要分两个级别,一个是普通学生,一个是班委。6.1普通学生模块普通学生使用班级密码正常登录后,可以查看相应的模块内容。普通学生页面的主要模块有五个模块分别是:班级活动查询,同学录查询,学习情况查询,纪律情况查询,宿舍情况查询。6.1.1班级活动查询默认情况下,普通学生正常登录班级“社区”后,可以查看该班级近期以来举行的活动情况,9 包括出席人数,活动支出等,同时学生可以了解班级即将举行的活动。该模块的更新由生活委员完成。6.1.2同学录查询默认情况下,学生可以查询本班级所有同学的信息,具体内容见学生信息表。如果用户发现自己的信息有误,可以给管理员留言,留下用户最新的资料,由管理员修改数据。个人信息的公开有利于班委通知学习、工作任务安排,同时方便同学之间的交流。6.1.3学习情况查询默认情况下,学生正常登录班级“社区”,使用自己的密码在该页面验证后,可以查看本人的学习信息,即考核成绩浏览。出于保护个人隐私的目的,他没有权利浏览其他同学的考核信息,只能查看自己的资料。该模块的更新由学习委员完成。6.1.4纪律情况查询默认情况下,学生可以查看各周以来班级各个同学累计的纪律表现情况,这样做有利于学生互相监督,及时了解自己的行为动向,积极改正缺点。该模块的更新由纪律委员完成。6.1.5宿舍情况查询默认情况下,学生可以查看自己所在宿舍的卫生文明评比情况,查看宿舍出勤情况,从而完善宿舍管理制度,使学生养成自觉归舍,保持生活区清洁的好习惯。该模块的更新主要由生活委员完成。6.2班委模块班委页面(即班委专区)的主要模块有:班长专栏、学习委员专栏、纪律委员专栏、生活委员专栏。主要分为查询和更新两个功能,如下:班长专栏:由班长发布信息,班长通过密码验证进行更新信息。学习委员专栏:学习委员通知作业信息,考试信息。学习委员通过密码验证更新信息。纪律委员专栏:纪律委员汇总上周班级同学出勤等情况。纪律委员通过密码验证更新信息。生活委员专栏:生活委员汇总各个月份班级的支出情况。生活委员通过密码验证更新信息。6.3灌水区其作用类似于论坛的作用,班级同学可在该区域内进行学习、工作交流,加强情感交流。7.管理“社区”功能的实现该“社区”的功能主要分为查询和更新两方面。其功能的实现主要体现在ASP如何调用SQLServer内的存储过程,而不是在页面内直接写一大串代码调用表中数据。如4.2所述使用存储过程的优势,当存储过程中不用参数,而是单一sql语句时,它还不能很好地体现出来,但如果要调用的存储过程中需要输入或输出参数时,它的优势就明显得以体现。我们只需在ASP页面内把参数传递过去就可以得到结果,而无须写一大段程序来调用。贯穿整篇文章的思想就是利用ASP页面向数据库内的存储过程传递参数,从而实现查询、更新,维护数据库安全的功能[2]。7.1存储过程的建立该“社区”建立的存储过程主要有两种:无参数的存储过程、有输入无输出参数的存储过程[6]。7.1.1无参数的存储过程例如:同学录中查询班级个人信息CREATEPROCEDUREselect_grxxASselect*fromdbo.[xsxxb]GO7.1.3有输入无输出参数的存储过程例如:查看个人成绩CREATEprocedureselect_xxcj@passwordchar(10)assetnocounton9 beginif@passwordisnotnullselect*fromdbo.[xxqkb]wherepassword=@passwordreturnendGO例如:纪律委员更新纪委专栏表CREATEprocedureupdate_jwzl@sqqqmdchar(50),@daytimechar(10),@kkztmdnvarchar(100),@wpdxwmdnvarchar(100),@ldqqmdnvarchar(100),@gzzbqqmdnvarchar(100),@passwordchar(10)assetnocountonbeginif@password="6"updatedbo.[jwzlb]setsqqqmd=@sqqqmd,daytime=@daytime,kkztmd=@kkztmd,wpdxwmd=@wpdxwmd,ldqqmd=@ldqqmd,gzzbqqmd=@gzzbqqmdwheredaytime=@daytimeselect*fromdbo.[jwzlb]endGO7.2数据库的连接ASP与SQLServer连接有多种方法,可通过建立Recordset对象,Command对象或Connection对象,然后用对象的Open方法建立与数据库的连接[4]。本文采用的是Connection对象,代码如下:<%setconn=Server.CreateObject("adodb.connection")mystr="driver={SQLServer};server=(local);database=班级社区;uid=sa;pwd="conn.openmystr%>7.3存储过程的调用存储过程的调用可以通过建立Connection对象或Recordset对象或Command对象,本文直接查询模块采用建立Command对象来实现调用,有密码输入查询模块采用建立Command和Recordset对象相结合来实现调用。从返回值的数目来分,存储过程的调用结果可以分为单一记录集和多记录集两个种类。本文返回的主要是多记录集。7.3.1无参数的存储过程的调用调用无参数的存储过程的语法如下:9 例如:调用查看个人信息的存储过程select_grxx。<%dimmycomm,myrstsetmycomm=Server.CreateObject("adodb.Command")withmycomm.ActiveConnection="driver={SQLServer};server=(local);database=班级社区;uid=sa;pwd=".CommandText="select_grxx".CommandType=4.Prepared=truesetmyrst=mycomm.Executeendwith%>其中,各语句的含义分别是:setmycomm=Server.CreateObject("adodb.Command"):建立Command对象。withmycomm:建立多个记录集.ActiveConnection="driver={SQLServer};server=(local);database=班级社区;uid=sa;pwd=":指定数据库连接。.CommandText="select_grxx":指定存储过程名。.CommandType=4:表明这是一个存储过程。mycomm.Prepared=true:要求将SQL命令先行编译。Setmyrst=mycomm.Execute:执行对象命令,并将结果保存在myrst记录集内。7.3.2有输入无输出参数的存储过程的调用调用有输入无输出参数的存储过程的主要方法如下:例如:调用查看个人成绩的存储过程select_xxcj。<%dimmystrdimconndimcmddimrssetconn=Server.CreateObject("adodb.connection")mystr="driver={SQLServer};server=(local);database=班级社区;uid=sa;pwd="conn.openmystrsetcmd=server.CreateObject("adodb.command")setcmd.activeconnection=conncmd.commandtext="select_xxcj"cmd.commandtype=4cmd.Parameters.appendcmd.CreateParameter("@password",129,1,10)cmd("@password")=request.Form("pwd")setrs=server.createobject("adodb.recordset")rs.cursortype=3rs.locktype=3rs.cursorlocation=3setrs.source=cmdrs.open%>用户要查询自己的成绩时,在文本框中输入密码,进行验证。文本框获得用户输入的密码后,通过Command对象的CreateParameter方法传递给数据库内的@password参数,即传递密码信息。cmd.Parameters.appendcmd.CreateParameter("@password",129,1,10):声明参数。其中,声明参数时9 ,后面参数主要有四个:第一个参数("@password")为参数名。参数名可以任意设定,但需要特别注意的是:在声明参数时,顺序一定要与存储过程中定义的顺序相同,而且各参数的数据类型、长度也要与存储过程中定义的相同。第二个参数(129),表明该参数的数据类型为字符型,各数值主要参照ADO参考的数值。第三个参数(1),表明参数的性质,此处1表明这是一个输入参数。此参数取值的说明如下:0:类型无法确定;1:输入参数;2:输出参数;3:输入或输出参数;4:返回值第四个参数(10):表示数据的长度。例如:调用纪律委员更新纪委专栏表的存储过程update_jwzl<%dimcmddimrsdimconnsetconn=Server.CreateObject("adodb.connection")mystr="driver={SQLServer};server=(local);database=班级社区;uid=sa;pwd="conn.openmystrsetcmd=Server.CreateObject("adodb.Command")withcmd.ActiveConnection="driver={SQLServer};server=(local);database=班级社区;uid=sa;pwd=".CommandText="update_jwzl".CommandType=4.Prepared=truecmd.Parameters.appendcmd.CreateParameter("@sqqqmd",129,1,50)cmd("@sqqqmd")=request.Form("sqqqmd")cmd.Parameters.appendcmd.CreateParameter("@daytime",129,1,10)cmd("@daytime")=request.Form("xq")cmd.Parameters.appendcmd.CreateParameter("@kkztmd",202,1,100)cmd("@kkztmd")=request.Form("kkztmd")cmd.Parameters.appendcmd.CreateParameter("@wpdxwmd",202,1,100)cmd("@wpdxwmd")=request.Form("wpdxwmd")cmd.Parameters.appendcmd.CreateParameter("@ldqqmd",202,1,100)cmd("@ldqqmd")=request.Form("ldqqmd")cmd.Parameters.appendcmd.CreateParameter("@gzzbqqmd",202,1,100)cmd("@gzzbqqmd")=request.Form("gzzbqqmd")cmd.Parameters.appendcmd.CreateParameter("@password",129,1,10)cmd("@password")=request.Form("mima")setrs=server.createobject("adodb.recordset")rs.cursortype=3rs.locktype=3rs.cursorlocation=3setrs.source=cmdrs.openendwith%>7.4存储过程的调用结果的显示存储过程的显示主要是将记录集分项显示在表格内,其语法如下:<%9 whilenotmyrst.eof%><%myrst.movenextwendsetmycomm=nothing%>
<%=myrst(0)%><%=myrst(1)%><%=myrst(2)%>
即当记录不为空时,逐条显示信息,记录为空后,清除记录集。8.实际操作中遇到的问题结合理论,在实际操作中,发现以下问题:(1)在利用ASP调用存储过程时,须将数据库登录方式设置为混合方式才可登录。(2)根据查阅的相关资料表明,在输出记录前须声明所有参数,而在操作过程中发现,无须进行声明所有参数也可得到调用结果。(3)浏览、刷新网页时,发现调用存储过程比直接写ASP代码的速度快(4)结果发生错误时,无须修改复杂的ASP代码,只须改动存储过程内的代码即可。(5)在定义参数时,发生如下错误ADODB.Parameters(0x800A0E7C)不正常地定义参数对象。提供了不一致或不完整的信息。产生错误的原因:在VBScript中,很多参数常量没有定义,我们不能直接输入常量字母,比如char字符型。解决方法:我们需要用具体的数值(129)代替。(6)在对应所需名称或序数的集合中,未找到项目(在查询分析器里面测试没问题,外部ASP调用的时,发现日志已经记录了各种测试情况)。产生错误的原因:ASP只能得到存储过程的第一个事务。解决方法:利用Command和Recordset对象相结合,Command用于声明和传递参数并执行存储过程,Recordset对象用于取得执行结果。9.结束语用ASP技术调用SQLServer内的存储过程来实现基于B/S模式的班级“社区”的管理,可以使学生养成自觉遵守纪律,自觉学习的好习惯,提高教师、班委的工作效率。同时可以加快客户端的浏览速度,使后台数据库具有更高的安全性,减轻管理员的维护工作。参考文献:[1]萨师煊,王珊.数据库系统概论[M].高等教育出版社.[2]滕书娟,王立军.Web与数据库的连接技术.辽宁大学学报(自然科学版)[J],2002.[3]齐文海.ASP与SQLServer站点开发实用教程[M].机械工业出版社,2005.[4]唐汇国,张泰山,陈志盛.基于ASP的数据库连接[A].计算机工程与应用[C].2003.[5]李伟红.SQLServer2000数据库及应用[M].北京:清华大学出版社,2005.[6]杨正洪,孙言辉.中文SQLServer2000关系数据库系统管理和开发指南[M].机械工业出版社.9

最近下载