网络基础网上学习系统毕业设计报告.doc_第1页
网络基础网上学习系统毕业设计报告.doc_第2页
网络基础网上学习系统毕业设计报告.doc_第3页
网络基础网上学习系统毕业设计报告.doc_第4页
网络基础网上学习系统毕业设计报告.doc_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

毕业(学士学位)论文论文题目:网络基础网上学习系统论文作者: 作者期班:作者队别: 指导教员: 教员单位: 二0 0九 年 五 月 十 日27指导教员意见: 签名:日期:二00 九年 月 日目录网络基础网上学习系统4摘要4引言4一、系统需求分析4二、系统主要功能介绍5(一)知识浏览5(二)学习札记5(三)例题分析与练习5(四)在线考试5(五)在线交流6(六)管理员发布网站公告6(七)站内搜索答案6(八)管理员解答用户的问题6(九)资料上传与下载6三、运行环境及配置6四、开发工具与开发技术7五、模块设计与功能实现详细说明7(一)系统总体结构流程流程图下7(二)JSF框架在项目中的应用具体介绍8(三)登录与注册界面模块9(四)知识浏览模块10(五)例题分析与练习模块10(六)考试模块11(七)在线交流模块11(八)学习札记模块12(九)站内搜索答案模块13(十)管理员专栏模块131.添加公告132.解答用户提问14(十一)资料共享模块141.上传文件142.下载文件15六、技术难点及解决方法15(一)树形导航栏的制作15(二)聊天室中页面的局部刷新的实现181.难点一182.难点二21(三)网页中的分页方法22(四)试卷动态更新与定时提交25(五)管理员发布每日公告26七、收获与体会27八、结束语28九、参考文献28网络基础网上学习系统摘要在我的网络学习系统中,是使用MyEclipse开发工具开发的JSP项目,采用的开发框架是JSF,在项目中加入了Ajax等技术;本网站分为管理员登录与普通用户登录,普通用户登录后,网站将提供的功能有:知识大纲浏览、学习札记管理、课后练习、在线考试、站内搜索答案、资料上传与下载,管理员登录后,网站除了提供普通用户登录后的功能外,还增加的功能有:管理员发布每日公告、管理员管理用户提问等功能。关键词:Myeclipse,JSF,JSP,Ajax,SQL2000引言在电子计算机技术发展日新月异的今天,计算机技术、网络技术和信息技术的发展和应用早已深入到了各行各业,并发挥着它们的巨大潜力,特别是网络的高速化、广泛化发展和运用;网络早已在校园普及,作为当代大学生应当要利用这个先进的平台获取最新信息,通过这个平台来弥补教科书上的的不足,从而不断的充实自己。在这种形势下,互联网上出现了很多的学习网站,但有很多只是描述课本上的大纲和知识点或过于简单无法与学习者进行交互,从而无法做到不同学习者之间共享学习资料与交流学习心得;为此在我们的学习系统中,我充分考虑共享与交流两大主题,在我们的网站中,学习者不仅彼此之间可以互相交流与分享还可以与网站管理员进行交流,网站管理员通过发布公告向在线的学习者提供最新的资讯,同时在我们的网站中提供了问答的模式,使学习者在遇到困难时可以得到管理员的帮助;我们通过提供美观而又友好的用户界面让学习者对我们的网站感到很亲切,从而凝造了轻松的学习气氛。一、系统需求分析第一作为一个网上学习系统,首先应该要有一个服务器,当服务打开时所有联上主机服务器的用户都能够访问本站的资源,因此在主机上就应安装一个服务器,在该系统中所使用的是Tomcat6.0;第二由于学习网站是提供给不同的学习者学习的,那么不同的用户会有不同的信息,以及网站的一些资料都要进行保存,为此应提供一个数据库用于保存这些信息,在本网站使用的是SQL2000;第三作为一个学习网站,学习者在学习时定会遇到许多问题,那么网站应该提供相应的解决方案,在该网站中解决的方法是提供管理员,对用户的提问进行解答和发布网站公告,同时提供在线交流的功能,使不同的用户能够在一起讨论问题;第四作为一个网络学习系统,至少应该具备的功能有:知识大纲浏览、课后练习、在线考试及评分等;第五.作为一个网站,那么页面中应该要有一些动态更新的东西,这样学习者才能及时的看到网站更新的东西,在该网站中我们用Ajax解决这个问题。二、系统主要功能介绍(一)知识浏览用户可以在该网站里浏览网络基础的基础知识,我们专门提供一个界面供用户浏览,在该页面里,我们提供一个树形的菜单导航栏,将网络知识进行分章分节,这样用户可以很方便的浏览,同时方便用户查阅所感兴趣的那部分内容,避免了用户没有目的的浏览。(二)学习札记当我们在浏览网络知识的时候难免会看到感到很有用的部份有用知识,但是又怕以后忘记,或是担心下次上网找不到;没关系,在我们这个网站我们弥补了这个遗憾,在我们的网站,我们为每一个注册过的用户提供一个存放学习笔记的空间,用户根据要求可以把要保存的内容保存起来,供下次上线查看,不用担心他人会对你的笔记进行篡改。 (三)例题分析与练习为了让各位初学者对所学的知识进行巩固与提高,我们提供了例题分析与练习的功能,每一部分都有相应的例题供学者进行练习,在练习模块中,我们特别设计了一个有个性的功能,让练习者在做完练习后能够通过单击相应的按钮获得该例题的答案与精彩分析。从而让练习者通过练习达到提高的目的。(四)在线考试为了测试初学者对所学知识的掌握程度,我们提供了在线考试的功能,该模块能够提供一套试卷给考试者进行测试,并对每个考试者提交的试卷进行评分,并给出最后的答案;在该模块中,我们每次提供给用户的试卷的题目都是不一样的,从而可以让考者可以进行多次考试,让考试者能够进行全方位的测试;同时在考试的时候进行定时提交试卷的功能,提高了考试者的考试应变能力,从而达到真正测试的目的。(五)在线交流知识的提高在于与他人的沟通与交流,为此我们提供了聊天室的功能,为每位在线的用户提供了一个在线交流的页面。所有登录后的用户都可以进入该页面进行群聊,大家可以在此页面中向他人请教自己遇到的难题,也可以帮助他人解决问题。在该模块中,我们对每位聊天者的的聊天记录进行保存,用户可以根据指定的日期进行查找。(六)管理员发布网站公告普通用户登录后可以从主页中查看当日的公告和资讯;当用户以管理员的身份登录网站后,可以在主页中添加每日的最新公告与资讯供在线的用户阅览,从而方便了管理员向用户提供消息!(七)站内搜索答案普通用户登录后可以通过站内搜索解决不懂的问题,当用户输入关健字进行搜索时,网站将会列出所有相关内容的答案供用户参考;当用户暂时没能搜索到要想要的答案,不用担心,我们会把用户的问题保存到数据库等待管理员的回答。(八)管理员解答用户的问题当管理员登录后,可以对用户不懂的问题进行回答,并且可以修改以往的答案,同时管理员可以对那些不良问题进行删除操作;并把结果保存到数据库中供用户下次搜索。(九)资料上传与下载为了让大家共享彼此之间的学习资料我们的网站特提供了资料共享功能,当用户在登录该网站后,对于自己的某些资料觉得很有用的话,可以上传到该网站与其他人分享;同时网站也会提供用户下载他人上传的宝贵资料。三、运行环境及配置操作系统:Window XP。数据库:SQL Server2000 需要升级到SP3版本。部署服务器:Tomcat6.0 。运行方法:打开服务器,将应用程序部署到Tomcat中,启动IE浏览器,在地址栏中输入:http:/localhost:8088/NetStudyWeb/userlogin.faces 即可运行四、开发工具与开发技术JSP开发工具:MyEclipse;服务器:Tomcat6.0;数据库:SQL Server2000;开发框架:Java Server Faces 技术;页面局部刷新:Ajax 技术;文件上传:采用commons-fileupload组件;页面布局:采用CSS/DIV和Table方式;五、模块设计与功能实现详细说明(一)系统总体结构流程流程图下登录框注册页面 主页聊天室大纲浏览课后练习在线考试管理员专栏资料共享学习札记站内搜索添加公告解答提问上传文件下载文件记笔记查看笔记开始考试考试查询删除操作修改操作(二)JSF框架在项目中的应用具体介绍在采用JSF开发框架时,在faces-config.xml配置文件中的design界面中我可以用图形(方框)来表示每个JSP页面,用带箭头的直线来表示页面的跳转关系,箭头上的英文单词表示的意思是从从箭头开始的页面跳转到箭头指向的页面时所触发的事件;JSF框架中我们用ManageBean来处理逻辑控制,具体的Bean类会布属到faces-config.xml配置文件中。要在项目中使用JSF框架要在项目中导入JSF Capabilities类库;具体操作:右键点击项目名称在弹出的菜单中选择:MyeclipseAdd JSF Capabilities即可。那么在布属到该柜架中的JSP布面在以后访问时是以.faces为后缀;由于在JSF中集成了HTML标记,那么在使用他时要在JSP页面的头部引入JSF标签:那么以后我们要写的HTML标记就写在以下的框架中:这里是Html标记但是是以h:开头的;在JSF中页面的跳转与逻辑处理可以采用标签中的action或actionListener方法,那么action中的方法中返回值就是箭头上的英文单词;action调用的是一个JavaBean中的方法,而actionListener中的调用的方法不必有返回值,但是在JavaBean中该方法中要有一个ActionEvent 的形式参数,这两个方法在调用JavaBean中的方法时的语法:”#JavaBean.method() ”(三)登录与注册界面模块在登录界面中我们有分管理员登录与普通用户登录两种模式,当以管理员身份登录后,在主页面里就可以看到管理员专栏里的操作,普通用户则没有该权限。注册页面中,我们采用用户名与密码的验证方式,即每个用户的用户名是不能重复的,在数据库里,我们是以用户名作为主键的;当用户输入的用户名在数据库中不存在时,且两次输入密码一致时该用户就注册成功,否则提示相应错误信息。当用户注册成功后即可登录到该网站,在主页中,管理员与普通用户使用的是同一界面,我们采用身份判断的方式让部份功能是否在该页面中显示;具体方法就是在User.java这个javabean中加一个admin布尔变量,当是管理员登录时就让其为true否则为false;然后在主页中使用JSTL标签控制部份控件是否显示:代码为:这里面是管理员的操作的代码:包括添加每日公告,即时回答用户的提问。流程图如下:登录界面登录注册页面普通用户主页管理员主页(四)知识浏览模块在该页面里,我们把一个页面分为左右两部份,左边是知识点导航栏,右边是具体的知识点内容,用户户用鼠标点击左边的知识点时右边的窗体会自动定位到该知识点的具体内容讲解,方便了用户的查阅。在浏览页面中我使用的窗体分割方式把窗体分为左右两部分:具体代码如下:在left.html页面中,我的树形导航栏采用的是Select标签做成的,当单击时就触发一个onClick事件,那们在JavaScript中用相应的方法执行相应的页面跳转;在right.html布面中,我们采用页内链接的方法便得当点击左边的导航栏时,右边的页面是同一个页面,我们只要采用锚标记一个超链接就可以做到。(五)例题分析与练习模块在这个模块中我们提供的题型有选择题、填空题、判断题、问答题,用户单击导航栏中的按钮时,会定位到具体的题型;在该页面中,我们设计的练习模式是用户先可以做我们给定的题目,做完时可以点击页面中的按钮查看本题的详细答案与解题分析,部份页面如下:未按查看答案按钮时页面如下:按查看答案按钮时页面如下:页面中的逻辑处理主要是调用Exercise.java中的相应方法来实现的。(六)考试模块在该模块中,考试的题型主要是选择题和判断题,在试考界面中我们采用限时考试的模式,当考试时间到时,页面会自动提交,并给出考试的结果,和正确答案供用户参考;在考试页面中,我们每次从数据库中取题时采用随机抽取固定数目的题目,这样,当每次我们刷新一下考试页面时,页面内试卷的题目就会换成另一套不同的题目。定时提交的方法:在JavaScript中定义:window.setTimeout(document.form1.submit();,3600000);随机从数据库中取题的方法:采用Math.random()函数产生一组不重复的数字,用一个数组保存,在数据库中的考试题目的那张表用整数ID作为主键,利用产生的那组不重复的整数去取表中对应的那些记录。(七)在线交流模块在该模块中我们提供一个供所有在线用户群聊的功能的页面,所有登录的用户都会显示在窗体右边的在线用户栏中,窗体中的今日聊天记录是显示的是每日所有用户的聊天记录,要查看历史聊天记录,可以点击下面的相应按钮,选择相应的日期进行查看。界面如下:上图中的三个文本框中的内容的显示采用Ajax局部刷新技术,这样当文本框中的内容改变是实时的,我们感觉不到整个页面在刷新。而Ajax中处理数据库时是通过Servlet调用JavaBean中的方法来执行的具体的ManageBean是Forum.java。具体思想是:今日聊天记录的那个文本框和当前在线用户文本框中的内容是定时刷新的,而输入聊天内容的的文本框中的内容是当用户点击发送按钮时进行刷新一次,查看历史聊天记录的的那个文本框的内容也是当用户单击按钮时刷新一次。(八)学习札记模块这个模块是包含在大纲浏览页面中的,因为方便用户在浏览知识时进行做笔记,主要分为记笔记与浏览做过的笔记两个部份;界面如下:上图中的按钮事件是通过JSF组件的ActionListener和Action两个属性调用Note.java和Browse.java两个JavaBean中相应的方法来执行的。(九)站内搜索答案模块在该模块中我们提供了一个供用户搜索疑问的功能,当用户想问问题时,输入问题的关键字,点击搜索按钮时,页面将列出所有与想关键字相似的所有答案供用户参考,若暂时找不到用户要搜索的答案,我们会将用户提问的题目保存到数据库中,等待网站管理员的解答。在搜索时我们采用模糊查找,使用通配符进行匹配,因此用户要尽量使用关键字进行搜索。主要逻辑处理是在SearchAnswer.java这个Bean中的相应方法来实现的。在页面中的分页我们是采用在SearchAnswer.java中设置一个ArrayList数据类型的对像answer,然后将搜索到答案放在answer中,然后通过点击页面中的上下按钮来决定要从answer中取出那些答案显示在页面中。(十)管理员专栏模块这个模块是专门给管理员设置的,它主要有两个主要部份:管理员添加网站公告和管理员处理用户的提问;1.添加公告在此模块中,我们在主页中的一角专门留一个地方以供显示每日的网站公告;公告的显示模式是动态的,一次显示一条;管理员在一天中随时可以添加多条公告,添加的公告会在所有在线用户的主页中动态显示;管理员操作时要注意的是,要先按添加,再按提交;可以添加多条再按提交;具体的逻辑处理是通过调用User.java中的相应方法来实现的,界面如下:在主页中动态显示公告是通过导入以下javascript文件:script charset=gb2312src=/js/placard.js其中的placard.js是用于控制公告的动态显示2.解答用户提问在此模块中,当管理员进入时该页面时,页面会按用户提问的时间顺序列出数据库中的所有记录,管理员通过页面可以对未回答的问题进行回答,同时还可以修改回答过的问答,还可以对一些不文明的问题进行删除操作;主要的逻辑处理是调用SearchAnswer.java中的相应方法来实现的。界面如下:该界面中有分页采用的方法与站内搜索答案模块中的方法是相同的。(十一)资料共享模块该模块是为了让不同的用户共享彼此之间的学习资料,主要分为:上传文件与下载文件;1.上传文件在此模块中我允许用户上传小于10M的文件,同时在上传时可对要上传的文件进行简要的描述,以便今后他人下载该资源时大概知道是什么东西。界面如下:在这个模块中,我们使用组件commons-fileupload进行上传文件,使用时需要需要在项目的WEB-INF的lib目录下引入commons-fileupload-1.2.jar才可以;一些逻辑控制是通过FileUploadServlet.java来实现的。在数据库中存放文件使用的字段应用Image来存储。2.下载文件在此模块中我们把所有用户上传的文件在页面中列出来以供需要下载该文件的用户进行下载,一些逻辑控制是通过FileDownloadServlet.java来实现的。部份界面如下:在该页面中我采用的分页方法是:在JSP页面中创建一个可滚动的ResultSet结果集,创建语句:Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);然后计算出当前数据库中有多少个文件要下载,计算每页要显示多少个下载文件和总共有多少页,再根据点击上下页链接传递的参数来设置数据库游标要从哪里开始移动,移动多少条记录,然后把读取到记录显示在JSP页面上。六、技术难点及解决方法(一)树形导航栏的制作在知识大纲浏览页面中,为了方便用户的浏览我特别设计了一个树形导航栏,把知识分为几大部份,每部份中又分多少个小部份,这样用户浏览时就可以有目的的查阅;由于在JSP页面中并没有提供这样的标签,故本人便利用Html中固有的组伯进入组合,做成了一个满足要求的树形导航栏;如下图所示:具体的设想如下:1.采用selcet标签,因为该标签中可以添加很多子项目,那么一个select标签就对应每一个大的部分,每一个select标签中的子项就是这个大的部分的一个个小部分,即一个select代表一章的话,那么就代表这一章的小节;2.由于select标签带有边框,如果不加处理会使展开时不美观,于是我采用CSS/DIV来处理,使其实边框不可见,具体的CSS/DIV代码如下:.select-styleposition:absolute; overflow:hidden;.select-style select margin:-4px;3.展开按钮的设计,其实它就是一个图片按钮,我特别选了带+号和-号的两个图片,先将图片的大小设计好,然后作为按钮的背景图片,那当我们每点击一下这个按钮时,如果这个按钮是未展开的即是+号这个图形,那么我们就让他换成-号这个图形,反之就换成+号图形,同时展开和关闭相应Select部份的内容;这么事件就通过在JavaScript中定义相应的方法来执行的;4.树形组合方法:采用table表格将Selcet和按钮组合成一棵树,具体如下:第一部分1.11.2/div.第二部分2.12.2/div.其中的onClick事件在JavaScript中定义。(二)聊天室中页面的局部刷新的实现1.难点一由于聊天室中的聊天内容是实时变化的,那么如果页面是静态的就无法更新聊天内容,那么如果让整个页面都定时刷新呢?表面看似乎是可以更新页面中的信息,但是如果是整个页面的刷新,那么这个页面就会出现闪烁现象影响视觉,更可怕的是,当你在输入聊天记录时,你还没完全输好而页面就刷新了,那么你刚打的那些内容就会因为页面的刷新而未提交;那么有没有什么办法能解决让页面中的某些部份信息是定时更新的,某些部分的内容是触发时才更新呢?答案当然是有了,最后我采用了Ajax技术,这个技术的优势就在于他能够实现页面的局部刷新,刚好解决了我的这个难题。聊天页面:查看历史聊天记录页面:要聊天界面中,有两个文本框,其中的今日聊天记录和当前在线用户文本框中的内容是定时局部刷新的,而输入聊天内容文本框中的内容是当用户单击发送消息按钮时进行局部刷新的,这样整个页面就不会再现闪烁,同时又能更新信息;在这里,那就主要讲述一下Ajax的开发框架与工作过程,一些细节就不在讲解了:首先要应用Ajax就要知道Ajax的开发框架:大致过程如下:1.写JSvar XMLHttpReq=false;function createXMLHttpRequest() if (window.XMLHttpRequest) / Mozila浏览器 XMLHttpReq=new XMLHttpRequest(); else if(window.ActiveXObject) / IE浏览器 XMLHttpReq=new ActiveXObject(Microsoft.XMLHTTP); function sendRequest() createXMLHttpRequest();/forumservlet是外部的一个ServletXMLHttpReq.open(POST,forumservlet,true); XMLHttpReq.onreadystatechange=processResponse;XMLHttpReq.send(null);function processResponse()if(XMLHttpReq.readyState=4)/请求已完成if(XMLHttpReq.status=200) /信息已经成功返回,开始处理信息var message=XMLHttpReq.responseText; /Servlet中的out.printl(responseText)方法返回的值document.getElementById(record).value=message;window.setTimeout(sendRequest(),1000);elsewindow.alert(请求页面有异常!);window.close(); 2.编写Servlet,这个servlet是响应JSP页面中的请求,通过接收信息,并把信息提交给相应的JavaBean进行一些逻辑处理。public class forumservlet extends HttpServlet public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException doGet(request,response);Public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException /以下是设置头部的信息,不可少request.setCharacterEncoding(gb2312);response.setContentType(text/xml;charset=gb2312);response.setHeader(Cache-Control, no-cache);response.setHeader(Pragma, no-cache);/返回的消息要用out.print();返回。客户端用XMLHttpRequest的对像的.responseText接收String responseText=成功返回;PrintWriter out=response.getWriter();out.println(responseText);3.这个Servlet处理完JavaBean后会继续返回到原先的请求的页面,并把处理完的结果返回到请求页面,从而实现了局部刷新。2.难点二当聊天记录变多时,那么今日聊天记录文本框中会出现滚动条,这时出现的一个问题就是,当就个文本框进行局部刷新时滚动条又重头开始,不便于聊天者查看最新的聊天消息,那么现在要解决的问题就是怎么在文本框进行每次刷新后滚动条会定位到文本框的最后,把最新的一条聊天记录展现给聊天者呢?我最后是采用JavaScript来解决,就是在页面进行刷新后在方法中调用一次JavaScript中定义的方法:脚本语言核心代码如下:function setCaretAtEnd(field) if(field.createTextRange) var r=field.createTextRange(); r.moveStart(character,field.value.length); r.collapse(); r.select(); 附. 管理员回答提问与删除提问也用到相似的局部刷新,在这就不再讲述。(三)网页中的分页方法在搜索、解答、下载等页面,页面中显示的东西会越来越多,那么把这些东西全部放在同一个页面中会让人看的很烦,也不便于查看;最好的解决办法当然是进行分页显示,让每一页中显示固定数目的记录,这样就会让人在阅读时感到很舒适;那么在这些页面中,我采用的分页方式有两种:(1).搜索与解答页面的分页是在JavaBean中进行处理:就要在页面跳转时先将要显示的取出来放在一个ArrayList的变量中,然后在页面中放置上下页按钮,将这些按钮的事件监听处理放在JavaBean中进行处理;这样当单击相应按钮时,我们就从ArrayList中的指定位置顺序读取固定记录显示在页面中;JSP中的按钮代码如下:first、previous、next、last方法是在SearchAnswer.java中进行定义,代码就不再详细介绍。(2).下载页面的分页是在JSP页面中进行,这种分页的原理是,在JSP页面中创建一个可滚动的结果集,然后计算出结果集中有多少条记录,根据每页要显示多少记录算出总共要有多少页,然后在页面中设置上下页链接,单击链接时通过传递参数来设置结果集中的游标从哪个位置开始读取记录,核心代码如下:Context ctx = new InitialContext();DataSource ds = (DataSource) ctx.lookup(java:comp/env/jdbc/NetStudyWeb);Connection conn = ds.getConnection();Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);ResultSet rs = stmt.executeQuery(select id,filename,fileinfo,filesize,loadtime from loadfile);rs.last();int rowCount = rs.getRow();/得到当前的下载文件数if (rowCount = 0) out.println(当前没有任何文件下载!);return;String strCurPage = request.getParameter(page);int curPage; /表示当前的页数if (strCurPage = null) curPage = 1; else curPage = Integer.parseInt(strCurPage);int countPerPage = 5; /定义每页显示的留言数/计算所下载文件显示需要的总页数int pageCount = (rowCount + countPerPage - 1) / countPerPage;/移动游标运至结果集中指定的行rs.absolute(curPage - 1) * countPerPage + 1);int i = 0;while (i countPerPage & !rs.isAfterLast() 这里是读取相应的记录代码(略)第一页     上一页    a href=download.faces?page=第一页 a href=download.faces?page=上一页下一页     最后一页    a href=download.faces?page=下一页a href=download.faces?page=最后一页(四)试卷动态更新与定时提交(1).为了提高考试的效率与质量,在网站中特意设置了试卷动态更新与考试定时提交,那么在制作动态更新试卷时,我们让用户每新一次时,试卷的题目就换成另外一套;为了实现这个功能,我特别写了一个JavaBean即Examine.java来处理,在该类中,在这个类中,为了处理的方便,我让选择题和判断题设置成两个类即ChoiceItems.java和JudgeItems.java,并将这两个类作为Examine.java类的成员,另外在Examine.java类中设置两个ArrayList变量来存放ChoiceItems.java和JudgeItems.java的类变量,在Examine.java类中设置一个能随机从数据库中取记录的方法;为了在页面中动态更新试卷,我采用JSTL标签和JavaBean来处理,首先要引入JSTL标签:为了让JavaBean在页面刷新一次时就重新调用一次随机取记录的方法,得那么就得让JavaNean在页面中的作用范围Page,导入时的代码用:为了在处理考试页面中对该份试卷进行评分,我们在考试页面中设置一个Session,将本次做的试卷保存在这个Session变量中,然后在我们在处理考试页面中就可以获取到这个session变量;具体方法就是在考试页面中写上一句:那么我们在考试中列出所有题目就可以使用下面的代码:.AB,C,D相同处理(2).为了实现定时提交试卷我在JavaScript中定义了定时提交的代码:function show() table1.style.display=; time.style.display=; window.setInterval(setTime(),1000); document.getElementById(start1).style.display=none; window.setTimeout(document.form1.submit();,3600000); (五)管理员发布每日公告在公告栏中,主页会从数据库中取出当日所有的公告,然后在主页中一条条动态的显示出来,管理员可以在一天中添加任意条公告;实现这个功能的主要步骤有:1. 在User.java中添加一个取当日公告的方法getPlacard()用于显示公告;2. 在主页中定义导入显示公告的JavaScript的文件placard.jsscript charset=gb2312src=/js/placard.js3. 在主页中定义添加公告的JavaScript的方法:function addPlacard()var placard=document.getElementById(index_form:totalplacardmessage).value;if(document.getElementById(index_form:placardmessage).value!=)if(placard=网站公告栏:在这里我们将发布网站当日最新的公告和最新的资讯,敬请及时关注最新发布!=)placard=网站公告栏: +document.ge

温馨提示

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

评论

0/150

提交评论