威海职业学院毕业设计任务书包括示例.doc_第1页
威海职业学院毕业设计任务书包括示例.doc_第2页
威海职业学院毕业设计任务书包括示例.doc_第3页
威海职业学院毕业设计任务书包括示例.doc_第4页
威海职业学院毕业设计任务书包括示例.doc_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

威威 海海 职职 业业 学学 院院 毕毕 业业 设设 计计 任任 务务 书书 专业专业 年级年级 班级班级 姓名姓名 学号学号 威威 海海 职职 业业 学学 院院 应应 用用 外外 语语 系系 毕业设计指导须知毕业设计指导须知 一、毕业设计是高职教学过程中一个十分重要的环节。是 锻炼学生运用所学知识正确分析和解决实际问题的一个重要方 面,也是高职培养应用型专门人才的要求。 二、指导教师应为具有讲师以上或相应职称的有关专业人 员,经系审查同意后,才能指导学生的毕业设计。 三、学生应以严肃认真,实事求是的态度完成设计。要独 立思考,自己动手,不得抄袭或找人代笔。 四、毕业设计选题要符合专业培养目标的要求。论文(任 务书)写作要做到论点明确、论据充分,论理透彻,语言准确 恰当,书面整洁、字迹工整,图纸应清晰、工整,符合设计要 求,符合国家有关标准和部颁标准。字数、图纸数量符合有关 要求。并在规定的时间内完成。 五、答辩过程中学生要严认真,文明礼貌,谦虚谨慎,认 真回答答辩主持人,委员等提出的问题。 六、填报有关表格时,应按项目要求逐项填实、填全、填 清。 学号姓名学 制 专业年级教学班负责人 班级指导教师姓名职务或职称 设 计 题 目 指导教师评语: 成绩: 指导教师签名: 年 月 日 系复审意见: 成绩: 复审人签名: 职称: 公章 年 月 日 答答 辩辩 情情 况况 记记 录录 答 辩 情 况 答 辩 题 目 正确基本正确 经提示 回 答 不正确未回答 答辩委员会(或小组)评语: 成绩: 主持答辩人签名: 职称: 月 日 一、毕业设计的任务和具体要求: 二、毕业设计应完成的图纸: 例: 图 3.1 畅想软件社团管理员用例图,见第 10 页 三、毕业设计(论文)进度计划: 起 止 日 期工 作 内 容备 注 摘要1 1 绪论.2 1.1 项目来源.2 1.2 项目目标与期望.2 1.2.1 树立全新社团形象.2 1.2.2 激发进取的动力.2 1.2.3 节约时间.2 1.3 项目设计原则.3 1.3.1 实用性原则.3 1.3.2 经济性原则.3 1.3.3 扩充性原则.3 2 可行性分析4 2.1 技术可行性.4 2.1.1 动态网站技术介绍.4 2.1.2 JSP 语言的选择 .5 2.2 系统结构可行性分析.6 2.2.1 B/S 与 C/S 模式简介 .6 2.2.2 B/S 与 C/S 模式的优缺点 .6 2.2.3 B/S 模式的选择 .7 2.3 开发环境介绍.7 2.3.1 软件环境.7 2.3.2 硬件环境.7 3 需求分析.8 3.1 系统功能需求.8 3.2 系统的运行需求.9 3.3 畅想软件社团系统用例图10 3.4 系统数据流程图11 4 概要设计14 4.1 畅想软件社团系统功能模块设计14 4.1.1 社团前台功能模块图14 4.1.2 社团后台功能模块图14 4.2 数据库的设计15 5 详细设计及实现.17 5.1 数据库的访问设计17 5.2 MVC 的设计模式 19 5.2.1 MVC 模式简介 19 5.2.2 JSP 中 MVC 模式的体现 19 5.3 社团活动模块功能设计20 5.3.1 社团活动模块功能介绍20 5.3.2 社团活动模块功能详细介绍20 5.3 最新技术模块功能设计30 5.3.1 最新技术模块功能介绍30 5.3.2 最新技术模块功能简介30 6 技术难点31 6.1 DAO 模式和简单工厂模式 31 6.1.1 DAO 模式简介 31 6.1.2 简单工厂模式简介 32 6.2 图片处理问题33 6.3 中文乱码处理问题34 7 总结37 参考文献、资料索引38 致 谢39 畅想软件社团网站 1 0 前言 全球范围内的信息化正在逐步标准化,统一化,规范化。互联网的高速发展正改变 着人类的生活,它的多姿多彩正一点一滴的渗透到人们生活的每个方面,Internet 覆盖 的广阔性是世界各地人们利用互联网进行互通信息的重要手段。 在信息化时代的今天,网络将世界逐渐缩小,信息技术更是日新月异,而目前课堂 以外尚未有优秀教师对高素质学生进行提高辅导的有效机制。并且通过对我系软件技术 专业同学的调查发现,大部分同学缺少真实项目开发的经历。为了更好地适应计算机软 件行业发展的需求,全面提高软件技术专业学生的专业知识水平,并为其提供前沿的实 践机遇,加强校企联合,搭建学生、老师、企业三方交流的平台,为此成立威海职业学 院畅想软件社团,为全院同学提供更优异的学习方法,精炼实用的学习资源,与时具进 的最新技术。威海职业学院软件社团的成立便可起到沟通师生的纽带作用。 如今校园生活丰富多彩,在学校中各种社团更是百家争鸣,一个社团如何吸引同学 们的关注,如何吸纳新成员,如何更好的起到纽带作用已经成为社团领导人员必须关注 的首要问题。建设一个有自己特色的网站,成为社团的当务之急。 畅想软件社团网站 2 1 绪论 1.1 项目来源 如今校园生活丰富多彩,在学校中各种社团更是百家争鸣,一个社团如何吸引同学们 的关注,如何吸纳新成员,如何更好的起到纽带作用已经成为社团领导人员必须关注的 首要问题。建设一个有自己特色的网站,努力提高本社团在学校各个社团中的竞争力, 成为社团的当务之急。 1.2 项目目标与期望 1.2.1 树立全新社团形象 对于任何一个社团而言,社团形象至关重要。 特别是对于校园社团竞争激烈的今天, 通过畅想软件社团的网站,全校师生可通过畅想软件社团网站侧面的了解该社团的形象 及该社团的实力,因此,建立具有本专业特色的网站能够极大的提升畅想软件社团在全 校师生心中的整体形象。 1.2.2 激发进取的动力 用户在浏览畅想软件社团时,通过查看本专业的最新技术和本专业或者是其他专业 同学所做的作品,从中可以了解自己的不足和差距,能够给自己一个更好更合理的定位, 激励自己努力学习,激发进取的动力。 1.2.3 节约时间 许多同学会花费很长时间在查找自己所需要的资料上,而且有时下载的资料不符合 自己的需求。软件社团就帮助同学们解决了这个问题。在畅想软件社团网站上,同学们 可以在下载中找到自己想要的工具和资源。畅想软件社团网站建设目标可总结如下: 1、帮助社团树立有效的良好的社团形象宣传、展示社团的风采、打造社团的新形象。 2、增加同学们的竞争意识,鼓舞同学们的学习积极性。 3、采取合理管理资源的方法,为同学们节省时间。提高学习的效率。 畅想软件社团网站 3 1.3 项目设计原则 1.3.1 实用性原则 充分考虑到在畅想软件社团在管理过程中中可能遇到的种种问题,尽量全面的做好 需求分析,以减少日后更新软件的次数。 1.3.2 经济性原则 建立适合畅想软件社团自身需求的网络平台,提供广泛的涵盖师生们多种需求的功 能,数据处理方式灵活以满足需求,节省网站建设成本,并确保其较好的拓展性和开放 性;同时网站具有基于 WEB 界面的管理后台,能够自主的对网站中大部分内容作更新、 修改操作,节省了畅想软件社团网站的运营成本,提高了信息更新、传播效率。 1.3.3 扩充性原则 畅想软件社团网站的整体规划及框架设计是具可扩充性的,前台页面的设计能保证 网站在增加栏目后不会破坏网站的整体结构。后台数据库的设计具有高度的扩充性,能 够根据需要对栏目、类别的增、删、修改,查等操作。 畅想软件社团网站 4 2 可行性分析 2.1 技术可行性 2.1.1 动态网站技术介绍 随着网络技术的不断发展,单纯的静态页面已经不能满足发展的需要,因为静态页 面是用单纯的 HTML 语言组成的,它没有交互性。因此,为了满足实际的需要,许多网页 文件扩展名不再只是“htm”,“html” ,出现了以“php” , “asp” , “jsp” , “shtml”等为 后缀的网页文件,这些都是采用动态网页技术制作出来的。 主要的动态网页技术包括很多,以下主要介绍几种比较流行的动态网页技术。 1、ASP 是微软(Microsoft)所开发的一种后台脚本语言,它的语法和 Visual BASIC 类似,可以像 SSI(Server Side Include)那样把后台脚本代码内嵌到 HTML 页面 中。虽然 ASP 简单易用,但是它自身存在着许多缺陷,最重要的就是安全性问题。目前 在微软的 .net 战略中新推出的 ASP.net 借鉴了 Java 技术的优点,使用 C Sharp (C#) 语言作为 ASP.net 的推荐语言,同时改进了以前 ASP 的安全性差等缺点。但是,使用 ASP/ASP.net 仍有一定的局限性,因为从某种角度来说它们只能在微软的 Windows NT/2000/XP + IIS 的服务器平台上良好运行(虽然像 ChilliSoft 提供了在 UNIX/Linux 上运行 ASP 的解决方法。/Linux 上的应用可以说几乎为 0)。所以平台的局限性和 ASP 自身的安全性限制了 ASP 的广泛应用。 PHP 的全名非常有趣,它是一个巢状的缩写名称“PHP: Hypertext Preprocessor”,打开缩写还是缩写。PHP 是一种 HTML 内嵌式的语言 (就像上面讲的 ASP 那样)。而 PHP 独特的语法混合了 C,Java,Perl 以及 PHP 式的新语法。它可以比 CGI 或者 Perl 更快速地执行动态网页。 PHP 的源代码完全公开,在 Open Source 意识抬头的今天,它更是这方面的中流砥 柱。不断地有新的函数库加入,以及不停地更新,使得 PHP 无论在 UNIX 或是 Win32 的平台上都可以有更多新的功能。它提供丰富的函数,使得在程式设计方面有着更好的 资源。目前 PHP 的最新版本为 4.1.1 ,它可以在 Win32 以及 UNIX/Linux 等几乎所有的平 台上良好工作。PHP 在 4.0 版后使用了全新的 Zend 引擎,其在最佳化之后的效率,比较 传统 CGI 或者 ASP 等技术有了更好的表现。 平台无关性是 PHP 的最大优点,但是在优点的背后,还是有一些小小的缺点的。如 果在 PHP 中不使用 ODBC,而用其自带的数据库函数(这样的效率要比使用 ODBC 高)来连 畅想软件社团网站 5 接数据库的话, 使用不同的数据库,PHP 的函数名不能统一。这样,使得程序的移植变 得有些麻烦。不过,作为目前应用最为广泛的一种后台语言,PHP 的优点还是异常明显的。 JSP(JavaServer Pages)是由 Sun 公司倡导,许多别的公司参与一起创建的一种新 动态网页技术标准,类似其他技术标准。在传统的网页 HTML 文件(*.htm,*.html)中加 入 Java 程序片断(Scriptlet)和 JSP 标签,构成了 JSP 网页(*.jsp)Servlet/JSP Container 收到客户端发出的请求时,首先执行其中的程序片断,软后将执行结果以 HTML 格式响应给客户端。所有程序操作都在服务器端运行,网络上传送给客户端的仅是 得到的结果,与客户端的浏览器无关,因此,JSP 称为 Server-side Language。所以被 许多人认为是未来最有发展前途的动态网站技术之一。 2.1.2 JSP 语言的选择 畅想软件社团的开发主要采用 JSP 语言。 JSP 语言优势如下: 1、将内容的生成和显示进行分离 使用 JSP 技术,Web 页面开发人员可以使用 HTML 或者 XML 标识来设计和格式化最终 页面。使用 JSP 标识或者小脚本来生成页面上的动态内容。生成的内容的逻辑被封装在 标识和 JavaBeans 组件中,那么其他人,如 Web 管理人员和页面设计者,能够编辑和使 用 JSP 页面而不影响内容的生成。 2、一次编写,到处运行 3、JSP 的平台适应性更广 4、健壮的存储管理和安全性 5、数据库连接技术 很多的 OS 中都带有 JDBC 驱动程序,Java 就通过 JDBC 与数据库连接,执行查询,提 取数据等操作。Sun 公司还提供了 JDBC-ODBC 的桥连方式,因此 Java 也可以访问带有 ODBC 驱动的数据库,目前大多数数据库系统都带有 ODBC 驱动,所以 Java 能访问诸如 Oracle、Sybase、MS SQL Server 和 Access 等类型的数据库。 畅想软件社团网站 6 2.2 系统结构可行性分析 2.2.1 B/S 与 C/S 模式简介 1、B/S 是 Brower/Server 的缩写,客户机上只要安装一个浏览器(Browser) ,如 Netscape Navigator 或 Internet Explorer,服务器安装 Oracle、Sybase、Informix 或 SQL Server 等数据库。浏览器通过 Web Server 同数据库进行数据交互。在这种结构下,用户 工作界面是通过 WWW 浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是 主要事务逻辑在服务器端(Server)实现,形成所谓三层 3-tier 结构。 2、C/S 又称 Client/Server 或客户/服务器模式。服务器通常采用高性能的 PC、工作站 或小型机,并采用大型数据库系统,如 Oracle、Sybase、Informix 或 SQL Server。客户端 需要安装专用的客户端软件。 2.2.2 B/S 与 C/S 模式的优缺点 1、B/S 最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件。只要 有一台能上网的电脑就能使用,客户端零维护。系统的扩展非常容易,只要能上网,再 由系统管理员分配一个用户名和密码,就可以使用了。甚至可以在线申请,通过公司内 部的安全认证(如 CA 证书)后,不需要人的参与,系统可以自动分配给用户一个账号进 入系统。 2、C/S 的优点是能充分发挥客户端 PC 的处理能力,很多工作可以在客户端处理后再 提交给服务器。对应的优点就是客户端响应速度快。缺点主要有以下几个: 只适用于局域网。而随着互联网的飞速发展,移动办公和分布式办公越来越普及, 这需要我们的系统具有扩展性。这种方式远程访问需要专门的技术,同时要对系统进行 专门的设计来处理分布式的数据。 客户端需要安装专用的客户端软件。首先涉及到安装的工作量,其次任何一台电脑 出问题,如病毒、硬件损坏,都需要进行安装或维护。特别是有很多分部或专卖店的情 况,不是工作量的问题,而是路程的问题。还有,系统软件升级时,每一台客户机需要 重新安装,其维护和升级成本非常高。 对客户端的操作系统一般也会有限制。可能适应于 Win98, 但不能用于 Win2000 或 Windows XP。或者不适用于微软新的操作系统等等,更不用说 Linux、Unix 等。 畅想软件社团网站 7 2.2.3 B/S 模式的选择 由于 Client/Server 是建立在局域网的基础上的.Browser/Server 是建立在广域网的基础 上的.畅想软件社团是一个面向所有人的门户网站,总与上述原因,社团网站的建设采用 B/S 模式。 2.3 开发环境介绍 2.3.1 软件环境 操作系统:Window 2000 数据库:MySQL Web 服务器:TOMCAT 开发环境:Eclipse3.2+Myeclipse5.0+Photoshop 9.0 + Dreamweaver8 2.3.2 硬件环境 AMD Athlon 64 3000+,KingMax PC3200 512MB 2,Gainward NV35XT Seagate SATA 8M 120GB 2 畅想软件社团网站 8 3 需求分析 3.1 系统功能需求 畅想软件社团对师生们的及时沟通有着极其重要的作用,就浏览者来说,它的设计 内容非常明朗而且易懂,比如拥有下载学习资源的功能,浏览并下载作品的功能,了解 最新技术动态等工作,因此,经过反复的论证,设计的这套畅想软件社团网站系统主要 分成前台管理和后台管理。 前台主要功能有: 查看社团活动、最新技术、社团联系人、最新公告、社团简介、对外服务等信息。 查看、下载学习资源和作品等操作。 后台主要有: 1、社团信息管理模块。 2、社团活动信息管理模块。 3、最新技术信息管理模块。 4、就业信息管理模块。 5、社团联系人信息管理模块。 6、对外服务信息管理模块。 7、学习资源信息管理模块。 8、学生作品信息管理模块。 9、最新公告信息管理模块。 10、社团数据库维护模块。 畅想软件社团网站系统是针对威海职业学院软件社团的一个 WEB 交流平台。各个模 块功能的详细介绍如下: 社团活动管理:包括浏览活动信息、添加活动信息、修改活动信息、删除活动信息。 最新技术管理:包括浏览最新技术信息、添加最新技术信息、修改最新技术信息、 删除最新技术信息。 社团联系人管理:包括查看联系人详细信息、删除联系人信息、添加联系人信息。 学习资源管理:包括查看资源信息,上传资源、修改资源、删除资源。 畅想软件社团网站 9 学生作品管理:包括查看作品信息,上传作品、修改作品信息、删除作品。 最新公告管理:包括查看最新公告信息,添加最新公告信息,删除公告信息。 目标系统应该达到以下要求: 1、时间经济性。优化逻辑设计与物理设计,使系统运行效率高,反映速度快。 2、可靠性。能连续准确的处理业务,有较强的容错能力。 3、可理解性。用户容易理解和使用该系统。 4、可维护性和适应性。系统应易于修改、易于扩充、易于维护,能够适应业务不断 发展变化的需要。 5、可用性。目标系统功能齐全,能够完全满足业务需求。 6、安全保密性。保证系统的物理安全、数据存储和存取的安全与保密、数据传输的 安全与保密,做好使用人员的授权管理。 3.2 系统的运行需求 1、数据库 MySQL 是适合于大型站点的最容易建立和维护的数据库引擎之一。其功能很强大, 可以处理几乎所有服务。所以我们选用了 MySQL。 2、数据库通信接口 数据库通信接口采用 JDBC 全称为 JavaDataBaseConnectivityStandars。是一个面向对 象的应用程序接口。通过它可以访问各种关系数据库。JDBC 也是 Java 核心库类的一部分。 JDBC 的最大优点是它独立于具体的关系数据库。与 ODBC(Open Database Connectivity)类似,JDBC API 中定义了一些 Java 类分别用来表示与数据库的连接、SQL 语句、结果集以及其他的数据库对象,使得 Java 应用程序方便的与数据库交互并处理所 得结果。 3、安全机制问题的解决 在进入后台管理系统之前,要进行身份确认,只有用户名和用户密码都相符的用户 方可进入后台管理系统。为了防止不合法用户对数据的察看和修改,网站把用户分为二 个级别:软件社团管理员和普通网站浏览者。社团管理员不仅拥有对数据的查询、修改、 可以对纪录进行增加、删除、等操作。普通网站浏览者对数据可以查询、还可以对学习 资源、作品进行下载等操作。 畅想软件社团网站 10 3.3 畅想软件社团系统用例图 1、管理员用例图 畅想软件社团网站 11 图 3.1 畅想软件社团管理员用例图 2、浏览者用例图 畅想软件社团网站 12 图 3.2 畅想软件社团浏览者用例图 3.4 系统数据流程图 1、畅想软件社团网站系统 0 层图 图 3.3 畅想软件社团网站系统数据流程图 0 层图 2、畅想软件社团网站系统 1 层图 畅想软件社团网站 13 图 3.4 畅想软件社团网站系统数据流程图 1 层图 2、畅想软件社团网站系统 2 层图(社团活动 2 层图和学习资源 2 层图) 图 3.5 社团活动数据流程图 2 层图 畅想软件社团网站 14 图 3.6 学习资源数据流程图 2 层图 说明:(1)由于最新技术模块、就业信息模块、公告信息模块和社团联系人模块的功能实 现与社团活动相似,所以它们的数据流程图也相似,仅在此给出社团活动的数据 流程图,其他模块的流程图省略。 (2)由于作品管理模块的功能实现与学习资源管理模块相似,所以它们的数据流程 图也相似,仅在此给出学习资源的数据流程图,其他模块的流程图省略。 畅想软件社团网站 15 4 概要设计 4.1 畅想软件社团系统功能模块设计 4.1.1 社团前台功能模块图 图 4.1 畅想软件社团前台功能模块图 4.1.2 社团后台功能模块图 图 4.2 畅想软件社团后台功能模块图 畅想软件社团网站 16 4.2 数据库的设计 畅想软件社团网站后台数据库采用 MySQL 数据库。该社团网站的数据库名为 organ。在该数据库中一共建立了 7 个表,分别是社团活动表(active)、最新技术表 (techonlogy)、社团联系人表(contact)、就业信息表(job_info)、作品展示表(works)、学习资 源表(resourse)、公告信息表(bulletin)。 各个表的逻辑结构设计如下: 社团活动表(active) 字段名类型长度能否为空说明 idvarchar20否社团活动编号,主键 active_titlevarchar50否社团活动名 active_texttext500否社团活动内容 active_timedate8否社团活动信息时间 active_imgblob16是社团活动内容图片 表 4.1 社团活动表(active) 最新技术表(techonlogy) 字段名类型长度能否为空说明 idvarchar20否最新技术编号,主键 tec_titlevarchar50否最新技术标题 tec_texttext500否最新技术内容 tec_timedate8否最新技术上传时间 表 4.2 最新技术表(techonlogy) 社团联系人表(contact) 字段名类型长度能否为空说明 idvarchar20否社团联系人编号,主键 namevarchar50否联系人姓名 sexvarchar50是联系人性别 telvarchar50否联系人电话 positionvarchar50否联系人职务 qqvarchar50是联系人 qq 号码 emailvarchar50是联系人邮箱 表 4.3 社团联系人表(contact) 畅想软件社团网站 17 就业信息表(job_info) 字段名类型长度能否为空说明 idvarchar20否就业信息编号,主键 job_companyvarchar50否招聘公司名字 job_posvarchar50否 招聘岗位 concactvarchar50否联系人名字 telvarchar50否联系人电话 info_timedate8否信息发布时间 job_messtext500否就业信息内容 表 4.4 就业信息表(job_info) 作品展示表(works) 字段名类型长度能否为空说明 idint9否作品编号,主键 work_titlevarchar20否作品名称 work_texttext500否作品文本简介 work_timevarchar15否作品上传时间 work_convarchar50否作品链接 work_imgvarchar50否作品图片 表 4.5 作品展示表(works) 学习资源表(resourse) 字段名类型长度能否为空说明 idint9否学习资源编号,主键 res_titlevarchar20否学习资源名称 res_texttext500否学习资源简介 res_typevarchar20否学习资源类型 res_convarchar50否学习资源链接 表 4.6 学习资源表(resourse) 公告信息表(bulletin) 字段名类型长度能否为空说明 idint9否公告信息编号,主键 contextsvarchar20否公告信息内容 bull_timetext500否公告发布时间 表 4.7 公告信息表(bulletin) 畅想软件社团网站 18 5 详细设计及实现 5.1 数据库的访问设计 畅想软件社团采用 JDBC 数据库通信接口。要通过 JDBC 来存取某一特定的数据库, 必须有相应的 JDBC 驱动程序。驱动程序往往是连接 JDBC API 与数据库之间的桥梁。 通常,Java 程序首先使用 JDBC API 来与 JDBC 驱动程序管理器(DriverManager)交互, 由 JDBC 驱动管理程序载入指定的 JDBC 驱动程序后就可以通过 JDBC API 来存取数据库。 Java 的 JDBC Drivers 仅提供下述四种类型的数据库驱动方式: 1、JDBC-ODBC bridge plus ODBC driver 方式:JDBC-ODBC 桥接方式利 用微软的开放数据库互连接口(ODBC API)同数据库服务器通讯,客户端计算机首先应 该安装并配置 ODBC driver 和 JDBC-ODBC bridge 两种驱动程序。这是 Applets 访问 你的数据库最可能的解决方式。 2、Native-API partly Java driver 方式:这种驱动方式将数据库厂商的特殊协议转 换成 Java 代码及二进制类码,使 Java 数据库客户方与数据库服务器方通信。例如: Oracle 用 SQLNet 协议,DB2 用 IBM 的数据库协议。数据库厂商的特殊协议也应该被安 装在客户机上。 3、JDBC-Net pure Java driver 方式:这种方式是纯 Java driver。数据库客户以 标准网络协议(如 HTTP、SHTTP)同数据库访问服务器通信,数据库访问服务器然后翻译 标准网络协议成为数据库厂商的专有特殊数据库访问协议(也可能用到 ODBC driver)与 数据库通信。对 Internet 和 Intranet 用户而言这是一个理想的解决方案。Java driver 被自动的,以透明的方式随 Applets 自 Web 服务器而下载并安装在用户的计算机上。 4、Native-protocol pure Java driver 方式:这种方式也是纯 Java driver。数据库 厂商提供了特殊的 JDBC 协议使 Java 数据库客户与数据库服务器通信。它将 JDBC 调用 转换为数据库直接使用的网络协议。该系统的驱动程序不需要安装客户端软件,它是 100%的 Java 程序,使用 Java Socket 来连接数据库,所以它特别使用于通过网络使用后台数据库 的 Applet。这对 Intranet 应用是高效的,可是数据库厂商的协议可能不被防火墙支持, 缺乏防火墙支持在 Internet 应用中会存在潜在的安全隐患。 综于上述四种连接数据库方式的优缺点,本社团网站系统采用第四种连接数据库的 方式进行数据库连接。主要代码如下所示: 畅想软件社团网站 19 public class DBConnect private static final String DBDRIVER = “com.mysql.jdbc.Driver“; private static DBConnect connect = null; / 创建一个静态的 Object 类型的变量,其实质是一个帮助锁。 private static Object locked = new Object(); private DBConnect() try / 加载驱动程序 Class.forName(DBDRIVER); catch (ClassNotFoundException e) e.printStackTrace(); / 该方法的作用是获得 DBConnect 类的一个实例对象。 public static DBConnect getInstance() / 利用 synchronized 关键字进行加锁,防止多个线程同时访问。 synchronized (locked) if(connect=null) connect = new DBConnect(); return connect; public Connection getConnection() throws Exception try / 创建语句连接 return DriverManager.getConnection(“jdbc:mysql:/localhost:3306/organ?user=root catch (SQLException e) e.printStackTrace(); throw e; 畅想软件社团网站 20 5.2 MVC 的设计模式 5.2.1 MVC 模式简介 MVC 最初是在 Smalltalk-80 中被用来构建用户界面的。M 代表模型 Model,V 代表 视图 View,C 代表控制器 Control。MVC 的目的是增加代码的重用率,减少数据表达、 数据描述和应用操作的耦合度。同时提高软件的可维护性、可修复性、可扩展性、灵活 性以及封装性。 MVC 设计模式有三部分组成:模型是应用对象,没有用户界面;试图表示它在屏幕 上的显示,代表流向用户的数据;控制器定义用户界面对用户输入的响应方式,负责把 用户的动作转成针对 Model 的操作;Model 通过更新 View 的数据来反映数据的变化。三 者的关系如下图所示: 图 5.1 MVC 组件类型和功能 5.2.2 JSP 中 MVC 模式的体现 在 jsp 技术中,html、Jsp 页面充当 Vidw(视图);servlet 充当 controler (控制器); javabean 类充当 Module(模块)。 在 JSP 技术中 MVC 模式的工作流程为: jsp 通过提交 form 表单,或者带参数的 url 请求 sevlet;servlet 里 doPost 或者 doGet 方法根据参数调用 Module 类里面的方法进行添加、删除、更新、查询数据的操作,然后 用 forward 方法或者 response.sendRedirect 返回到 jsp 页面,这里 servlet 只控制流程, JavaBean 类里面处理业务逻辑。servlet 里面 request.setAttribute()保存数据,在 jsp 页面 request.getAttribute()得到数据。 畅想软件社团网站 21 5.3 社团活动模块功能设计 5.3.1 社团活动模块功能介绍 畅想软件社团后台社团活动模块主要负责对社团活动进行添加、删除社团活动信息、 修改社团活动信息和查看某一条社团活动的详细信息等操作。 5.3.2 社团活动模块功能详细介绍 1、管理员对社团活动进行添加、删除、修改和添加等操作,要涉及到对数据库的操 作。因此首先要编写数据库的连接文件,由于数据库的连接会出现异常情况,因此在代 码中利用 try-catch-finally 语句对异常进行处理。 2、管理员查看社团活动时,要将数据库中的所有信息的标题、时间等信息查询出来 显示在页面上,其界面如下图所示: 图 5.2 社团活动信息显示页面图 主要代码如下所示: (1) 由于涉及到对数据库的操作,会出现异常现象。因此利用 try-catch-finally 语 句对异常进行处理。 畅想软件社团网站 22 public Active get(String id) throws Exception String sql=“select id ,active_title, active_text,active_time from active where id=?“; Connection conn=null; PreparedStatement ps=null; try / 获得与数据库的连接 conn=wh.rjst.conn.DBConnect.getInstance().getConnection(); ps=conn.prepareStatement(sql); ps.setString(1, id); ResultSet rs=ps.executeQuery(); rs.next(); if(rs.wasNull()return null; Active active=new Active(); / 对从数据库中取出的相关信息保存到一个 Active 类型的变量中。 active.setId(rs.getString(“id“); active.setActive_title(rs.getString(“active_title“); active.setActive_text(rs.getString(“active_text“); active.setActive_time(rs.getString(“active_time“); return active; (2) 最后利用 catch 语句块处理异常,利用 finally 语句块关闭连接,代码如下所示: finally try if (conn != null) conn.close(); if (ps != null) ps.close(); catch (SQLException ex) 畅想软件社团网站 23 (3) 在 JSP 页面显示社团活动的信息时。要先将存放在 request 中的 activeList 对象从 request 中取出来,实现代码如下: activeList = (List) request.getAttribute(“activeList“); % 3、管理员删除某一条社团活动操作时,页面如下图所示: 图 5.3 删除某一社团活动信息页面图 在删除操作时利用了 JavaScript 脚本语言技术。并且在 JSP 页面中设置了一个隐藏域, 主要代码如下所示: (1) 本代码的作用是设置删除时的隐藏域。 畅想软件社团网站 24 (2) 在 JSP 页面中添加一个删除按钮,当点击该按钮时处罚 del_active(id)方法。 )“ value=“删除“ (3) del_active(id)方法利用 JavaScript 语言进行编写,代码如下所示: function del_active(id) if(confirm(“你确定要删除吗?“) / document.getElementById(String str)方法是获得隐藏域的值 document.getElementById(“idOfActiveToDel“).value=id; document.forms0.action=“delete_active“; document.forms0.submit(); else document.forms0.action=“list_active“; document.forms0.submit(); (4) 删除某一社团活动时,涉及数据库的操作,会出现异常。因此用 try-catch- finally 语句对异常进行处理。主要代码如下所示: public void delete(String id) throws Exception / ?代表一个占位符,其值是从 JSP 页面传递过来的社团活动的 id 值。 String sql=“delete from active where id=?“; Connection conn=null; / 创建一个预处理容器。 PreparedStatement ps=null; try/ 获得与数据库的连接。 conn=wh.rjst.conn.DBConnect.getInstance().getConnection(); ps=conn.prepareStatement(sql); ps.setString(1, id); ps.executeUpdate(); (5) 最后利用 catch 语句块处理异常,利用 finally 语句块关闭连接。 畅想软件社团网站 25 4、管理员修改某一条社团活动操作时,页面如下图所示: 图 5.4 修改某一社团活动信息页面图 在修改操作时利用了 JavaScript 脚本语言技术。并且在 JSP 页面中设置了一个隐藏域, 主要代码如下所示: (1) 本代码的作用是设置修改时的隐藏域。 (2) 在 JSP 页面中添加一个修改按钮,当点击该按钮时处罚 upd_active(id)方法。 )“ value=“修改“ (3) upd_active(id)方法利用 JavaScript 语言进行编写,代码如下所示: function upd_active(id) / document.getElementById(String str)方法是获得隐藏域的值 document.getElementById(“idOfActiveToUpd“).value=id; document.forms0.action=“init_update_active“; document.forms0.submit(); 畅想软件社团网站 26 (4) 修改某一社团活动时,首先要先从数据库中取出该社团活动的相关信息,在进行 修改操作。从数据库中取出某一活动的代码会出现异常。因此用 try-catch-finally 语 句对异常进行处理。主要代码如下所示: public Active get(String id) throws Exception / ?代表一个占位符,其值是从 JSP 页面传递过来的社团活动的 id 值。 String sql=“select id ,active_title, active_text,active_time from active where id=?“; Connection conn=null; PreparedStatement ps=null; try conn=wh.rjst.conn.DBConnect.getInstance().getConnection(); ps=conn.prepareStatement(sql); ps.setString(1, id); ResultSet rs=ps.executeQuery(); rs.next(); if(rs.wasNull()return null; Active active=new Active(); / 对从数据库中取出的相关信息保存到一个 Active 类型的变量中。 active.setId(rs.getString(“id“); active.setActive_title(rs.getString(“active_title“); active.setActive_text(rs.getString(“active_text“); active.setActive_time(rs.getString(“active_time“); return active; (5) 对某一社团活动进行添加的代码如下: public void update(Active active) throws Exception String sql=“update active set active_title=?,active_text=? where id=?“; Connection conn=null; PreparedStatement ps=null; try 畅想软件社团网站 27 conn=wh.rjst.conn.DBConnect.getInstance().getConnection(); ps=conn.prepareStatement(sql); / 取出存放在 Active 类型变量中的相关信息。分别赋给相应的占位符。 ps.setString(1, active.getActive_title(); ps.setString(2, active.getActive_text(); ps.setString(3, active.getId(); ps.executeUpdate(); (6) 最后利用 catch 语句块处理异常,利用 finally 语句块关闭连接。 5、添加一条社团活动时的页面如下图所示: 图 5.5 添加一条社团活动信息页面图 在添加操作时利用了 JavaScript 脚本语言技术。主要代码如下所示: (1)在 JSP 页面中添加一个添加社团活动的按钮,当点击该按钮时处罚 add_active() 方法。 (2)add_active()方法利用 JavaScript 语言进行编写,代码如下所示: function add_active() 畅想软件社团网站 28 / 该方法的主页作用是提交到一个 servlet 文件,该文件的主要作用是对要添 社团活动进行初始化。 document.forms0.action=“init_add_active“; document.forms0.submit(); (3) 再添加社团活动的 JSP 页面,利用了 Javascript 脚本语言和正则表达式来对输 入的相关信息进行验证,如果添加的信息不符合要求,则要重新进行添加,进行添加内 容判断的图片如下图所示: 图 5.6 添加一条社团活动判断信息页面图 进行添加内容判断的主要代码如下所示: function a() var t=document.f1.active_title.value; var n=document.f1.active_text.value; var s=document.f1.active_time.value; / 定义一个正则表达式。 畅想软件社团网站 29 var pt=/(d)4,8$/; / 对社团活动的标题进行验证。 if(t=“) alert(“标题不能为空!“); return ; / 对社团活动的内容是否为空进行验证。 if(n=“) alert(“内容不能为空!“); return ; / 对时间是否为空,是否符合格式进行相应的验证。 if(s=“) alert(“时间不能为空!“); return ; if(!pt.test(s) alert(“输入的时间形式不对,必须是数字而且形式是:年-月-日。请重新输入!“); return; document.f1.submit(); (4) 如果所添加的内全部符合要求,则进行添加社团活动的操作,主要代码如下: public void insert(Active active) String sql=“insert into active(active_title,active_text,active_time,active_img) val

温馨提示

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

评论

0/150

提交评论