




已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
驾校在线考试系统的设计驾校在线考试系统的设计 与实现毕业论文与实现毕业论文 目目 录录 摘摘 要要 I ABSTRACT II 1 引言引言 1 1 1 选题背景 1 1 2 课题背景及开展研究的意义 1 2 相关技术分析相关技术分析 2 2 1JSP 技术介绍 2 2 2 三大框架介绍 2 2 2 1Struts 2 2 2 2Hibernate 4 2 2 3Spring 5 3 需求分析需求分析 7 3 1 课题简要说明 7 3 2 可行性研究 7 2 2 1 经济可行性 7 2 2 2 技术可行性 7 2 2 3 运行可行性 7 2 2 4 时间可行性 8 2 2 5 法律可行性 8 3 3 在线驾驶员考试系统一般需求分析 8 3 4 当前在线驾驶员考试系统现状分析 8 3 5 性能需求 9 4 系统设计系统设计 10 4 1E R 图 10 4 2 数据字典 10 4 3 在线考试数据流程 12 4 4 在线考试总体功能介绍 13 4 5 在线考试模块设计 13 4 6 在线考试数据库设计 15 4 7 关键技术 17 4 7 1tomcat 数据库连接池介绍与配置 17 4 7 2applet 数字签名技术 18 5 系统详细设计与实现系统详细设计与实现 21 5 1 系统登陆实现 21 5 2 管理员的操作界面 22 5 3 添加选择题模块 23 5 4 题目查看模块 24 6 系统测试系统测试 26 6 1 系统测试目的与意义 26 6 2 测试过程 26 6 2 1 主页面的登录测试 26 6 2 2 题库添加测试 27 6 2 3 题库删题测试 28 6 3 其他错误 29 7 结束语结束语 30 参考文献参考文献 32 致致 谢谢 33 毕业设计 论文 知识产权声明毕业设计 论文 知识产权声明 34 毕业设计 论文 独创性声明毕业设计 论文 独创性声明 35 1 引言 1 1 引言引言 1 1 选题背景选题背景 现阶段 学校与社会上的各种考试大都采用传统的考试方式 在此方式下 组织一次考试至少要经过五个步骤 即出卷 考生考试 阅卷 成绩评估和试 卷分析 显然 随着考试类型的不断增加及考试要求的不断提高 教师的工作 量将会越来越大 并且其工作将是一件十分繁琐和非常容易出错的事情 可以 说传统的考试方式已经不能适应现代考试的需要 随着计算机应用的迅猛发展 网络应用不断扩大 如远程教育和虚拟大学的出现等等 且这些应用正逐步深 入到千家万户 人们迫切要求利用这些技术来进行在线考试 以减轻教师的工 作负担及提高工作效率 从而提高了考试的质量 使考试更趋于公证 客观 激发学生的学习兴趣 例如目前许多国际著名的计算机公司所举办的各种认证 考试绝大部分采用这种方式 1 2 课题背景及开展研究的意义课题背景及开展研究的意义 为了适应新形势的发展 目前国内有很多公司团体研究开发了基于 Web 的 考试系统 而我们知道网络应用软件运行的模式主要有二类 Client Server 模式 Browser Server 模式 前者主要的缺点是维护 升级较麻烦 后者是近几年伴随 Internet 迅速发展而应运而生的一种技术 在这种模式下 客户端需要一个浏览 器 服务器端是 Web Server 而 Web Server 是与数据库和应用服务器的紧密结 合 可见 这种模式是瘦客户端 即对客户端的要求不高 如今 很多部门的业 务系统 企业的 MIS 系统纷纷采用这种模式 它的主要优点是便于扩充应用 升级维护简便 然而 随着技术的发展 更先进的模式纷纷被提出并时兴起来 其中 J2EE 就是比较成熟的一种 2 相关技术分析 2 相关技术分析相关技术分析 2 1JSP 技术介绍技术介绍 JSP Java Server Pages 是由 Sun Microsystems 公司倡导 许多公司参与一起 建立的一种动态网页技术标准 JSP 技术有点类似 ASP 技术 它是在传统的网 页 HTML 文件 htm html 中插入 Java 程序段 Scriptlet 和 JSP 标记 tag 从而 形成 JSP 文件 jsp 用 JSP 开发的 Web 应用是跨平台的 即能在 Linux 下运行 也能在其他操 作系统上运行 JSP 技术使用 Java 编程语言编写类 XML 的 tags 和 scriptlets 来封装产生 动态网页的处理逻辑 网页还能通过 tags 和 scriptlets 访问存在于服务端的资源 的应用逻辑 JSP 将网页逻辑与网页设计和显示分离 支持可重用的基于组件 的设计 使基于 Web 的应用程序的开发变得迅速和容易 Web 服务器在遇到访问 JSP 网页的请求时 首先执行其中的程序段 然后 将执行结果连同 JSP 文件中的 HTML 代码一起返回给客户 插入的 Java 程序段 可以操作数据库 重新定向网页等 以实现建立动态网页所需要的功能 JSP 与 Java Servlet 一样 是在服务器端执行的 通常返回该客户端的就是 一个 HTML 文本 因此客户端只要有浏览器就能浏览 JSP 的 1 0 规范的最后版本是 1999 年 9 月推出的 12 月又推出了 1 1 规范 目前较新的是 JSP1 2 规范 JSP2 0 规范的征求意见稿也已出台 JSP 页面由 HTML 代码和嵌入其中的 Java 代码所组成 服务器在页面被客 户端请求以后对这些 Java 代码进行处理 然后将生成的 HTML 页面返回给客户 端的浏览器 Java Servlet 是 JSP 的技术基础 而且大型的 Web 应用程序的开 发需要 Java Servlet 和 JSP 配合才能完成 JSP 具备了 Java 技术的简单易用 完 全的面向对象 具有平台无关性且安全可靠 主要面向因特网的所有特点 自 JSP 推出后 众多大公司都支持 JSP 技术的服务器 如 IBM Oracle Bea 公司等 所以 JSP 迅速成为商业应用的服务器端语言 2 2 三大框架介绍三大框架介绍 2 2 1Struts struts2 并不是一个陌生的 web 框架 它是以 Webwork 的设计思想为核心 吸收 struts1 的优点 可以说 struts2 是 struts1 和 Webwork 结合的产物 struts2 的工作原理图如图 2 1 所示 西安工业大学毕业设计 论文 图 2 1 struts2 的工作原理图 一个请求在 Struts2 框架中的处理分为以下几个步骤 a 客户端发出一个指向 servlet 容器的请求 tomcat b 这个请求会经过图中的几个过滤器 最后会到达 FilterDispatcher 过滤器 c 过滤器 FilterDispatcher 是 struts2 框架的心脏 在处理用户请求时 它和 请求一起相互配合访问 struts2 的底层框架结构 在 web 容器启动时 struts2 框 架会自动加载配置文件里相关参数 并转换成相应的类 如 ConfigurationManager ActionMapper 和 ObjectFactory ConfigurationManager 存有配置文件的一些基本信息 ActionMapper 存有 action 的配置信息 在请求 过程中所有的对象 Action Results Interceptors 等 都是通过 ObjectFactory 来创建的 过滤器会通过询问 ActionMapper 类来查找请求中需要 用到的 Action d 如果找到需要调用的 Action 过滤器会把请求的处理交给 ActionProxy ActionProxy 为 Action 的代理对象 ActionProxy 通过 西安工业大学毕业设计 论文 4 ConfigurationManager 询问框架的配置文件 找到需要调用的 Action 类 e ActionProxy 创建一个 ActionInvocation 的实例 ActionInvocation 在 ActionProxy 层之下 它表示了 Action 的执行状态 或者说它控制的 Action 的执 行步骤 它持有 Action 实例和所有的 Interceptor f ActionInvocation 实例使用命名模式来调用 1 ActionInvocation 初始化时 根据配置 加载 Action 相关的所有 Interceptor 2 通过 ActionInvocation invoke 方法调用 Action 实现时 执行 Interceptor 在调用 Action 的过程前后 涉及到 相关拦截器 intercepetor 的调用 g 一旦 Action 执行完毕 ActionInvocation 负责根据 struts xml 中的配置找 到对应的返回结果 返回结果通常是 但不总是 也可能是另外的一个 Action 链 一个需要被表示的 JSP 或者 FreeMarker 的模版 在表示的过程中可以使用 Struts2 框架中继承的标签 2 2 2Hibernate Hibernate 是一个开放源代码的对象关系映射框架 它对 JDBC 进行了非常 轻量级的对象封装 使得 Java 程序员可以随心所欲的使用对象编 程思维来操 纵数据库 Hibernate 可以应用在任何使用 JDBC 的场合 既可以在 Java 的客户 端程序使用 也可以在 Servlet JSP 的 Web 应用中使用 最具革命意义的是 Hibernate 可以在应用 EJB 的 J2EE 架构中取代 CMP 完成数据持久化的重任 Hibernate 作为数据持久化的中间件 足以让数据库在业务逻辑层开发中去 冬眠 它通过可扩展标记语言 XML 实现了类和数据表之间的映射 使程序 员在业务逻辑的开发中面向数据库而改为面向对象开发 使整个项目开发分工 更加明确 提高了程序开发的效率 configuration 对象 Configuration 类负责管理 Hibernate 的配置信息 Hibernate 运行时需要获取一些底层实现的基本信息 其中几个关键属性包括 a 数据库 URL b 数据库用户 c 数据库用户密码 d 数据库 JDBC 驱动类 e 数据库 dialect 用于对特定数据库提供支持 其中包含了针对特定数据 库特性的实现 如 Hibernate 数据类型到特定数据库数据类型的映射等 以上信息一般情况下由 hibernate cfg xml 或者 hibernate properties 文件来配 置 实现与不同数据库的连接 Session 对象 Session 是持久层操作的基础 相当于 JDBC 中的 Connection 实例通过 SessionFactory 实例构建 Configuration config new Configuration configure SessionFactory sessionFactory config buildSessionFactory Session session sessionFactory openSession 西安工业大学毕业设计 论文 5 之后我们就可以调用 Session 所提供的 save find flush 等方法完成持久层 操作 因此 Session 对象也封装了所有对数据库的操作来实现 Hibernate 对数据 库的操纵功能 如 Save 方法实现增加和保存 Delete 方法实现数据的删除 Update 方法实现数据更新和修改 Find 方法实现数据的检索 Hibernate 会根据不同的操作自动生成相应的 SQL 语句 从而实现了程序员 对 PO 对象的操作转化为对数据库关系表的操作 2 2 3Spring 简单的来说 spring 是一个轻量级的开源的控制反转 IOC 和面向切面 AOP 的 容器框架 主要是为了解决企业应用程序开发中的复杂性而创建的 它的主要 优势之一就是其分层架构 分层架构允许您选择使用哪一个组件 同时为 J2EE 应用程序开发提供集成的框架 struts hibernate 等 Spring 由 7 个定义良好的 模块组成 Spring 模块构建在核心容器之上 就是我们所说的 IOC 容器 核心 容器定义了创建 配置和管理 bean 的方式 组成 Spring 框架的每个模块 或 组件 都可以单独存在 或者与其他一个或多个模块联合实现 spring 的目标 是实现一个全方位的整合框架 在 spring 框架下实现多个子框架的组合 这些 子框架之间可以相互独立 也可以使用其他框架方案加以替代 IOC 控制反 转 它是不是什么技术 它是一种设计模式 所谓控制反转就是由容器控制程 序间的关系 而不是传统实现中 由编程代码直接操控 说白了就是由容器控 制对象间的依赖关系 DI Dependency Injection 依赖注入 即组件 对象 之间 的依赖关系由容器在运行期间决定 其实依赖注入和控制反转是对同一概念的 不同描述 Spring 通过这种控制反转 IoC 的设计模式促进了松耦合 当应用 了 IoC 一个对象依赖的其它对象会通过被动的方式传递进来 而不是这个对 象自己创建或者查找依赖对象 不是对象从容器中查找依赖 而是容器在对象 初始化时不等对象请求就主动将依赖传递给它 我们可以把 IoC 模式看做是工 厂模式的升华 可以把 IoC 看作是一个大工厂 只不过这个大工厂里要生成的 对象都是在 XML 文件中给出定义的 然后利用 Java 的 反射 编程 根据 XML 中给出的类名生成相应的对象 从实现来看 IoC 是把以前在工厂方法里 写死的对象生成代码 改变为由 XML 文件来定义 也就是把工厂和对象生成 这两者独立分隔开来 其实控制反转就是不需要我们手动 new 一个对象了 它把我们所要实例化 的对象都写在了配置文件 xml 中了 一般这个类都是我们应用的业务类 框架 内部已经将 xml 中配置的类自动实例化成对象 当我们调用某个类 A 并且这 个类中存在另一个类 B 时 我们就说 A 依赖于 B 容器就会将 B 对象注入到 A 类中 大多数情况下都是通过 A 类中的 setB 方法注入进来的 以前是由类中 西安工业大学毕业设计 论文 6 的代码查找类并 new 对象 现在是 xml 文件控制的对象的生成 控制权由程序 代码转移到了 xml 文件中 这样做还是有好处的 假如在 A 中需要 5 个对象 那么 A 类中就会 new5 个对象 不管以后 A 中用不用到这 5 个类 只要用到 A 类 就会把这 5 个类全部 new 出来 如果我们在 xml 文件中定义类的话 当类 需要用到其中的三个类时 就会用对应的 set 类 方法将对象注入进来 不用的 就不注入进来 由此看来 第一个方法时将类 A 和 5 个类紧紧联系起来 不管 用不用到 5 个类都 new 一下 真浪费 而第二个方法是第一个类你需要我得时 候我就注入进来被你用 你不需要就和我没关系 这样类 A 和其中的 5 个类是 分别独立的互不干预 当有关系的时候 容器自动注入关系 3 需求分析 3 需求分析需求分析 3 1 课题简要说明课题简要说明 随着学校的不断扩大 有关学校管理的各种信息也成倍增长 面对庞大的 信息量 有必要开发试卷考试系统来提高管理工作的效率 今天我们使用计算 机对试卷考试信息进行管理 具有手工管理所无法比拟的优点 通过这样的系 统 可以做到信息的规范管理 科学统计和快速查询 从而减少管理方面的工 作量 有效地提高饭店信息管理的工作效率 3 2 可行性研究可行性研究 该阶段通过对系统目标的初步调研和分析 提出可行性方案并进行论证 我们在这里主要从技术可行性 经济可行性和操作可行性等方面进行分析 2 2 1 经济可行性经济可行性 开发该系统所需的相关资料可以通过已存在的相关系统进行调查采集 所需 的其他应用软件 硬件系统也易于获得 因此 开发成本较低 而引进使用本 系统后 与传统方式相比 具有高效率 低成本 高质量的特点 可以节省不 少人力 物力及财力 所以 从经济的角度来看 该系统可行 2 2 2 技术可行性技术可行性 技术可行性要考虑现有的技术条件是否能够顺利完成开发工作 软硬件配 置是否满足开发的需求等 本网站用的是 JSP 开发语言 调试相对简单 当前 的计算机硬件配置也完全能满足开发的需求 因此在技术上是绝对可行的 软 件方面 由于目前单机模式相对发展成熟 故软件的开发平台成熟可行 它们速 度快 容量大 可靠性能高 价格低 完全能满足系统的需求 2 2 3 运行可行性运行可行性 运行可行性是对组织结构的影响 现有人员和机构和环境对系统的适应性 及人员培训补充计划的可行性 当前信息化技术已经相当普及 各类操作人员 水平都有相当的高度 所以在运行上是可行性的 本系统的开发 是典型的 Mis 开发 主要是对数据的处理 包括数据的收 集 数据的变换 及数据的各种报表形式的输出 采用流行的 JSP SQLSERVER 2000 体系 已无技术上的问题 西安工业大学毕业设计 论文 8 2 2 4 时间可行性时间可行性 从时间上看 在两个月的时间里学习相关知识 并开发本饭店管理系统 时间上是有点紧 但是不是不可能实现 通过两个多月的努力功能基本实现 2 2 5 法律可行性法律可行性 a 所有技术资料都为合法 b 开发过程中不存在知识产权问题 c 未抄袭任何饭店管理系统 不存在侵犯版权问题 e 开发过程中未涉及任何法律责任 综上所述 本系统的开发从技术上 从经济上 从法律上都是完全可靠的 3 3 在线驾驶员考试系统一般需求分析在线驾驶员考试系统一般需求分析 在线驾驶员考试系统应具有以下要求 a 由于考试对应的是特定的对象 所以系统需要经过有效的身份验证才可 以登陆 并且系统需要有可以管理会话的功能 以便在考试过程中全程跟踪考 试状态 b 系统的权限一般分为两种 管理员和学生 不同的身份使用不同的权限 和功能 c 管理员需要对试题和考生进行有效的管理 负责试题的录入及更新和修 改 对试题的分类 每次考试前 需要对试场环境和考生状态进行考前初始化 工作 要注意的是 鉴于考试环境一般为机房 考试者之间的距离很近 为了 在线考试做到规范 对于每个应试者来说 试卷的试题和题量都应是相同的 但试题并不相同 系统要有良好的试卷上传和回收功能 确保信息传送的正确性 系统要有一个友善的界面 确保考生考试的顺利进行 因为试卷中的主观题需要老师批改 可能需要一段时间才能查询到成绩 但如果试卷是由客观题型组成的 考生就可以在考试结束后查询到自己的成绩 了 系统提供对考生成绩的统计和查询等管理功能 系统应具有良好的安全性管理 3 4 当前在线驾驶员考试系统现状分析当前在线驾驶员考试系统现状分析 当前考试系统中 仍有许多是基于 c s 模式的 每一次伴随着系统的升级 都要在每个客户端更新软件 耗时耗力 可喜的是 随着技术的发展 基于 b s 模式的在线驾驶员考试系统越来越多 逐渐占据了主导地位 它克服了 c s 模式 西安工业大学毕业设计 论文 9 下的许多缺点 从传统的基于 C S 模式的考试系统转变到基于 B S 模式的考试 系统 可以使用户在任何一台电脑上 只要可以上网 就可以使用该服务 大 大简化了操作 为用户提供了方便 另一方面 也为教师的管理和批阅工作提 供了方便 提高了效率 但是据我多方的观察和研究 发现大多数的在线驾驶 员考试系统都是采用基于页面的模式开发 每个页面中都包含了要用到的所有 功能逻辑 导致代码重复率高 结构不够清晰 维护升级起来也很费时间和人 力 鉴于这种情况 所以我们将 J2EE 的概念加入到在线驾驶员考试系统中来 使得该系统更易于升级和维护 3 5 性能需求性能需求 系统对环境的要求 服务起端的最低配置是由建立站点所需要的软件来决定的 在最底配置的 情况下 服务器的性能往往不进人意 现在硬件性能已经相当出色 而且价格 也很便宜 因此通常应给服务器端配置高性能硬件 本机器的配置如下 处理器 Inter Pentium 41 6Hz 或更高 内存 512MB 硬件空间 160GB 题目主要采用的技术 数据库 Microsoft SQL Server 2000 编程语言 JSP 服务器 Tomcat5 5 jdk1 6 开发环境 WindowsXP 4 系统设计 4 系统设计系统设计 4 1E R 图图 图 4 1 E R 图 4 2 数据字典数据字典 数据字典是关于数据库中数据的描述 即元数据 而不是数据本身 针对 饭店管理系统的需求 通过对饭店管理工作过程的内容和数据流程分析 设计 如下所示的数据项和数据结构 表 4 1 allusers 表 管理员表 序号字段名称字段类型大小允许为空备注 1IDInt4自增编号 2usernameVarChar50是用户名 3pwdVarChar50是密码 4cxVarChar50是用户 5addtimeDateTime是注册时间 表 4 2 chengji 表 成绩表 序号字段名称字段类型大小允许为空备注 1IDInt 4自增 编号 2xuehaoVarChar 50是 学号 3xztFloat 是 选择题 西安工业大学毕业设计 论文 11 4addtimeDateTime 是 注册时间 5dxtFloat 是多选题 6pdtFloat 是判断题 7tktFloat 是填空题 表 4 3 duoxuanti 表 多选题库表 序号字段名称字段类型大小允许为空备注 1IDInt 4自增 ID 2bianhaoVarChar 50是 编号 3shitiText Max是 试题 4nanyichengduVarChar 50是 难易程度 5xuanxiangAVarChar 300是 A 6xuanxiangBVarChar 300是 B 7xuanxiangCVarChar 300是 C 8xuanxiangDVarChar 300是 D 9daanVarChar 50是 答案 10addtimeDateTime 是 添加时间 表 4 4 kaosheng 表 考生信息表 序号字段名称字段类型大小允许为空备注 1IDInt 4自增编号 2xuehaoVarChar 50是 学号 3mimaVarChar 50是 密码 4xingmingVarChar 50是 姓名 5banjiVarChar 50是 班级 6xingbieVarChar 50是 性别 7shenfenzhengVarChar 50是 证件号 8youxiangVarChar 50是 邮箱 9dianhuaVarChar 50是 电话 10dizhiVarChar 50是 地址 11addtimeDateTime 是注册时 间 表 4 5 panduanti 表 判断题库表 序号字段名称字段类型大小允许为空备注 1IDInt 4自增 ID 2bianhaoVarChar 50是 编号 3shitiText Max是 试题 4nanyichengduVarChar 50是 难易程度 5daanVarChar 50是 答案 6addtimeDateTime 是添加时间 西安工业大学毕业设计 论文 12 表 4 6 tiankongti 表 填空题表 序号字段名称字段类型大小允许为空备注 1IDInt 4自增 ID 2bianhaoVarChar 50是 编号 3shitiText Max是 试题 4nanyichengduVarChar 50是 难易程度 5daanVarChar 50是 答案 6addtimeDateTime 是 添加时间 表 4 7 xuanzeti 表 选择题库表 字段名称字段类型大小允许为空备注 1IDInt 4自增 ID 2bianhaoVarChar 50是 编号 3shitiText Max是 试题 4nanyichengduVarChar 50是 难易程 度 5xuanxiangAVarChar 300是 A 6xuanxiangBVarChar 300是 B 7xuanxiangCVarChar 300是 C 8xuanxiangDVarChar 300是 D 9daanVarChar 50是 答案 10addtimeDateTime 是 添加时 间 4 3 在线考试数据流程在线考试数据流程 考生首先进入登陆页面 输入用户名和密码 系统将该用户名和密码与数 据库中考生表的用户名密码一一核对 如果存在该考生且未登陆 则弹出一个 考试的主页面正常进入考试 并将该考生置为考试状态 否则会跳到出错页面 要求考生重新登陆 进入考试页面后 有许多分类的试题要求考生分别完成 考生点击相应页 面的超链接 进入做题 在每个分页面的顶部 都将会有对该部分试题的操作 提示和注意事项 考生阅读完相关事项后进行做题 每做完该部分试题都必须 保存 系统将收集到的考生做题信息上传到数据库中 考生则继续做其他部分 试题 完成所有考试后 考生点击交卷标记 系统保存考生所有的答题信息后正 常他退出 并将考生置于离线状态 具体流程见下图 西安工业大学毕业设计 论文 13 图 4 2 系统流程 4 4在线考试在线考试总体功能介绍总体功能介绍 客户端 登陆服务 负责用户的登陆的输入 与服务器端的验证 如果是重登陆的 需 重登陆密码 题目下载 负责从数据库中读取试题数据 下载到客户端 用户答题 负责在客户的浏览器中显示下载的题目 供用户做题 题目上传 负责将客户所答题目的答案上传到服务器端 管理端 生成试题 负责从试题源中生成当场考试的相应试题 试题初始化 负责在每场考试前清空试题回收信息 考生监控 负责在考试期间管理监控各考生的考试状态 试卷回收 负责在考试结束后 将考生提交的答案上传到数据库服务器中 试卷批阅 负责自动化批阅回收试卷 客观题 数据库连接服务 负责从各共性服务层模块接收相关数据库连接 查询 修改等服务 并返回相关数据 数据访问层异常管理 负责数据库连接服务出现的异常 见图 4 3 4 5在线考试在线考试模块设计模块设计 各模块的详细介绍 a 考生登陆模块 考生登陆模块 1 在客户层 在客户层 考生通过主登陆页面输入用户名与密码 西安工业大学毕业设计 论文 14 2 在 在 web 层层 将从用户输入处得到的用户名和密码与从业务层返回的相 应用户名和密码作比较 如果用户存在密码正确且还未登陆就登陆考试主页面 否则跳到出错页面要求重新登陆 3 在业务层 在业务层 获得与 mssql 数据库的连接 并取出所有的用户名和密码信 息 将该信息传入 web 层 4 在 在 EIS 层层 对应的是 mssql 数据库中的 students 表格 b 做题模块做题模块 1 选择题 选择题 1 在客户层 在客户层 浏览器中显示每个考生所对应的考试题目 要求考生输入考 试答案 并有一个提交按钮供考生做完题目后上传题目 2 在 在 Web 层层 jsp 负责从业务层中获得题目 并将题目组织在一起向客户 端显示 3 在业务层 在业务层 获得与数据库的连接 并且取出选择题题目 4 在 在 EIS 层层 对应的是数据库中 choose 表格 2 word 题 题 1 在客户层 在客户层 在浏览器中 applet 的 textarea 区域显示 word 题的要求 并 利用 applett 数字签名技术 突破访问本地文件系统的限制 打开 word 做题 2 在 在 Web 层层 利用 servlet 的文件上传下载技术 将读出的 word 文件下 载到本地磁盘 3 在业务层 在业务层 获得数据库连接 并取出 word 题目 word 题是以二进制流的 方式将 word 文件存贮在数据库 4 在 在 EIS 层层 对应的是数据库中 word 表格 c 答案上传模块 答案上传模块 1 在客户层 在客户层 在浏览器中单击提交按钮将做完的答案提交制相应页面 2 在 在 Web 层层 将用户提交的答案提交给相应的 javabean 组件 并在客户 端显示提示信息 3 在业务层 在业务层 将提交上来的答案存入相应的数据库中 4 在 在 EIS 层层 数据库中 students 表格 有两个相应字段用来存放该用户所 对应的提交答案 西安工业大学毕业设计 论文 15 图 4 3 系统模块 4 6在线考试在线考试数据库设计数据库设计 由于目前市场上存在有许多的数据库产品 较流行的有 oracle Mssql Access sqlserver 等 oracle 数据库多用于大企业中 稳定性最 好 但价格也较高 且系统要求也较高 而 Access 数据库不支持网络功能 一 般只对个人或小型的系统适用 而对于本系统来说 采用 sqlserver 则是一个较 为合适的选择 sqlserver 是微软网络数据库的主打产品 支持网络功能 日志 记录等多种方便的服务 并且有着较为稳定的性能和可靠的管理 下面是某几 个数据库表的设计为例 CREATE TABLE dbo allusers id int IDENTITY 1 1 NOT NULL username nvarchar 50 NULL pwd nvarchar 50 NULL cx nvarchar 20 NULL addtime datetime NULL 在 线 驾 驶 员 考 试 系 统 客 户 端 管 理 端 登录服务 题目下载 用户答题 答案上传 生成试题 试题初始化 考生监控 试卷回收 试卷批阅 数 据 库 连 接 服 务 数据库 连接服 务 MYSQ LSER VER 西安工业大学毕业设计 论文 16 ON PRIMARY GO CREATE TABLE dbo chengji id int IDENTITY 1 1 NOT NULL xuehao nvarchar 50 NULL xzt nvarchar 50 NULL addtime datetime NULL dxt Float NULL pdt Float NULL tkt Float NULL ON PRIMARY GO CREATE TABLE dbo chengji ID int IDENTITY 1 1 NOT NULL bianhao nvarchar 50 NULL shiti nvarchar 50 NULL nanyichengdu nvarchar 50 NULL xuanxiangA nvarchar 50 NULL xuanxiangB nvarchar 50 NULL xuanxiangC nvarchar 50 NULL xuanxiangD nvarchar 50 NULL daan nvarchar 50 NULL addtime datetime NULL ON PRIMARY GO CREATE TABLE dbo duoxuanti ID int IDENTITY 1 1 NOT NULL bianhao nvarchar 50 NULL shiti nvarchar 50 NULL nanyichengdu nvarchar 50 NULL xuanxiangA nvarchar 50 NULL xuanxiangB nvarchar 50 NULL xuanxiangC nvarchar 50 NULL xuanxiangD nvarchar 50 NULL daan nvarchar 50 NULL 西安工业大学毕业设计 论文 17 addtime datetime NULL ON PRIMARY GO 4 7 关键技术关键技术 4 7 1tomcat 数据库连接池介绍与配置数据库连接池介绍与配置 数据库连接池概述 数据库连接是一种关键的有限的昂贵的资源 这一点 在多用户的网页应用程序中体现得尤为突出 对数据库连接的管理能显著影响 到整个应用程序的伸缩性和健壮性 影响到程序的性能指标 数据库连接池正 是针对这个问题提出来的 数据库连接池负责分配 管理和释放数据库连接 它允许应用程序重复使 用一个现有的数据库连接 而再不是重新建立一个 释放空闲时间超过最大空 闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏 这项技术能明显提高对数据库操作的性能 数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中 这 些数据库连接的数量是由最小数据库连接数来设定的 无论这些数据库连接是 否被使用 连接池都将一直保证至少拥有这么多的连接数量 连接池的最大数 据库连接数量限定了这个连接池能占有的最大连接数 当应用程序向连接池请 求的连接数超过最大连接数量时 这些请求将被加入到等待队列中 数据库连 接池的最小连接数和最大连接数的设置要考虑到下列几个因素 a 最小连接数是连接池一直保持的数据库连接 所以如果应用程序对数据 库连接的使用量不大 将会有大量的数据库连接资源被浪费 b 最大连接数是连接池能申请的最大连接数 如果数据库连接请求超过此 数 后面的数据库连接请求将被加入到等待队列中 这会影响之后的数据库操 作 c 如果最小连接数与最大连接数相差太大 那么最先的连接请求将会获利 之后超过最小连接数量的连接请求等价于建立一个新的数据库连接 不过 这 些大于最小连接数的数据库连接在使用完不会马上被释放 它将被放到连接池 中等待重复使用或是空闲超时后被释放 以下介绍一下连接池配置关键几个环节 a 首先在 CATALINA HOME conf server xml 中 配置应用程序的路径 b 然后配置资源名 用以在 jndi 中进行查询 西安工业大学毕业设计 论文 18 c 定义各连接参数 用户名 密码 数据库驱动以及数据源的查找路径 usernamejavauser passwordjavadude driverClassName com microsoft jdbc sqlserver SQLServerDriver url jdbc mysql localhost 3306 javatest autoReconnect true d 由于系统是一个 web 应用程序 被布署在 tomcat 容器中 所以需要在 CATALINA HOME webapps quality WEB INF web xml 里设置被引用的资源 下面是配置代码 必须放在和里 connectDB test jdbc connectDB javax sql DataSource Container e 最后 将第 3 方的驱动都保存在 CATALINA HOME common lib jar 中 如我们这里连接的是 mssql 则将 mssql 的驱动程序 msbase jar mssqlserver jar msutil jar 放入其中 4 7 2applet 数字签名技术数字签名技术 实现 applet 数字签名 使得 applet 可以突破默认安全限制 读取本地文件 系统 在 Java2 的安全体系下 1 个 Applet 开发和运行的过程如下 在代码的分发端 a 开发 Java 源程序并对其进行编译 b 用 JAR 工具对类文件和资源文件进行封装 c 用 keytool 创建公钥和密钥 生成 X 509V1 签名证书 输出证书 d 通过 jarsigner 工具用生成的密钥对 JAR 文件进行数字签名 在代码的接收端 a 用 keytool 输入证书视其为可信任 b 用 policytool 创建和修改安全性策略配置文件 授权请求的访问权限 c 从网络取得字节码 用公钥验证数字签名证书和文档代码的完整性 西安工业大学毕业设计 论文 19 d 验证字节码的合法性 根据策略文件分配相应权限 e 执行代码 完成后被垃圾回收器回收内存 在用公钥验证数字签名证书之前 接收方需要确认公钥自身的可靠性 因 此通常情况是提供一个包含公钥的证书而不是公钥自身 1 个证书包括 a 1 个公钥 b 1 个唯一的名字实体 个人或公司 它是证书的所有者 包含用户名字 公司 组织 城市 地址 国家代码 省份等信息 c 数字签名 1 个证书被 1 个分发者的实体签名 保证证书确实包含另 1 个 实体 所有者 的公钥 d 分发者的标识名信息 对于接收者可以用分发者的公钥来验证他的数字签名 检查证书的合法性 然而公钥可能包含在另一个证书中 而数字签名需要用另一个证书的分发者的 公钥来验证 这样嵌套下去 直到一个公钥被接收者确认是可信任的 如果接 收者不能建立信任链 例如 1 个分发者的证书不合法 那么可以用 keytool import 命令来计算指纹 每个指纹是一个相关的短数字 它唯一可靠 地标识证书 指纹是一个用信息摘要算法计算的证书信息的哈希值 接收者 可以呼叫证书的所有者 并比较发出的证书和接收证书的指纹 如果指纹相同 则证书不同 因此能够保证证书在传递的过程中未被修改 另一个潜在的问题 是发送者身份的标识 有时一个证书是自签名的 即使用证书中的公钥相对应 的密钥进行签名 如果接收者已经知道或信任发送者 那么就没有任何问题 否则发送者需要从一个可信任的第 3 方得到证书 这个第 3 方通常是一个证书 的授权机构 CA 那么首先发送一个自签名的证书签名请求 CSR 给 CA 由 CA 验证 CSR 的签名及发送 CSR 的身份 许可证以及其它信息 然后 CA 通过一 个用 CA 的密钥进行签名的证书 授权 CSR 的发送者作为公钥的所有者 任何 人只要信任 CA 的公钥 都可以用之来验证证书的签名 很多情况下 CA 自身 有一个来自更高一级的 CA 的证书 从而构成证书链 所有信任的证书实体都 可以作为信任证书被引入钥匙库 每个证书中的公钥都可以用来验证用相应的 密钥生成的签名 发送者在发送签名的代码和文档时还相应提供包含与签名的密钥相应的公 钥证书 用 keytool export 命令或 API 函数可以从钥匙库中输出证书到文件中 然后将这个文件发送给需要的接收者 由接收者用 keytool import 命令或 API 函数将其引入钥匙库中 如果用 jarsigner 工具为 JAR 文件生成签名 他会从钥 匙库中取出证书及证书链 并和签名一起放入 JAR 文件 密钥和相应的公钥证书存放在一个由口令保护的数据库中 称为钥匙库 keystore 1 个钥匙库包含 2 种类型的条目 可信任的证书条目 钥匙和证 书条目 每个都包含 1 个密钥和与密钥相应的公钥证书 在钥匙库中的每个条 目都有 1 个别名进行标识 1 个钥匙库的所有者在钥匙库中可以有多个钥匙 可以通过不同的别名进行访问 每个别名通常是用钥匙库的所有者使用的钥匙 西安工业大学毕业设计 论文 20 的特定角色来命名 别名也可以标识钥匙的目的 例如 SignPersonalEmail 可 以被用来标识 1 个钥匙库的条目 它的密钥用于签名个人邮件 SignJarFiles 用 于标识 1 个条目 它的密钥用于签名 JAR 文件 5 系统详细设计与实现 5 系统详细设计与实现系统详细设计与实现 5 1 系统登陆实现系统登陆实现 图 5 1 选择用户类型 然后输入用户名和密码 用户正确就能进入相应的页面进 行操作 否则 就会返回登陆界面 告诉用户用户名或密码有误 点击注册然后学生就能注册帐号 完成注册后就能用帐号和密码进行相应 的考试操作 实现 String uid request getParameter username String pwd request getParameter pwd String cx new String request getParameter cx getBytes 8859 1 String sql if cx equals 管理员 sql select from allusers where username uid and pwd pwd else 西安工业大学毕业设计 论文 22 sql select from kaosheng where xuehao uid and mima pwd ResultSet RS result connDbBean executeQuery sql if RS result next out print alert 你输入的用户不存在或密码错误 请重新登录 window history go 1 else session setAttribute username uid session setAttribute cx cx response sendRedirect main jsp RS result close 5 2 管理员的操作界面管理员的操作界面 图 5 2 管理要主要是对学生和老师进行相应的管理 西安工业大学毕业设计 论文 23 5 3 添加选择题模块添加选择题模块 图 5 3 该模块的主要功能是让管理员可以添中题库中的选择题信息 其中较难实 现的是添加试题内容 这里用到一个在线编辑器 它的功能非常强大 不仅可 以输入文字信息 还可以输入图片 表格 压缩包 甚至影音文件 实现本模块的主要代码如下所示 编号 试题 难易程度 易 中 难 选项 A 选项 B 选项 C 选项 D 答案 A 西安工业大学毕业设计 论文 24 B C D 5 4 题目查看模块题目查看模块 图 5 4 该模块主要是让管理员可以查看管理已添加的试题信息 可以进行查询 修改 删除 统计 打印等操作 实现起来非常方便 一目了然 其实现的代 码如下所示 sql select top page record from xuanzeti where id not in select top curpage 1 page record id from xuanzeti order by id desc if request getParameter bianhao request getParameter bianhao null else sql sql and bianhao like new String request getParameter bianhao getBytes 8859 1 if request getParameter shiti request getParameter shiti null else sql sql and shiti like new String request getParameter shiti getBytes 8859 1 if request getParameter nanyichengdu 所有 西安工业大学毕业设计 论文 25 request getParameter nanyichengdu null else sql sql and nanyichengdu like new String request getParameter nanyichengdu getBytes 8859 1 sql sql order by id desc RS result connDbBean execut
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 油墨在触摸屏印刷中的技术要求考核试卷
- 穿戴式设备在智能机器人控制中的应用考核试卷
- 液体乳制造考核试卷
- 电视购物节目的制作与传播技巧考核试卷
- 笔的制造与环境保护法规遵循考核试卷
- 石油开采业的创新技术与智能解决方案研究考核试卷
- 棉麻纺织品国际贸易风险防范考核试卷
- 珠海市珠海二中、斗门一中高三上学期期中联考生物试题
- 珠海三中高二下学期期中考试文科地理试题
- 上海市宝山中学2025年高三下学期物理试题4月开学考试卷含解析
- 科学控糖与健康体重管理
- 2025年江苏省南京市中考《二次函数综合》专题复习讲义
- 2025年广东省高三高考模拟测试二生物试卷(有答案)
- 安全生产材料购买合同协议
- 桥梁工程施工检验测试计划
- 四川农商银行招聘笔试真题2024
- 右足底皮肤裂伤护理查房
- 淘宝商家押金协议书
- 2025年普通高中学业水平选择性考试冲刺压轴卷一英语试卷(含答案)
- 2025年生猪屠宰兽医卫生检疫人员考试题(附答案)
- 2025年共青团团课考试题库及答案
评论
0/150
提交评论