




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
I 摘 要 当今时代是飞速发展的信息时代 在各行各业中都离不开信息处理 这是计算机 应用系统开发被广泛应用的一个外部环境 现在广大学校的内部网络建立后 为不断 满足广大用户对信息的高度共享 信息的即时发布和实现各种内部事务信息化管理的 需求 学校在通用信息平台上也构筑了不少高效实用的应用系统 实验室任务管理系 统就是应广大师生的需求而建立起来的 本文论述了网上实验任务管理系统的开发全过程 对网上实验任务管理系统的当 前技术及发展前景 开发工具作了简单的介绍 然后对实验任务管理系统进行了需求 分析 划分功能模块并对各个功能模块进行设计 最后就系统实现和关键技术作了详 细的说明 其主要功能有 查看实验室当前状态 申请实验任务管理 取消未被处理 的任务管理 超级管理员可以添加任务管理实验和固定实验 管理用户信息和实验室 信息 为完善实验任务管理系统的完备性 本系统还提供了用户修改个人信息和留言 求助功能 超级管理员也可以添加普通管理员 本设计采用了 Mysql 数据库作后台和 Sun 公司倡导的 JSP 动态网页技术作前台 采用 JDBC 技术访问数据库 系统操作简单 界面友好 运行比较稳定 关键词 实验任务管理 数据库 JSP 关键字关键字 互联网 企业 JSP II Abstract The present era is an era with rapid development of information In all walks of life information processing can not be separated which is an external environment for computer application systems development and wide use Now the schools internal networking in order to satisfy the needs of users in information highly sharing information immediate dissemination and achievement of internal affairs information management school information sets up many much practical applications in a platform Laboratory booking system is established to the needs of teachers and students This paper discusses about the whole development process of the Online booking system Firstly it briefs on the current experimental techniques the development prospects and the development of a simple presentation tools And then discuss the requirement analysis of the online booking system the various functional modules and the design of them Finally explains the realization of this system and its key technology in detail Its main functions are to see the current state of the laboratory for experiments booking cancellation of the appointment which has not been addressed Super managers can add appointed and fixed laboratory experiments users information and laboratory management information For improving the comprehensive nature the system also provides information change function and voice mail for help for individual users And super managers can also add general manager The design adopts Microsoft server2000 database as the background Sun company s JSP dynamic web technology as proscenium and use JDBC technology for visiting database Simple operation friendly interface and stable circulation are its characteristics Keywords Booking labrary Database JSP III 目目 录录 摘摘 要要 I ABSTRACTABSTRACT II 1 1 需求分析需求分析 1 1 1 项目背景 1 1 2 项目设计原则 1 1 3 1 服务性原则 1 1 3 2 经济性原则 1 1 3 3 扩充性原则 1 2 2 可行性分析可行性分析 3 2 1 技术可行性 3 2 1 1 动态网站技术介绍 3 2 1 2 程序语言的选择 3 2 1 3 语言优势 5 2 1 4 操作可行性 6 2 2 环境可行性分析 6 2 2 1 软件环境 6 2 2 2 硬件环境 7 2 3 系统结构可行性分析 7 2 3 1 B S 模式简介 7 2 3 2 B S 模式的优点 7 3 3 系统设计系统设计 9 3 1 项目设计 9 3 1 1 管理员模块 9 3 1 2 学生模块 10 3 1 3 老师模块 11 3 2数据库设计 11 3 3 开发架构 12 3 3 1 软件开发架构的意义 12 3 3 2 JSf架构简介 13 3 4 数据持久层 15 3 5 1 持久化数据 16 3 5 2 持久化技术 17 4 4 系统实现系统实现 19 4 1 实现效果 19 4 1 1 管理员主页面 19 4 1 2 实验管理 19 4 1 3 学生管理 19 IV 4 6 技术难点 19 4 6 1 中文乱码 19 4 6 2 安全性 19 5 5 系统测试系统测试 20 5 1 测试的定义及目的 20 5 2 测试的原则 20 5 3 测试的方法 21 5 3 1 界面测试 21 5 3 2 功能测试 21 5 3 3 需求测试 22 5 3 4 性能测试 22 5 4 测试中其他要注意的地方 22 5 5 实验室任务管理系统的测试 23 总结总结 24 致谢致谢 25 参考文献参考文献 26 1 1 需求分析 1 1 项目背景 实验室任务管理系统是一个让学生通过网上提交任务管理实验的系统 由 于学生对实验的需求很多 而教师人数有限 这使得学生做实验时遇到问题不 能得到及时解决 从而导致实验很难继续下去 这样实验难以达到预期目的 因此 必须准确地了解学生对实验的内容和时间等的要求 才能有效地安排教 师辅导 实验室任务管理系统 通过学生网上任务管理实验的方式 为实验室 妥善安排提供可靠的依据 1 2 项目设计原则 1 3 1 服务性原则 作为校园实验室运作的一个组成重要部分 服务于学校的对学生和老师的 试验方便性 服务于学生与老师 老师与管理员沟通渠道的建立 完善实验室 服务体系 创造更多的学习机会 为实验室管理员提供便利的操作 1 3 2 经济性原则 建立适合校园自身需求的网络平台 提供广泛的涵盖用户多种需求的功能 数据处理方式灵活以满足高度用户化的需求 节省网站建设成本 并确保其较 好的拓展性和开放性 同时网站具有基于 WEB 界面的管理后台 企业能够自主 的对网站中大部分内容作更新 修改操作 节省了网站的运营成本 提高了信 息更新 传播效率 1 3 3 扩充性原则 网站的整体规划及框架设计是具可扩充性的 前台页面的设计能保证网站 整体结构 后台数据库的设计具有高度的扩充性 能够根据需要对栏目 类别 2 的增 删 修改 3 2 可行性分析 2 1 技术可行性 2 1 1 动态网站技术介绍 Internet 起源于 20 世纪 60 年代的美国 它在近几年迅速风靡全球 其根本原因 不仅在于她拥有卓越的国际通信功能 更在于它拥有巨大的信息资源 所谓的 Internet 是指由分布在全世界成千上万的计算机网络遵循一定的通讯协议 并相 互联系在一起而形成的国际互连网络 也就是说 Internet 是建立和使用这些网络 的人群 群体 公司以及各种网络资源的集合体 随着网络技术的不断发展 单纯的静态页面已经不能满足发展的需要 因为静 态页面是用单纯的 HTML 语言组成的 它没有交互性 因此 为了满足实际的需要 许多网页文件扩展名不再只是 htm html 出现了以 php asp jsp shtml 等 为后缀的网页文件 这些都是采用动态网页技术制作出来的 2 1 2 程序语言的选择 CGI CGI Common Gateway Interface 通用网关接口 首先 客户端 即 Web 浏 览器 根据某资源的 URL Uniform Resource Locator 统一资源定位器 向 Web 服务器提出请求 Web 服务器的 HTTP Daemon 守护进程 将此请求的参数通过标 准输入 stdin 和环境变量传递给指定的 CGI 程序 并启动此应用程序进行处理 如要存取数据库服务器上数据库的数据 则向数据库服务器发出处理请求 数据 库服务器将执行结果返回给 CGI 程序 CGI 程序处理结果通过标准输出 stdout 返回给 HTTPDaemon 进程 再由 HTTP Daemon 进程返回给客户端 由浏览器解释执 行 将最终结果在用户面前显示 CGI 允许 Web 服务器运行外部应用程序 以通过 外部程序来访问数据库等一些外部资源 并产生 HTML 文档给浏览器 但每次请求 CGI 程序都要重新启动程序 影响了响应的速度 且 CGI 程序不能被多个客户请 求共享 影响了各种资源的使用效率 为了克服 CGI 的这些缺点 一些 Web 服务器 厂商开发出了专用的 API Applications Program Interface 应用程序接口 这 样就允许程序员编写程序来扩展服务器的功能 API 相对于 CGI 与 Web 服务器的 4 结合更加紧密 占用的资源较少 运行的效率大有提高 安全性与保护性更好 但 是开发 API 应用程序比开发 CGI 应用程序复杂得多 要求程序员掌握更多的计算 机软件知识 且各种 API 之间的兼容性不好 业界没有一个统一的标准 使得 API 程序只能工作在专用的 Web 服务器与操作系统之上 编写 CGI 的程序设计语言有 许多种 常用的有 C PERL Visual C 等 由于对程序员的要求较高 且编写与 调试比其它队编程技术困难 故近年来基于 B S 的信息系统工程时间中已很少被 采用 ASP ASP 的程序比 HTML 更方便而更富有灵活性 是在 Web 服务器端运行 运行 后再将运行结果以 HTML 格式传送至客户端的浏览器 因此 ASP 与一般的脚本 语言相比要安全得多 ASP 最大的好处就是可以包含 HTML 标签 也可以直接存 取数据库及使用无限扩充的 ActiveX 控件 用户可以直接使用 ActiveX 控件 调用 对象方法和属性 以简单的方式实现强大的交互功能 但 ASP 技术也并非完美无 缺 由于它基本上是局限于微软的操作系统平台 主要的工作环境是微软的 IIS 应 用程序结构 又因 ActiveX 对象具有平台特性 所以 ASP 技术要实现在跨平台 Web 服务器上工作 不是很容易 Microsoft 的 ASP 技术目前已发展到 NET 版 对 很多人来说 用 ASP 来创建 Windows 服务器平台上的动态 Web 网页 整个站点和 基于 Web 的应用程序已经成为及其自然的方法 在浏览器地址栏中 文件扩展名 asp 同表示动态创建的网页的文件扩展名 pl 或 cgi 一样 已被浏览者所接受 开发 ASP 程序 常常先设计静态网页的栏目格式和排版形成 HTML 语言 接着在 HTML 的基础上添加脚本程序 形成 ASP 程序后再实现动态的 Web 网页 在 ASP 的程序开发中 它所用的脚本语言是 JavaScript 和 VBScript 在默认情况下使用的 是 VBscript 它是 VB 程序设计语言的一个子集 语法与 VB 基本相同 ASP 中的 ADO 对象用来执行与数据库相关的操作 ADO 再以 OLEDB 或 ODBC 的方式访 问数据库 在 NET 版本中这一对象称为 ADO NET PHP PHP 即 Hypertext Preprocessor 超文本预处理器 它是当今 Internet 上最为火 热的脚本语言 其语法借鉴了 C Java Perl 等语言 而且只需要很少的编程知识就能 使用 PHP 建立一个真正交互的 Web 站点 它与 HTML 语言具有非常好的兼容性 使用者可以直接在脚本代码中加入 HTML 标签或者在 HTML 标签中加入脚本 代码从而更好地实现页面控制 PHP 提供了标准的数据库接口 数据库连接方便 5 兼容性更强 扩展性强 可以进行面向对象编程 但是 PHP 对组件的支持不够 扩展 性差 常用它与免费的数据库系统 MySQL 协同一起用来构建中小型网 B S 应用 大网站或信息系统 JSP JSP JavaServer Pages 是由 Sun 公司倡导 许多别的公司参与一起创建的一种 新动态网页技术标准 类似其他技术标准 在传统的网页 HTML 文件 htm html 中 加入 Java 程序片断 Scriptlet 和 JSP 标签 构成了 JSP 网页 jsp Servlet JSP Container 收到客户端发出的请求时 首先执行其中的程序片断 软后将执行结果 以 HTML 格式响应给客户端 其中程序片断可以是 操作数据库 重新定向网页以 及发送 E Mail 等等 这些都是建立动态网站所需要的功能 所有程序操作都在服 务器端运行 网络上传送给客户端的仅是得到的结果 与客户端的浏览器无关 因 此 JSP 称为 Server side Language 所以被许多人认为是未来最有发展前途的动态 网站技术之一 经过如上的程序语言的比较 PHP 功能相对简单 不适合作大程序 而 CGI 效 率相对较低 所以也不考虑 因为该系统并没有原有的基础平台需要扩展 也不需 要与其他系统进行太多的交互 所以使用 J2EE 的模式并不能够体现出 J2EE 本身 的优势 而 JSP 又是 J2EE 的核心技术之一 可以随时升级为 J2EE 程序 这里暂时 不考虑采用 J2EE 这样只需要在 ASP 和 JSP 中进行选择 在进行了诸多因素的比 较之后 最终认为目前这个阶段比较合适的是 JSP 而选择 Struts 架构作为开发的 主体框架 选用 Hibernate 作为数据持续性处理层 则是考虑到了其高速的开发效 率 及代码重用性高 易于维护等各种优势 其最终目的是希望提高系统底层业务 逻辑的可重用性 增加系统的可扩展性 降低系统维护成本 2 1 3 语言优势 将内容的生成和显示进行分离 使用 JSP 技术 Web 页面开发人员可以使用 HTML 或者 XML 标识来设计和格式 化最终页面 使用 JSP 标识或者小脚本来生成页面上的动态内容 生成的内容的 逻辑被封装在标识和 JavaBeans 组件中 那么其他人 如 Web 管理人员和页面设 计者 能够编辑和使用 JSP 页面而不影响内容的生成 一次编写 到处运行 作为 Java 平台的一部分 JSP 拥有 Java 编程语言 一次编写 到处运行 6 的特点 随着越来越多的供应商将 JSP 支持添加到他们的产品中 您可以使用自 己所选择的服务器和工具 但并不影响当前的应用 JSP 的平台适应性更广 这是 JSP 比 ASP 的优越之处 几乎所有的平台都支持 Java 它们可以在任何 平台下通行无阻 虽然 NT 的 OS 占据了很大的市场的份额 但在服务器方面 UNIX 的优势仍然很大 从一个平台移植到另一个平台 JSP 和 JavaBeans 甚至不 用重新编译 因为 Java 字节码都是标注的字节码与平台无关 健壮的存储管理和安全性 由于 JSP 页面的内置脚本语言是基于 Java 编程语言的 而且所有的 JSP 页面 都被编译为 Java Servlet JSP 页面就具有 Java 技术的所有优点 包括健壮的存储 管理和安全性 数据库连接技术 很多的 OS 中都带有 JDBC 驱动程序 Java 就通过 JDBC 与数据库连接 执行 查询 提取数据等操作 Sun 公司还提供了 JDBC ODBC 的桥连方式 因此 Java 也 可以访问带有 ODBC 驱动的数据库 目前大多数数据库系统都带有 ODBC 驱动 所以 Java 能访问诸如 Oracle Sybase MS SQL Server 和 Access 等类型的数据库 2 1 4 操作可行性 对于用户来说 本系统只要求使用者掌握一定的上网经验 经过仔细设计和 测试之后的系统具有操作简单 方便灵活等优点 足可以满足各种用户的不同 需求 同时也方便了公司的内部管理 管理人员及用户一定会在短时间内掌握 并熟练使用 只要动一动鼠标键盘就可以达到想要的效果 2 2 环境可行性分析 2 2 1 软件环境 操作系统 Win2k Server sp4 数据库 Mysql Web 服务器 TOMCAT 7 IDE Eclipse3 1 1 Myeclipse4 1 1GA Lomboz emf Dreamweaver8 2 2 2 硬件环境 AMD Athlon 64 3000 KingMax PC3200 512MB 2 Gainward NV35XT Seagate SATA 8M 120GB 2 2 3 系统结构可行性分析 2 3 1 B S 模式简介 本系统采用 B S 模式 B S Browser Server 结构即浏览器和服务器结构 它是随着 Internet 技术的兴起 对 C S 结构的一种变化或者改进的结构 在这种结构下 用户工 作界面是通过 WWW 浏览器来实现 极少部分事务逻辑在前端 Browser 实现 但是主要事务逻辑在服务器端 Server 实现 形成所谓三层 3 tier 结构 这 样就大大简化了客户端电脑载荷 减轻了系统维护与升级的成本和工作量 降 低了用户的总体成本 TCO 以目前的技术看 局域网建立 B S 结构的网络应 用 并通过 Internet Intranet 模式下数据库应用 相对易于把握 成本也是 较低的 它是一次性到位的开发 能实现不同的人员 从不同的地点 以不同 的接入方式 比如 LAN WAN Internet Intranet 等 访问和操作共同的数据库 它能有效地保护数据平台和管理访问权限 服务器数据库也很安全 特别是在 JAVA 这样的跨平台语言出现之后 B S 架构管理软件更是方便 快捷 高效 2 3 2 B S 模式的优点 维护和升级方式简单 目前 软件系统的改进和升级越来越频繁 B S 架构的产品明显体现着更为 方便的特性 对一个稍微大一点单位来说 系统管理人员如果需要在几百甚至上 千部电脑之间来回奔跑 效率和工作量是可想而知的 但 B S 架构的软件只需要 管理服务器就行了 所有的客户端只是浏览器 根本不需要做任何的维护 无论用 户的规模有多大 有多少分支机构都不会增加任何维护升级的工作量 所有的操 8 作只需要针对服务器进行 如果是异地 只需要把服务器连接专网即可 实现远 程维护 升级和共享 所以客户机越来越 瘦 而服务器越来越 胖 是将来 信息化发展的主流方向 今后 软件升级和维护会越来越容易 而使用起来会越来 越简单 这对用户人力 物力 时间 费用的节省是显而易见的 惊人的 因此 维护和升级革命的方式是 瘦 客户机 胖 服务器 成本降低 选择更多 大家都知道 windows 在桌面电脑上几乎一统天下 浏览器成为了标准配置 但在服务器操作系统上 windows 并不是处于绝对的统治地位 现在的趋势是凡使 用 B S 架构的应用管理软件 只需安装在 Linux 服务器上即可 而且安全性高 所 以服务器操作系统的选择是很多的 不管选用那种操作系统都可以让大部分人使 用 windows 作为桌面操作系统电脑不受影响 这就使的最流行免费的 Linux 操作 系统快速发展起来 Linux 除了操作系统是免费的以外 连数据库也是免费的 这 种选择非常盛行 比如说很多人每天上 网易 网 只要安装了浏览器就可以了 并不需要了 解 网易 的服务器用的是什么操作系统 而事实上大部分网站确实没有使用 windows 操作系统 但用户的电脑本身安装的大部分是 windows 操作系统 9 3 系统设计 系统设计是在系统分析的基础上由抽象到具体的过程 主要目标是将系统分 析阶段所提出的反映了信息需求的系统逻辑方案转换成可以实施的基于计算机 与通信系统的物理 技术 方案 为下一阶段系统实施提供必要的技术资料 应符 合系统性 灵活性 可靠性 经济性的要求 3 1 项目设计 3 1 1 管理员模块 学期管理 TermManage 学期的属性包括开始日期 结束日期 学期名 学期名形如 2007 2008 第 一学期 课程项目管理 ExpManage 按学期 课程管理课程项目 一个课程对应不同的课程项目 课程项目批次管理 ExpBatch 按学期 课程 课程项目管理批次 一个老师在一段时间只能参与一个课 程项目 一个课程项目 有几个不同的批次 批次包括是否已确认属性 学生任务管理情况管理 ExpBooking 在这个模块可以针对某个批次 进行任务管理学生的添加和删除 老师管理 TeacherManage 老师管理包括姓名 性别 系别 科目 密码 学生管理 StudentManage 按班级管理学生 管理员密码设置 PasswordSet 管理员登入密码 使用说明 学期管理 管理员可以添加 修改 删除学期 特别注意 只能有一个学期为活动学期 学生只能任务管理这个学期的实验项 10 目 老师只能查看 编辑这个学期的实验批次 实验项目管理 一个学期可以有不同的实验科目 一个实验科目又有不同的实验项目 管理 员可以添加 修改 删除实验项目 特别注意 在输入实验项目时 遇到没有在实验科目列表中出现的实验科目 直 接手动输入 保存后就自动添加到列表中 实验项目批次 一个实验项目可以分为不同的实验批次进行 管理员可以针对某个实验项 目进行实验批次的添加 修改 删除 一个实验批次 可以有多个学生参与 但不 能超过实验批次的容量 管理员可以对某个实验批次里的学生进行添加 评分 删除操作 特别注意 一个老师同一个时间点 同一日期 同一节次 只能进行一个实验项 目 老师管理 管理员可以添加 修改 删除老师信息 特别注意 老师的平台账号不能为空而且不能重复 因为老师登入系统就是用 这个账号 学生管理 管理员可以添加 修改 删除学生信息 特别注意 学号不能为空而且不能重复 学生登入时候使用学号登入 3 1 2 学生模块 浏览 任务管理课程项目模块 一个学生在一段时间只能参与一个课程项 目 一个学生只能对某个课程项目任务管理一次 1 使用说明 学生可以浏览 任务管理当前活动学期的实验科目的实验批次 可以浏览 取消已经任务管理的实验批次 可以查看以往实验成绩 可以查看 打印即将进行的实验课程表 打印时候 自动生成 Exel 文件 2 特别注意 一个实验科目的一个实验项目 一个学生只能任务管理一次 11 一个学生同一时间 同一日期 同一个节次 只能任务管理一个实验项目 3 1 3 老师模块 1 设计说明 老师可以进行实验批次任务管理情况浏览 批次确认等操作 课表 2 使用说明 老师可以针对某个实验批次 根据学生任务管理数量 进行实验批次的确认 取消确认操作 已经确认的实验批次 老师可以查看 打印任务管理学生列表 打印时候 自动生成 Exel 文件 3 2数据库设计 3 2 1 管理员表 admin 序号字 段 名标 识 符类型及长度有无空值主键索引序号 1 主键IdVarchar 20 无 2 用户名UsernameVarchar 20 3 密码PasswordVarchar 20 权限quanxianVarchar 20 3 2 2 实验项目表 shiyan 序号字 段 名标 识 符类型及长度有无空值主键索引序号 1 自增 IDIDBIGINT无 Y 2 实验项目名CourseDetail Name Varchar 50 无 3 实验内容ContentVarchar 50 无 4 提交人StunameVarchar 20 无 5 未完成原因ReasonVarchar 20 6 7 12 3 2 3 学生表 student 序号字 段 名标 识 符类型及长度有无空值主键索引序号 1 自增 IDIDBIGINT无 Y 2 学号UsernameVarchar 20 无 3 老师 IDTeacherIDBIGINT无 4 真实NameVarchar 50 无 5 性别SexString无 6 登录时间爱你DateDatetime无 7Ip IpVarchar 10 无 8 权限qanxianVarchar 5 无 3 2 4 老师表 Teachers 序号字 段 名标 识 符类型及长度有无空值主键索引序号 1 自增 IDIDBIGINT无 Y 2 姓名NameVarchar 10 无 3 性别SexVarchar 2 4 所在系DepartmentVarchar 20 5 帐号AccountVarchar 10 无 6 密码PasswordVarchar 10 3 3 开发架构 3 3 1 软件开发架构的意义 对于已经习惯了使用传统的 JSP 设计方式实现动态网站的程序员 在刚开始 接触 JSf 时经常会出现一种困惑 专业书籍和文章中总是使用 JSf Framework 这 种说法 JSf 通常也被称为是一种 Web 应用开发的架构 Framework 那么到底什 么是架构 软件开发架构的意义又是什么呢 如果将早期的软件开发方式比喻为传统手工业生产方式的话 那么基于软件 开发架构的开发方式则是大型现代化工厂生产方式的体现 虽然二者都能够制作 出产品 但是在生产效率及产品质量的保证上显然会有巨大的差异 汽车生产厂家在制造一辆汽车时 总是先在各条生产线上制作出不同类型的 13 零件 最终再由专业的技师在专业的组装生产线上将成百上千的零件组装成一台 完整的汽车 显然 设计者的主要精力并不是用于重复地制造相同的车轮 相同的 方向盘 而是利用现成的车轮组装出一辆辆不同的汽车 同样 开发人员也可以利 用软件架构中提供的组建库 如同已经生产好的规范化的汽车核心零部件库 按 照既定的组装方式将不同的组建应用在软件产品的各个环节 最终开发出一个完 整的 高质量的软件产品 实际上 如果需要 汽车设计者也可以将原有的车轮进行改造 例如涂上不同 的颜色 贴上不同的装饰物等 同理 软件开发人员可以在现有组件的基础上进行 扩展和改进 这实际上充分地实现了软件开发的可扩展性 组件复用是面向对象编程思想的结晶 而在软件架构的基础上进行开发可以 最大限度地实现组件的复用 在大型 多层结构的软件开发项目中 开发和使用具 有可重用性 可扩展性 经过良好测试的软件组织 可以使开发者从大量繁琐的代 码工作中解脱出来 专注于软件设计和业务逻辑的实现 通常将被验证为有效的 相同类型问题的解决方案进行抽象 即可提取形成一个应用程序框架 即 Framework 每一种 Framework 都有自己的一套明确的实现机制 通常在 Framework 结构中都会包含一个 命令和控制 组件 command and control component 类似于工业生产中的 控制中心 开发人员通过它可以很容易地控制 扩充和实现该 Framework 上的开发结构 3 3 2 JSf 架构简介 随着 Web 开发技术的日益成熟 在 Web 开发开发领域中出现了许多设计好的 软件开发框架 JSf 就是一种基于 MVC 经典设计模式的框架 也是当前 Web 开发 中比较成熟的一种框架 3 3 2 1 经典的 MVC 模式 MVC Model View Controller 模式 即模型 视图 控制器模式 其核心思想 是将整个程序代码分成相对独立而又能协同工作的 3 个组成部分 模型 Model 业务逻辑层 实现具体的业务逻辑 状态管理的功能 视图 View 表示层 即与用户实现交互的界面 通常实现数据输入和输出功能 控制器 Controller 控制层 起到控制整个业务流程 Flow Control 的作用 实现 View 和 Model 部分的协同工作 14 MVC 设计模式可以针对需要为同样的数据提供多个不同视图的应用程序 例 如 公司产品数据库中同样的产品信息数据 但需要根据用户的不同需求在页面 中显示其所需的不同产品信息 MVC 设计模式中 事件一般是指客户端 Web 浏览器提交的各种不同请求 这 些请求由控制器进行处理 控制器根据事件的类型来改变模型或各个视图 视图 也可以接受模型发出的数据更新的通知 依据数据更新的结果调整视图效果 呈 现在用户面前 而模型也可以通过视图所获得的用户提交的数据进行具体业务逻 辑的处理 显然这样的运行机制可以起到分工明确 指责清晰 各尽所长的效果 而在软 件开发的过程中 这样的开发方式无疑可以有效地区分不同的开发者 尽可能减 少彼此之间的互相影响 充分发挥每个开发者的特长 这在开发大型复杂的 Web 项目时体现得尤为突出 图 3 1 MVC 设计模式的结构 3 3 2 2 JSf 1 2 开发框架 作为基于 MVC 设计模式的 Web 应用的一种典型体现 JSF 架构实际上是建立 在 Model2 基础上的 对 Model View 和 Controller 都提供了现成的实现组建 3 3 2 2 1 Controller 控制器部分 JSF 中的 Controller 控制器部分是通过专门的 Servlet 来实现的 该 Servlet 是一个 Struts API 中提供的 ActionServlet 类型的实例 模 型 视图 1视图 2 控制器 事 件 改变改变 改变 更新更新 获得数据获得数据 15 ActionServlet 类继承了 javax servlet http HttpServlet 类 因此该类的实 例可以和普通的 Servlet 一样工作 其作用是接收客户端浏览器的请求 然后选 择执行相应的业务逻辑 再把响应结果送回到客户端 3 4 2 2 2 Model 模型部分 MVC 系统中的 Model 模型部分从概念上可以分为两类 系统的内部状态和改 变系统状态的动作 JSF 中的 Model 部分一般由 JavaBean 以及 EJB 组成 在 JSF 架构中使用 JavaBean 来提供具体的业务逻辑 即 怎么做 对于复杂的系统也 可以使用 EJB 等组件来实现系统状态维护 这种业务逻辑的细分可以增强 可以代码的可重用性 3 4 2 2 3 View 视图部分 JSF 中的 View 视图部分依然可以采用 JSP 来实现 此外 JSF 还提供了丰富 的自定义标记库 View 部分使用这些自定义标签同样可以实现与 Model 部分的 有效交互并能够增强显示功能 3 3 2 3 JSF 开发环境安装 在 Tomcat 安装完成后 即可将 JSF 框架工具安装到对应的 WEB Container 中 可以通过 JSF 的二进制发布包安装 JSF 框架 具体操作步骤 下载二进制发布版 将下载的 JSF 二进制发布包进行解包 将解包目录下的 lib 目录下的所有 jar 文件全部复制到项目目录的 WEB INF lib 下 如果在多个项目中都用到 了 JSF 则将上述文件直接复制到 Tomcat 目录下的 common lib 下 将对应的 lib 目录下的 JSF jar 文件添加到环境变量 CLASSPATH 中即可 以上资源可以从 http jakarta apache org struts userGuide index html 获得更多关于 JSF 安装和相关配置的说明信息 3 4 数据持久层 数据是软件系统中不可缺少的环节 数据持久化的解决之道也一直是企业计 算标准中最有影响力的部分 如今关系型数据库已经稳定地占据着主要的数据库 市场 XML 技术和 XML 数据库技术也日渐成熟 16 3 5 1 持久化数据 数据是我们软件开发人员必须考虑的对象 无论你使用哪种技术 借助哪种 工具 以及购买哪种软件平台产品 当接受一个实际的问题时 你都需要面对实际 的数据 考虑实际数据的各种问题 在这些问题中往往都包含数据持久化的问题 这不仅是因为我们的计算机内存有限 更主要的原是业务逻辑的需要 作为一个 接触软件技术 尝试写程序的人 我们要接触各种类型的数据 下面列举了三种常 见的数据类型 3 5 1 1 随机数据 这种数据指的是不确定结构 不了解数量 目前也搞不清关系的数据 它听起 来很奇怪 但在实际的程序设计中十分常见 例如 从一个震动源传递到计算机采 集卡的数据 再比如一个自然物生长过程中的数据 可能有些数据实际上是很有 规律的 但是在设计程序时由于对它的了解很少 使它对于我们来说也成了随即 的数据了 我没曾经在遇到这种搞不大清楚的数据时 使用很大的数组或者多个 链表来表述 不管下一个数据的值是什么 先存储起来再说 有时候当遇到的数据 总也摸不到规律 或者越来越多 内存也容纳不下时 就找个文件存放起来 后来 发现其实存入文件的方式很不错 起码可以一直继续下去 也许这就是最佳的持 久化策略了 3 5 1 2 属性数据 在接触具体的项目开发任务时 更多的时候要接触到属性类型的数据 这些 数据来源于对象的属性 当然这些属性之间还存在关系 对于此类数据 似乎最好 的持久化方法就是利用关系型数据库表了 在存入数据表的过程中还可以借助 Hibernate 来提高开发的效率 或者直接使用 JDBC 来传递 SQL 语句 这两种方法 有些相似但还有细微的差别 3 5 1 3 XML 数据 现在很多网络上的应用程序都使用 XML 类型的数据 或者说是一种树状的 数据 如何将这两种数据持久化保存下来呢 一种方法是将 XML 数据拆分为属性 数据 然后存储到关系型数据库中 另一种方式比较新 是将 XML 数据存储到 XML 数据库中 在 XML 数据库中存储这种数据时 数据的结构不变 XML 数据在 17 XML 数据库中 在 XML 数据库中以文档对象形式保存 使用 XPaht 和 XQuery 查 询语言来查询 XML 数据中的节点数据 或者多个 XML 文档中的多个节点数据 相对于属性数据而言 XML 数据是很宽松的 首先 XML 数据的结构没有被 确定下来 起码没有被定死为某种僵化的结构 其次 对于 XML 数据的各个节点来 说 数据的类型并没有被确定下来 在 XML 中如果不加特殊的约束 例如 DTD 或 者 Schema XML 文档中的数据和结构可以有十分大的变化空间 在 XML 中以字 符串形式存在的数据 很难确定它的类型是 int 或是 String 最后 XML 是可以被转 换处理的 利用 XSLT 可以将 XML 转换成希望的结果 因此可以说对 XML 数据 的约束是比较宽松的 XML 数据类型甚至可以用来模拟实现一些随即性质的数 据 3 5 2 持久化技术 一直以来 在 Java 开发领域中基于数据库应用的设计实现一直是面向关系的 也 就是说与数据库相关的处理过程并没有实现真正的面向对象 如何在数据存取的 操作中实现真正的面向对象 一直是开发人员探索的问题 正在使用中的对象序列 化技术 EJB 中 Entity Bean 技术等 都是在这方面很好的探索 但是实体 Bean 设计 实现过程中的繁琐和复杂 使得许多开发人员望而却步 而 Hibernate 的出现 提供了一个符合 Java 面向对象编程思想 易于使用的数 据库持久化解决方案 因此 在目前行业的 Java 数据库应用项目中 有越来越多的 开发人员开始尝试使用 Hibernate 在数据库外面包裹上一层面向对象的外衣 从 而将开发人员从繁琐 重复 技术含量不高的数据库编程中结果出来 3 5 2 1 Hibernate 概述 Hibernate 在英文中的意思是 冬眠 从这个角度也可以体会到 Hibernate 架 构下提供的相关技术可以实现度十角状态的持久性保存 在传统的数据库编程中 开发人员要面对大量重复行代码的编写 以实现对不同数据表中的数据的获取 并 将获取到的记录数据封装成对象 在处理完成之后 如果需要进行对象状态的存取 需 要将对象中的数据拆卸成数据库记录中的对应字段的值 然后向数据库中进行存 取 这种工作方式显然没有实现真正意义上的数据存取阶段的面向对象 虽然数 18 据存取过程中的工作步骤是基本固定的 但是由于操作的数据表中字段列表数据 的不同 使得开发人员必须要不厌其烦地书写与相应的实体类对应的封装处理过 程 而在 Hibernate 中 类似这种重复性高 工作量大 但是又必须保证高质量完成 的体力活 全部由 Hibernate 接管过去 这对广大的 Java 开发人员无疑是个非常好 的消息 Hibernate 本质上是一个面向 Java 开发环境的对象 关系数据库映射工具 在 Hibernate 之前 开发人员要将面向对象的软件和关系数据库结合在一起 往往会 费长麻烦 而借助 Hibernate 对象 关系数据库映射技术 可以非常轻松地将以面向 对象思想封装的对像的各个状态数据映射到基于 SQL 的关系模型数据结构中去 图 3 2 Hibernate 工作示意图 Java 应用 Hibernate HQL 语句 数据库 SQL 语句 XML 映射 文件 19 4 系统实现 4 1 实现效果 4 1 1 管理员主页面 4 1 2 实验管理 4 1 3 学生管理 4 6 技术难点 4 6 1 中文乱码 由于浏览器中的参数传递是按字节传送 因此英文和数字不会有任何的问 题 而中文汉字则由两个字节组成 为了解决这个问题 使用了下面的两种方法 request getParameter Password getBytes ISO 8849 1 GB2312 4 6 2 安全性 将项目发布到互联网上后 有些用户不是点击超链接打开网站的某个页面 而 是在地址栏中直接写 而后进入 试图避开身份验证 处于对安全性的考虑 本项目 在用户登陆后才能进入的页面中 加入了如下的一行判断 如果用户非法进入 则 看到的将是一片空白页 String name String session getAttribute name If name null 20 5 系统测试 在完成了程序的编写工作后 接下来将进行软件的测试 这里说的软件 并 不单单是指程序本身 还包括其他方面 测试和开发一样 也是一项技术性很强的 工作 有着很多的技巧 软件测试是软件质量保证的主要活动之一 因此 测试的 质量直接影响软件的质量 5 1 测试的定义及目的 软件测试就是在软件投入运行前 对软件的需求分析 设计规格说明和编码的 最终复审 是保证软件质量的关键步骤 如果要给软件测试下定义 可以这样将 软 件测试是为了发现错误而执行程序的过程 测试的目的在于将软件设计时设计者与程序开发者之间理解不一致的地方 功能与需求不一致的地方 不符合逻辑思维的情况都反映给质量控制部门 由质量 控制部门调配需求部门统一作出一个明确解答 再由开发人员进行修改和补充 测试的目标是以最少的时间和人力找出软件中潜在的各种错误和缺陷 5 2 测试的原则 对于相对复杂的产品或系统来说 Zero Bug 是一种理想 Good Enough 是我们 的原则 Good Enough 原则就是一种权衡投入 产出比的原则 不充分的测试是不 负责任的 过分的测试是一种资源的浪费 同样也是一种不负责任的表现 我们操 作的困难在于 如何界定什么样的测试是不充分的 什么样的测试是过分的 目前 状况唯一可用的答案是 制定最低通过标准和测试内容 然后具体问题具体分析 21 5 3 测试的方法 依据前面所说的测试对象 我们把测试划分为几个方面来进行测试 5 3 1 界面测试 界面测试是测试过程中比较简单直观的一种测试方法 只要细心地按界面要 求核对就行了 可这快往往是程序开发人员容易忽视和遗漏的地方 也是常常出 Bug 的地方 下面是界面测试中经常出现的几种 Bug 错别字 即界面中的标题或者文本内容中出现了错别字 这种 Bug 如果测试人 员不细心 和难找出来 可能会出现在提示信息或界面中 出现了一些根本读不懂的内容 一般多出现在程序的提示信息和一些较长的 文本中 这种情况基本上出现在拼起来显示的提示中 页面的简单陈述是通过 变量拼组起来的 通过程序将字一个一个地输出出来 通常是因为程序中的控 制错误或是程序开发人员对程序没有进行认真的自测 导致出现这种 Bug 程序员自创的词语 虽然意思对 但不符合界面的标准及需求 这种情况基本上 是由于开发人员使用一些专业术语 并且混杂着自己的理解出现 Bug 主要是 由于开发过程中团队合作没又明确的分工 没有统一的规范用语 页面类似的内容中 明显有字体 字号不同的情况 使界面整体风格看上去不一 致 这种情况只出现在没有 CSS 定义的情况下 或是已经定义的 CSS 开发人员 在开发过程中没有调用 标题相近的程序及模块 把标题弄混 这种情况多是因为业务方面的定义名称 很相似或很类似 并且业务实体方面也很类似 开发人员在开发过程中忽略了 开发名称和模块 只单独地实现其功能 5 3 2 功能测试 顾名思义 功能测试主要是测试程序模块是否实现了设计中所有要求的功能 功能测试中需要注意的有 查询功能中 有按单一查询条件进行查询的 也有按多个查询条件组合查询的 这里要注意多个查询条件之间的关系 还有一些常识性的问题 比如按月查询 闰年中二月的天数 22 录入功能中 需要注意的是前台设置的数值长度是否大于后台数值长
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025关于制定房屋租赁合同范本
- 2025劳动合同模板及指南
- 2025年上半年江苏徐州市九州职业技术学院招聘模拟试卷及答案详解一套
- 2025内蒙古工业大学事业编制工作人员招聘10人模拟试卷及一套参考答案详解
- 宁夏社工考试题库及答案
- 建筑考试题库及答案
- 2025年新疆籽棉种植基地税收筹划合同
- 2025年贵州公务员考试行测试题及答案
- 社区林业资源整合与利用合同
- 教育管理理论考试试题及答案
- 2025-2026学年北师大版(2024)初中生物七年级上册教学计划及进度表
- 产科危急重症早期识别中国专家共识解读 3
- 医疗器械配送应急预案模板(3篇)
- DB65-T 4803-2024 冰川厚度测量技术规范
- 护理专业新进展介绍
- 大疆无人机培训课件
- 中级消防员维保培训课件
- 小儿推拿进修总结汇报
- 2025公司应急预案演练计划(5篇)
- 医疗机构医院全员培训制度
- 2025仓库保管员试题及答案
评论
0/150
提交评论