作业提交系统.docx
- 文档编号:29205048
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:48
- 大小:208.38KB
作业提交系统.docx
《作业提交系统.docx》由会员分享,可在线阅读,更多相关《作业提交系统.docx(48页珍藏版)》请在冰豆网上搜索。
作业提交系统
前言
随着计算机在社会的不断普及和应用,人们的工作效率得到了极大的提高。
高等院校作为社会进步的发动机,计算机早已普及并得到了积极应用。
而随着近年来的计算机网络的普及,更大大方便了人们的工作和生活。
利用现在已广泛普及的计算机网络实现教师与学生之间的远程交流,为教师和学生之间的交流构建一个方便的平台,就是我此次的毕业设计课题——网络远程作业处理系统。
该系统利用网络,在构架了服务器后,一方面,使学生能够利用任何一台能够上网的计算机提交作业,实现和在线教师的实时交流,留言给未在线的教师;另一方面,教师同样能够利用任意的一台能上网的计算机接受服务器上学生提交的作业,和同学实时交流,留言给以班级为单位的同学。
该系统的内容有:
1登录系统。
自动区分登录者为学生、教师、管理员,并显示相应页面。
2注册系统,只提供学生的注册,教师由管理员添加,仅设1名管理员账户。
3师生信息管理系统,管理相关的师生信息。
4只有目的用户可见的留言板系统。
通过对数据库的匹配查询实现。
5包含网络白板的聊天室系统。
利用便捷的applet,通过多线程的应用实现聊天室。
网络白板嵌入聊天室系统中,利用JAVA中的canvas类实现。
6基于JSP的文件上传下载系统。
基于jspsmartupload组件实现。
这6个系统将在以下章节中详细介绍。
本论文的总的结构可分为引言、目录、中英文摘要、数据库设计、系统功能介绍、谢辞、参考文献与附录九大部分。
其中系统功能介绍分为登录系统、注册系统、师生信息管理系统、留言板系统、包含网络白板的聊天室系统、文件上传下载系统,共6个部分来详细介绍。
参考文献与附录是关于开发该系统所参考的数据和书籍,附录是一些辅助说明。
目录是毕业论文各章节所在页的具体说明。
网络远程作业处理系统主要的开发工具为DreamweaverMX2004,SQLSever2000和JBuilder9。
第1章开发工具简介
1.1DreamweaverMX2004
DreamweaverMX2004是建立Web站点和应用程序的专业工具。
它将可视布局工具、应用程序开发功能和代码编辑支持组合为一个功能强大的工具,使每个级别的开发人员和设计人员都可利用它快速创建接口吸引人并且基于标准的站点和应用程序。
从对基于CSS的设计提供领先的支持到手动编码功能,Dreamweaver在一个集成和高效的环境中为专业人员提供了所需的工具。
开发人员可以将其选择的服务器技术与Dreamweaver配合使用,建立将用户连接到数据库、Web服务和旧式系统的强大Internet应用程序。
1.2Borland JBuilder9
Borland JBuilder9–全球最具威力之Java开发环境,相较过去版本,JBuilder提供更多省时工具与精灵,让您团队生产力提升至极限,协助您在最短时间内开发更好的软件。
这仅是完整Borland解决方案的一部份,JBuilder9 Enterprise以融入应用程序开发周期(applicationlifecycle)为第一要务,能够使用您现有之技术投资,并给您最大的自由与弹性,让您以自己的方式与流程完成工作。
BorlandOptimizeitSuite已包含于JBuilder9Enterprise版中:
JBuilder9所包含之创新工具与加值功能将企业级Java开发提升至新境界。
1.3SQLSever2000
Microsoft®SQLServer™2000包括很多图形和命令提示实用工具,允许用户、程序员和管理员进行下列操作:
1管理和配置SQLServer。
2确定SQLServer复本中的目录信息。
3设计和测试查询以检索数据。
4复制、导入、导出和转换数据。
Microsoft®SQLServer™2000扩展了MicrosoftSQLServer7.0版的性能、可靠性、质量和易用性。
MicrosoftSQLServer2000增加了几种新的功能,由此成为大规模联机事务处理(OLTP)、数据仓库和电子商务应用程序的优秀数据库平台。
SQLServer7.0版中提供的OLAP服务功能现在称为SQLServer2000AnalysisServices。
术语"OLAP服务"已被术语"AnalysisServices"取代。
AnalysisServices还包括一个新的数据挖掘组件。
SQLServer7.0版中包含的知识库组件现在称为MicrosoftSQLServer2000 MetaDataServices。
现在提及该组件时使用术语"MetaDataServices"。
"知识库"这个术语只在谈及MetaDataServices中的知识库引擎时才使用。
第2章相关技术文档
2.1JSP技术
JavaServerPages(JSP)是一种以Java为主的跨平台web开发语言。
JSP与微软的ActiveServerPages兼容,但它是使用类似HTML的卷标以及Java程序代码段而不是VBScript。
JSP与伺服端的JavaScript不同。
网站服务器会自动将以JSP写成的Java程序代码段转换成Javaservlets。
而许多先前必须以Perl手写程序或服务器特定的API(如ASP)控制的功能也都可透过JSP来自动化处理。
JavaServerPages(JSP)使得我们能够分离页面的静态HTML和动态部分。
HTML可以用任何通常使用的Web制作工具编写,编写方式也和原来的一样;动态部分的代码放入特殊标记之内,大部分以“<%”开始,以“%>”结束。
T
JSP页面文件通常以.jsp为扩展名,而且可以安装到任何能够存放普通Web页面的地方。
虽然从代码编写来看,JSP页面更象普通Web页面而不象Servlet,但实际上,JSP最终会被转换成正规的Servlet,静态HTML直接输出到和Servletservice方法关联的输出流。
JSP到Servlet的转换过程一般在出现第一次页面请求时进行。
因此,如果你希望第一个用户不会由于JSP页面转换成Servlet而等待太长的时间,希望确保Servlet已经正确地编译并装载,你可以在安装JSP页面之后自己请求一下这个页面。
另外,许多Web服务器允许定义别名,所以一个看起来指向HTML文件的URL实际上可能指向Servlet或JSP页面。
除了普通HTML代码之外,嵌入JSP页面的其他成分主要有如下三种:
脚本元素(ScriptingElement),指令(Directive),动作(Action)。
脚本元素用来嵌入Java代码,这些Java代码将成为转换得到的Servlet的一部分;JSP指令用来从整体上控制Servlet的结构;动作用来引入现有的组件或者控制JSP引擎的行为。
为了简化脚本元素,JSP定义了一组可以直接使用的变量(预定义变量),比如前面代码片断中的request就是其中一例。
注意本文以JSP1.0规范为基础。
和0.92版相比,新版本的JSP作了许多重大的改动。
虽然这些改动只会使JSP变得更好,但应注意1.0的JSP页面几乎和早期的JSP引擎完全不兼容。
JSP语法概要表JSP元素、语法、说明、备注如下
JSP表达式<%=expression%>计算表达式并输出结果。
等价的XML表达是:
<jsp:
expression>expression</jsp:
expression>
可以使用的预定义变量包括:
request,response,out,session,application,config,pageContext。
这些预定义变量也可以在JSPScriptlet中使用。
JSPScriptlet<%code%>插入到service方法的代码。
等价的XML表达是:
<jsp:
scriptlet>code</jsp:
scriptlet>
JSP声明<%!
code%>代码被插入到Servlet类(在service方法之外)。
等价的XML表达是:
<jsp:
declaration>code</jsp:
declaration>
page指令<%@pageatt="val"%>作用于Servlet引擎的全局性指令。
等价的XML表达是
<jsp:
directive.pageatt="val"\>。
合法的属性如下表,其中粗体表示默认值:
import="package.class"
contentType="MIME-Type"
isThreadSafe="true|false"
session="true|false"
buffer="sizekb|none"
autoflush="true|false"
extends="package.class"
info="message"
errorPage="url"
isErrorPage="true|false"
language="java"
include指令<%@includefile="url"%>当JSP转换成Servlet时,应当包含本地系统上的指定文件。
等价的XML表达是:
<jsp:
directive.include file="url"\>.
其中URL必须是相对URL。
利用jsp:
include动作可以在请求的时候(而不是JSP转换成Servlet时)引入文件。
JSP注释<%--comment--%>注释;JSP转换成Servlet时被忽略。
如果要把注释嵌入结果HTML文档,使用普通的HTML注释标记<--comment-->。
jsp:
include动作<jsp:
includepage="relativeURL" flush="true"/>当Servlet被请求时,引入指定的文件。
如果你希望在页面转换的时候包含某个文件,使用JSPinclude指令。
注意:
在某些服务器上,被包含文件必须是HTML文件或JSP文件,具体由服务器决定(通常根据文件扩展名判断)。
jsp:
useBean动作<jsp:
useBeanatt=val*/>或者
<jsp:
useBeanatt=val*>...</jsp:
useBean>寻找或实例化一个JavaBean。
可能的属性包括:
id="name"
scope="page|request|session|application"
class="package.class"
type="package.class"
beanName="package.class"
jsp:
setProperty动作<jsp:
setPropertyatt=val*/>设置Bean的属性。
既可以设置一个确定的值,也可以指定属性值来自请求参数。
合法的属性包括:
name="beanName"
property="propertyName|*
param="parameterName"
value="val"
jsp:
getProperty动作<jsp:
getProperty name="propertyName"value="val>提取并输出Bean的属性。
jsp:
forward动作<jsp:
forward page="relativeURL"/>把请求转到另外一个页面。
jsp:
plugin动作<jsp:
pluginattribute="value"*>...</jsp:
plugin>根据浏览器类型生成OBJECT或者EMBED标记,以便通过JavaPlugin运行JavaApplet。
关于模板文本(静态HTML),许多时候,JSP页面的很大一部分都由静态HTML构成,这些静态HTML也称为“模板文本”。
模板文本和普通HTML几乎完全相同,它们都遵从相同的语法规则,而且模板文本也是被Servlet直接发送到客户端。
此外,模板文本也可以用任何现有的页面制作工具来编写。
唯一的例外在于,如果要输出“<%”,则模板文本中应该写成“<\%”。
2.2APPLET技术
2.2.1Applet说明:
1)首先Applet一般是从java.applet.Applet中继承过来的;
2)paint()方法必须是public,不然不能被其它程序正确调用;
3)由于paint方法使用了Graphics类,所以Applet需要引用java.awt.
4)Graphics,当然如果其它的类如果也可以实现Graphics类的功能,也可以引用之;
5)在Applet中没有publicstaticvoidmain这个方法,所以它不能独立执行,必须由专门的程序(如游览器)调用执行,Applet程序被调用后,会自动执行paint方法。
6)在Html中使用标签APPLET来引用Applet,code属性指定Applet的程
序名,这是一个简单的Applet引用方法,当引入的Applet与html文件在同一个目录下,不用加路径说明,如果不是可以使用codebase指定applet所在的路径,路径表示方法与html中的一样;
7)其它属性width及属性height是HTML的标准属性。
还有另一个方法可以测试Applet,就是使用appletViewer命令,查看html文件中引入的applet小程序,该命令会忽略html代码,直接执行applet代码。
2.2.2Applet参数使用方法
在Applet中可以使用标签向Applet传递参数,如:
……
当applet执行时,这些参数就会被传入,可以在init方法中使用getParameter()方法获取这些传入参数的值,如getParameter("font"),该方法返回值始终是String类型的,所以必要的时候还需进行相应的类型转换。
如果没有相应的传入参数,那么getParameter()方法会返回null值。
2.2.3Applet基本方法
从java.applet.Applet继承过来的applet会有五个基本的方法:
(1)init()方法:
当applet被加载时,会首先执行init方法,该方法相当于javaapplication中的main,该方法只能被执行一次;
(2)start()方法:
init方法执行完毕会就会自动执行start方法,start方法可以被反复执行,如一个applet被stop后,可以使用start方法重新开动它;
(3)stop()方法:
停止执行applet,与start方法相对应
(4)destroy()方法:
与init方法相对应;
(5)paint()方法:
输出指定内容,paint方法会被反复的调用,在applet初始化时、窗口移动时等;
(6)repaint()方法:
该方法调用update方法;
(7)update()方法:
该方法清空屏幕的内容后,再调用paint方法重画;paint,repaint及update方法是实现Applet中动画的三个主要函数,一般在update方法中调用g.clipRect方法规则paint的区域,这样paint方法只更新指定区域的内容;
(8)以上这些方法在必须的时候可以重载,并且不需要在我们的applet中显示的调用,可以自动执行(当然也可以显示调用);
2.2.4Applet中的线程
在Applet中如果需要用到动画或者后台数据处理等需要占用大量资源的功能时,最好使用线程。
(1)要在applet支持线程,一般需要实现Runnable接口,所以在本例类的声明中加了implementsRunnable;
(2)在Runable接口中定义了run()方法,当线程start时,会调用这个方法;所以需要实现该方法;
(3)要使用线程当然需要实例化类Thread(Thread是属于java.lang包):
Threadrunner=newThread(this),这里的初始化参数this指定的applet对象;
(4)接下来在applet的start方法中调用runner.start()方法开始创建线程,线程创建完后,运行run方法;
(5)在run方法中实现真正要实现的内容,本例修改了theDate的值后,调用repaint方法,该方法的调用触发了paint方法的执行;
(6)在stop方法中结束线程的运行。
第3章数据库逻辑结构设计
根据该课题的要求,为了实现相应的网站功能并方便用户,我建立了4个表。
3.1用户信息表(tuser)
列名
数据类型
可否为空
说明
suser
char
不可
学生学号,主键
name
char
不可
用户名,主键
code
char
可
密码
isteacher
real
不可
是否是教师
administrator
real
可
是否是管理员
3.2班级信息表(Tstudentnum)
列名
数据类型
可否为空
说明
class
char
不可
班级号,主键
studentnum
char
不可
学生数
3.3留言信息表(message)
列名
数据类型
可否为空
说明
title
char
不可
主题名,主键
name
text
不可
留言人姓名
time
datatime
可
留言时间
content
text
不可
留言内容
isteacher
char
不可
是否是教师
rname
char
不可
收信人姓名
3.4任课信息表(adds)
列名
数据类型
可否为空
说明
teacher
char
不可
教师姓名,主键
course
char
不可
课程名,主键
class
char
不可
班级名,主键
在这4个表中,用户信息表(tuser)存储所有合法的用户信息。
用于在登录时的检验,以及其他一些相应的修改用户信息的页面。
班级表(Tstudentnum)和任课信息表用于文件下载页面,以提供文件的下载地址。
第4章系统页面介绍
4.1登录页面流程图
4.2系统主要页面详述
4.1.1登录、注册页面(login.jsp)
该页面主要是一个表单,提供两个选择:
注册或登录。
在填写完用户名和密码两项内容后按下提交键进入核实页面(ValidateUser.jsp),或点击注册键进入注册信息填写页面(UserInfo.jsp)。
在该页面代码中我添加了一个javascript函数,使该页面具有了粗略的错误提示功能:
在用户未输入用户名和密码前表单不会被提交至登录的核实页面(ValidateUser.jsp)。
4.1.2核实页面(ValidateUser.jsp)
该页面接受登录、注册页面(login.jsp)提交的用户名和密码两项信息并以此进行数据库查询,若查询成功,则将该用户的姓名、学号和该用户是否为教师的信息分别记入session变量“name”、“snum”、“Isteacher”中,并根据数据库查询的结果决定下一个显示的页面:
学生页面(student.htm),教师页面(teacher.htm),管理员页面(administrator.htm)和登录失败页面(fail.htm)。
在这个页面中,我另外还设置了一个session变量“login”当成功验证后赋值为“ok”。
该变量的作用是为验证已登录页面(CheckValid.jsp)提供是否以验证的信息。
在该页面中,我使用了javabean技术,将连接数据库的工作建成了一个名为conn的类,并在该页面中引用。
在后面介绍的文件中,也有许多文件引用了它。
4.1.3验证已登录页面(CheckValid.jsp)
该页面提供一个验证打开当前页面用户是否登录的功能。
这样是为了避免在有恶意人士在了解了页面的文件名后,跳过登录界面直接进入后面的服务页面。
该页面实际只是一个验证是否登录的代码,其他需要保护的页面只要在文件开始时引用该文件就可以了,这样可以避免在多个网页中重复编写相同的代码。
4.1.4学生注册页面(UserInfo.jsp)
该页面主要是一个表单,负责从用户获得相关的信息,提交给注册信息提交页面(CheckUserInfo.jsp)。
4.1.5注册页面提交页面(CheckUserInfo.jsp)
该页面接受学生注册页面(UserInfo.jsp)提交的信息。
使用javabean,引用了两个类,分别为conn和UserInfo。
前者用来获得用户的学号,用来进行唯一性校验;后者用来对接受的信息进行校验,对“学号”、“用户名”、“密码”、“重复密码”提供空检验,“学号”必须为8位数字,“密码”与“重复密码”必须一致,否则就会提示相应的纠错信息。
在确认提交的信息无错后,尝试进行数据库输入操作。
若操作成功,则显示数据库操作成功信息和输入者的姓名、学号,如下图所示。
若操作失败,则显示数据库操作失败信息,提示重新尝试。
4.1.6学生页面(student.htm)
此页面为一框架页面,3个框架分别指向学生选择页面(StudentPage.jsp)、学生登录默认界面(student1.htm)和显示留言页面(view_message.jsp)。
4.1.7学生选择页面(StudentPage.jsp)
该页面提供了学生成功登录后的可用选项。
我做成了5个超连接,分别连接不同的页面。
具体为“我要留言”对应留言填写页面(index.htm),“上传文件”对应上传文件选择页面(upload.jsp),“聊天室”对应学生聊天室页面(sapplet.jsp),“修改密码”对应修改密码页面(changecode.jsp),“返回登录界面”对应登录、注册页面(login.jsp)。
4.1.8教师页面(teacher.htm)
同学生页面一样,此页面也为一框架页面。
3个框架分别指向教师选择页面(TeacherPage.jsp)、教师登录默认界面(teacher1.htm)和显示留言页面(view_message.jsp)。
4.1.9教师选择页面(TeacherPage.jsp)
该页面提供了教师成功登录后的可用选项。
共7个超连接。
分别为“我要留言”对应留言填写页面(index.htm),“下载文件”对应班级选择页面(TeacherPage2.jsp),“聊天室”对应教师聊天室页面(tapplet.jsp),“管理学生信息”对应学生帐户删除页面(delestudent.jsp),“管理任课信息”对应添加认课信息页面(maadds.jsp),“修改密码”对应修改密码页面(changecode.jsp),“返回登录界面”对应登录、注册页面(login.jsp)。
4.1.10管理员页面(admin.htm)
框架页面。
同样是3个框架,分别对应管理员选择页面(administrator.jsp)、管理员登录默认界面(admin1.htm)和显示留言页面(view_message.jsp)。
4.1.11管理员选择页面(admin.jsp)
该页面提供了管理员成功登录后的可用选项。
共6个超连接。
“添加教师信息”对应添加教师信息页面(ad
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 作业 提交 系统