1、南京工程学院毕业设计说明书(论文)第 1 页摘 要随着网络在社会的不断普及,其在人们的学习和生活中发挥着越来越重要的作业,也不断地简化人们地学习和生活。该系统就是建立在这个目的上的一次尝试。远程作业提交交流系统,利用网络交流的优势,为教师与学生之间的交流搭建一座方便的桥梁。该系统的功能主要为:1、为师生提供一个网络作业提交系统;2、为师生提供一个实时在线交流系统;3、为师生提供一个在线的留言系统。其中,作业提交系统实现文件在 JSP 网页中的上传和下载;实时在线交流系统实际就是一个在线聊天室,并考虑到师生这个特殊的服务对象,添加了网络白板这个功能,使师生之间可以更加形象的交流;在线留言系统提供
2、了与未在线的人交流的功能。以上这些功能的实现都是建立在师生信息管理系统之上的,首先要建立完整的学生、教师和班级信息,以上 3 个主要系统才能正常工作。再就是为了减小网页的负担,我设立了注册登录系统,一定程度的减免了不相关人员的访问。关键词 网络 在线 交流 南京工程学院毕业设计说明书(论文)第 2 页前 言随着计算机在社会的不断普及和应用,人们的工作效率得到了极大的提高。高等院校作为社会进步的发动机,计算机早已普及并得到了积极应用。而随着近年来的计算机网络的普及,更大大方便了人们的工作和生活。利用现在已广泛普及的计算机网络实现教师与学生之间的远程交流,为教师和学生之间的交流构建一个方便的平台,
3、就是我此次的毕业设计课题网络远程作业处理系统。该系统利用网络,在构架了服务器后,一方面,使学生能够利用任何一台能够上网的计算机提交作业,实现和在线教师的实时交流,留言给未在线的教师;另一方面,教师同样能够利用任意的一台能上网的计算机接受服务器上学生提交的作业,和同学实时交流,留言给以班级为单位的同学。该系统的内容有:1 登录系统。自动区分登录者为学生、教师、管理员,并显示相应页面。2 注册系统,只提供学生的注册,教师由管理员添加,仅设1 名管理员账户。3 师生信息管理系统,管理相关的师生信息。4 只有目的用户可见的留言板系统。通过对数据库的匹配查询实现。5 包含网络白板的聊天室系统。利用便捷的
4、 applet,通过多线程的应用实现聊天室。网络白板嵌入聊天室系统中,利用 JAVA 中的 canvas 类实现。6 基于 JSP 的文件上传下载系统。基于 jsp smartupload 组件实现。这 6 个系统将在以下章节中详细介绍。本论文的总的结构可分为引言、目录、中英文摘要、数据库设计、系统功能介绍、谢辞、参考文献与附录九大部分。其中系统功能介绍分为登录系统、注册系统、师生信息管理系统、留言板系统、包含网络白板的聊天室系统、文件上传下载系统,共 6 个部分来详细介绍。参考文献与附录是关于开发该系统所参考的数据和书籍,附录是一些辅助说明。目录是毕业论文各章节所在页的具体说明。网络远程作业
5、处理系统主要的开发工具为 Dreamweaver MX 2004,SQL Sever 2000 和 JBuilder9。南京工程学院毕业设计说明书(论文)第 3 页第 1 章 开发工具简介1.1 Dreamweaver MX 2004Dreamweaver MX 2004 是 建立 Web 站点和应用程序的专业工具。 它将可视布局工具、应用程序开发功能和代码编辑支持组合为一个功能强大的工具,使每个级别的开发人员和设计人员都可利用它快速创建接口吸引人并且基于标准的站点和应用程序。 从对基于 CSS 的设计提供领先的支持到手动编码功能,Dreamweaver 在一个集成和高效的环境中为专业人员提供
6、了所需的工具。 开发人员可以将其选择的服务器技术与 Dreamweaver 配合使用,建立将用户连接到数据库、Web 服务和旧式系统的强大 Internet 应用程序。1.2 Borland JBuilder9Borland JBuilder9全球最具威力之 Java 开发环境,相较过去版本,JBuilder 提供更多省时工具与精灵,让您团队生产力提升至极限,协助您在最短时间内开发更好的软件。这仅是完整 Borland 解决方案的一部份,JBuilder9 Enterprise 以融入应用程序开发周期(applicationlifecycle)为第一要务,能够使用您现有之技术投资,并给您最大的
7、自由与弹性,让您以自己的方式与流程完成工作。BorlandOptimizeitSuite 已包含于JBuilder9Enterprise 版中:JBuilder9 所包含之创新工具与加值功能将企业级Java 开发提升至新境界。1.3 SQL Sever 2000Microsoft SQL Server 2000 包括很多图形和命令提示实用工具,允许用户、程序员和管理员进行下列操作: 1 管理和配置 SQL Server。2 确定 SQL Server 复本中的目录信息。3 设计和测试查询以检索数据。4 复制、导入、导出和转换数据。Microsoft SQL Server 2000 扩展了 Mi
8、crosoft SQL Server 7.0 版的性能、可靠性、质量和易用性。 Microsoft SQL Server 2000 增加了南京工程学院毕业设计说明书(论文)第 4 页几种新的功能,由此成为大规模联机事务处理 (OLTP)、数据仓库和电子商务应用程序的优秀数据库平台。SQL Server 7.0 版中提供的 OLAP 服务功能现在称为 SQL Server 2000 Analysis Services。术语“OLAP 服务“已被术语“Analysis Services“取代。Analysis Services 还包括一个新的数据挖掘组件。SQL Server 7.0 版中包含的知
9、识库组件现在称为 Microsoft SQL Server 2000 Meta Data Services。现在提及该组件时使用术语“Meta Data Services“。“知识库“这个术语只在谈及 Meta Data Services 中的知识库引擎时才使用。南京工程学院毕业设计说明书(论文)第 5 页第 2 章 相关技术文档2.1 JSP技术JavaServer Pages (JSP) 是一种以 Java 为主的跨平台 web 开发语言。JSP 与微软的 Active Server Pages 兼容,但它是使用类似 HTML 的卷标以及 Java 程序代码段而不是 VBScript。JS
10、P 与伺服端的 JavaScript 不同。网站服务器会自动将以 JSP 写成的 Java 程序代码段转换成 Java servlets。而许多先前必须以 Perl 手写程序或服务器特定的 API(如 ASP)控制的功能也都可透过 JSP 来自动化处理。JavaServer Pages(JSP)使得我们能够分离页面的静态 HTML 和动态部分。HTML 可以用任何通常使用的 Web 制作工具编写,编写方式也和原来的一样;动态部分的代码放入特殊标记之内,大部分以“%”开始,以“%”结束。T JSP 页面文件通常以.jsp 为扩展名,而且可以安装到任何能够存放普通Web 页面的地方。虽然从代码编写
11、来看,JSP 页面更象普通 Web 页面而不象Servlet,但实际上,JSP 最终会被转换成正规的 Servlet,静态 HTML 直接输出到和 Servlet service 方法关联的输出流。JSP 到 Servlet 的转换过程一般在出现第一次页面请求时进行。因此,如果你希望第一个用户不会由于 JSP 页面转换成 Servlet 而等待太长的时间,希望确保 Servlet 已经正确地编译并装载,你可以在安装 JSP 页面之后自己请求一下这个页面。 另外,许多 Web 服务器允许定义别名,所以一个看起来指向 HTML 文件的URL 实际上可能指向 Servlet 或 JSP 页面。 除了
12、普通 HTML 代码之外,嵌入 JSP 页面的其他成分主要有如下三种:脚本元素(Scripting Element) ,指令(Directive ) ,动作(Action) 。脚本元素用来嵌入 Java 代码,这些 Java 代码将成为转换得到的 Servlet 的一部分;JSP指令用来从整体上控制 Servlet 的结构;动作用来引入现有的组件或者控制JSP 引擎的行为。为了简化脚本元素,JSP 定义了一组可以直接使用的变量(预南京工程学院毕业设计说明书(论文)第 6 页定义变量) ,比如前面代码片断中的 request 就是其中一例。 注意本文以 JSP 1.0 规范为基础。和 0.92
13、版相比,新版本的 JSP 作了许多重大的改动。虽然这些改动只会使 JSP 变得更好,但应注意 1.0 的 JSP 页面几乎和早期的 JSP 引擎完全不兼容。 JSP 语法概要表 JSP 元素、语法、说明、备注如下 JSP 表达式 %= expression % 计算表达式并输出结果。 等价的 XML表达是: jsp:expression expression /jsp:expression 可以使用的预定义变量包括:request,response,out,session,application,config,pageContext。这些预定义变量也可以在 JSP Scriptlet 中使用。
14、 JSP Scriptlet % code % 插入到 service 方法的代码。 等价的 XML表达是: jsp:scriptlet code /jsp:scriptlet JSP 声明 %! code % 代码被插入到 Servlet 类(在 service 方法之外)。 等价的 XML 表达是: jsp:declaration code /jsp:declaration page 指令 % page att=“val“ % 作用于 Servlet 引擎的全局性指令。等价的 XML 表达是 jsp:directive.page att=“val“。 合法的属性如下表,其中粗体表示默认值:
15、 import=“package.class“ contentType=“MIME-Type“ isThreadSafe=“true|false“ session=“true|false“ buffer=“size kb|none“ autoflush=“true|false“ extends=“package.class“info=“message“ 南京工程学院毕业设计说明书(论文)第 7 页errorPage=“url“ isErrorPage=“true|false“ language=“java“ include 指令 % include file=“url“ % 当 JSP 转换成
16、 Servlet 时,应当包含本地系统上的指定文件。 等价的 XML 表达是: jsp:directive.include file=“url“. 其中 URL 必须是相对 URL。 利用 jsp:include 动作可以在请求的时候(而不是 JSP 转换成 Servlet 时)引入文件。 JSP 注释 %- comment -% 注释;JSP 转换成 Servlet 时被忽略。 如果要把注释嵌入结果 HTML 文档,使用普通的 HTML 注释标记- comment -。 jsp:include 动作jsp:include page=“relative URL“ flush=“true“/ 当
17、 Servlet 被请求时,引入指定的文件。 如果你希望在页面转换的时候包含某个文件,使用 JSP include 指令。 注意:在某些服务器上,被包含文件必须是 HTML 文件或 JSP 文件,具体由服务器决定(通常根据文件扩展名判断) 。 jsp:useBean 动作 jsp:useBean att=val*/ 或者 jsp:useBean att=val* . /jsp:useBean 寻找或实例化一个Java Bean。 可能的属性包括: id=“name“ scope=“page|request |session|application“ class=“package.class“
18、type=“package.class“ beanName=“package.class“ jsp:setProperty 动作 jsp:setProperty att=val*/ 设置 Bean 的属性。既可以设置一个确定的值,也可以指定属性值来自请求参数。 合法的属性包括:name=“beanName“ property=“propertyName|*param=“parameterName“ 南京工程学院毕业设计说明书(论文)第 8 页value=“val“ jsp:getProperty 动作 jsp:getProperty name=“propertyName“ value=“val
19、 提取并输出 Bean 的属性。 jsp:forward 动作 jsp:forward page=“relative URL“/ 把请求转到另外一个页面。 jsp:plugin 动作 jsp:plugin attribute=“value“* . /jsp:plugin 根据浏览器类型生成 OBJECT 或者 EMBED 标记,以便通过Java Plugin 运行 Java Applet。 关于模板文本(静态 HTML) ,许多时候,JSP 页面的很大一部分都由静态HTML 构成,这些静态 HTML 也称为“模板文本” 。模板文本和普通 HTML 几乎完全相同,它们都遵从相同的语法规则,而且模
20、板文本也是被 Servlet 直接发送到客户端。此外,模板文本也可以用任何现有的页面制作工具来编写。 唯一的例外在于,如果要输出“%” ,则模板文本中应该写成“%” 。2.2 APPLET技术2.2.1 Applet 说明:1) 首先 Applet 一般是从 java.applet.Applet 中继承过来的;2) paint()方法必须是 public,不然不能被其它程序正确调用;3) 由于 paint 方法使用了 Graphics 类,所以 Applet 需要引用java.awt.4) Graphics,当然如果其它的类如果也可以实现 Graphics 类的功能,也可以引用之;5) 在 A
21、pplet 中没有 public static void main 这个方法,所以它不能独立执行,必须由专门的程序(如游览器)调用执行,Applet 程序被调用后,会自动执行 paint 方法。6) 在 Html 中使用标签 APPLET 来引用 Applet,code 属性指定 Applet的程序名,这是一个简单的 Applet 引用方法,当引入的 Applet 与 html 文件在同一个目录下,不用加路径说明,如果不是可以使用 codebase 指定 applet南京工程学院毕业设计说明书(论文)第 9 页所在的路径,路径表示方法与 html 中的一样;7) 其它属性 width 及属性
22、height 是 HTML 的标准属性。还有另一个方法可以测试 Applet,就是使用 appletViewer 命令,查看 html 文件中引入的 applet 小程序,该命令会忽略 html 代码,直接执行 applet 代码。2.2.2 Applet 参数使用方法在 Applet 中可以使用标签向 Applet 传递参数,如:当 applet 执行时,这些参数就会被传入,可以在 init 方法中使用getParameter()方法获取这些传入参数的值,如 getParameter(“font“),该方法返回值始终是 String 类型的,所以必要的时候还需进行相应的类型转换。如果没有相应
23、的传入参数,那么 getParameter()方法会返回 null 值。2.2.3 Applet 基本方法从 java.applet.Applet 继承过来的 applet 会有五个基本的方法:(1) init()方法:当 applet 被加载时,会首先执行 init 方法,该方法相当于 java application 中的 main,该方法只能被执行一次;(2) start()方法:init 方法执行完毕会就会自动执行 start 方法,start 方法可以被反复执行,如一个 applet 被 stop 后,可以使用 start 方法重新开动它;(3) stop()方法:停止执行 appl
24、et,与 start 方法相对应(4) destroy()方法:与 init 方法相对应;(5) paint()方法:输出指定内容,paint 方法会被反复的调用,在applet 初始化时、窗口移动时等;(6) repaint()方法:该方法调用 update 方法;(7) update()方法:该方法清空屏幕的内容后,再调用 paint 方法重画;paint,repaint 及 update 方法是实现 Applet 中动画的三个主要函数,一般在南京工程学院毕业设计说明书(论文)第 10 页update 方法中调用 g.clipRect 方法规则 paint 的区域,这样 paint 方法只
25、更新指定区域的内容;(8) 以上这些方法在必须的时候可以重载,并且不需要在我们的 applet中显示的调用,可以自动执行(当然也可以显示调用) ;2.2.4 Applet 中的线程在 Applet 中如果需要用到动画或者后台数据处理等需要占用大量资源的功能时,最好使用线程。(1) 要在 applet 支持线程,一般需要实现 Runnable 接口,所以在本例类的声明中加了 implements Runnable;(2) 在 Runable 接口中定义了 run()方法,当线程 start 时,会调用这个方法;所以需要实现该方法;(3) 要使用线程当然需要实例化类 Thread(Thread 是属于 java.lang 包):Thread runner = new Thread(this),这里的初始化参数 this 指定的applet 对象;(4) 接下来在 applet 的 start 方法中调用 runner.start()方法开始创建线程,线程创建完后,运行 run 方法;(5) 在 run 方法中实现真正要实现的内容,本例修改了 theDate 的值后,调用 repaint 方法,该方法的调用触发了 paint 方法的执行;(6) 在 stop 方法中结束线程的运行。