1、绪论 第 1 页 共 133 页 基于 JAVA 在线音乐系统的设计与实现 1 绪论 1.1 课题的目的和意义 随着互联网和宽带上网的普及, Integer 音乐网站在中国异军突起,并日益渗透到人们的日常生活中。音乐网站是运用现代通信技术、计算机和网络技术进行的一种社会形态,其目的是通过互联网、提高社会生产效率、优化社会资源配置,从而实现社会财富的最大化利用。本课题所研究的 Integer 音乐网站主要是为个人提供搜索,欣赏和下载的一个平台,从而给个人带来方便。 课题目标是设计并实现一个 B/S 体系结构的 Integer 音乐网站。结合实践,理解网页开发技术和 数据库的基本知识,学习相关开发
2、工具和应用软件,熟悉网站建设的过程,熟练掌握网络数据库编程方法。 1.2 国内现状分析 现在我国的 信息管理 水平还 比较落后 ,这样的机制已经不能适应时代的发展,因为它浪费了许多人力和物力,在信息时代传统的管理方法必然被计算机为基础的信息管理所取代。软件作为一项有力的工具,只能当此种工具,与我们的实践相结合起来的时候,才具有重大的社会价值及使用价值。因此根据目前实际的情况开发 这样 一套 管理 系统是十分必要的。 随着科学技术的不断提高 ,计算机科学技术日渐成熟 ,其强大的功能已为人们深刻认识 ,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分 ,使用计算机进行管理
3、,具有着手工管理所无法比拟的优点。例如 :可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高工作的效率 ,也是信息正规化管理与世界接轨的重要条件。 本系统用 JSP 语言来编写社本系统,数据库用 SQLSERVER 2000 来连接系统。本论文主要涉及软件,数据库与网络技术等。涵盖知识面广,可有效地提高学生综合运用所学知识分析解决问题的能力,增强学生对事物的理解与掌握能力,培养学生掌握科学的研究方法,正确的 设计思想,独立思考,勇于进取,探索创新,为今后进一步学习与工作奠定了良好的基础。 基于 JAVA 在线音乐系统的设计与实现 第 2 页 共 43 页 2 可行性研究与需
4、求分析 2.1 可行性研究 该阶段通过对系统目标的初步调研和分析,提出可行性方案并进行论证。我们在这里主要从技术可行性、经济可行性和操作可行性等方面进行分析。 1经济可行性 开发该系统所需的相关资料可以通过已存在的相关系统进行调查采集,所需的其他应用软件、硬件系统也易于获得 .因此 ,开发成本较低。而引进使用本系统后,与传统方式相比,具有高效率、低成本、高质量的特点,可以节省不少人力、物力及财力。所以,从经济的角 度来看,该系统可行。 2 技术可行性 技术可行性要考虑现有的技术条件是否能够顺利完成开发工作,软硬件配置是否满足开发的需求等。 本系统 用的是 JSP 开发语言,调试相对简单,当前的
5、计算机硬件配置也完全能满足开发的需求,因此在技术上是绝对可行的。软件方面:由于目前单机模式相对发展成熟,故软件的开发平台成熟可行 ,它们速度快、容量大、可靠性能高、价格低,完全能满足系统的需求。 本系统的开发,是典型的 Mis 开发。采用 JSP 编程语言 ,已无技术上的问题。 3运行可行性 运行可行性是对组织结构的影响,现有人员和 机构 和环境对系统 的适应性及人员培训补充计划的可行性。当前信息化技术已经相当普及,各类操作人员水平都有相当的高度,所以在运行上是可行性的。 4时间可行性 从时间上看,在两个月的时间里学习相关知识,并开发系统,时间上是有点紧,但是不是不可能实现,通过两个多月的努力
6、功能基本实现。 5法律可行性 所有技术资料都为合法。 开发过程中不存在知识产权问题。 未抄袭任何系统,不存在侵犯版权问题。 开发过程中未涉及任何法律责任。 综上所述,本系统的开发从技术上、从经济上、从法律上等都是完全可靠的。 可行性研究与需求分析 第 3 页 共 43 页 2.2 需求分析 需求分 析是软件设计的一个重要的环节。本阶段对系统管理系统的应用情况作全面调查,以确定系统目标。确定用户的需求。用户对系统的需求我们从以下几方面进行分析。 1系统需求 用 JSP 开发系统管理系统 基于 B/S 模式,系统软件和数据集中存放于服务器中,软件的安装与升级在服务器上进行 。 所有的工作基于浏览器
7、,安装、使用、维护、升级十分简单。 2 性能需求 为了保证系统能够长期、安全、稳定、可靠、高效的运行。系统处理的准确性和及时性是系统的必要性能。由于本系统的添加功能对于整个系统的功能和性能完成举足轻重。作为系统的很多数据来源, 其准确性和及时性很大程度上决定了系统的成败。在系统开发过程中,必须采用一定的方法保证系统的准确性和及时性。 3应用需求分析 表 2-1 系统需求硬件分析 服务器 硬件 处理器: Intel 酷睿 2 内存: 256M 或更大 硬盘: 20G 或更大 软件 Microsoft Windows XP 客户机 硬件 无特殊要求 软件 Microsoft Windows XP
8、系统的性能要求通常指系统需要的存储容量以及后援存储,重新启动和安全性 ,运行效率等方面的考虑。 硬件系统环境: C600、 1G MB( RAM) 、 500MB( HD)。系统运行时对数据的保密性要求不高对一般的数据不要求进行加密。此外,对其它软件几乎没有依赖性,程序健壮性较好 4 运行需求分析 硬件条件:酷睿 2 CPU、 1G RAM、 10 G 硬盘以上的 PC 机。 软件条件: Windows XP 5 其他需求分析 基于 JAVA 在线音乐系统的设计与实现 第 4 页 共 133 页 本系统有较好的可维护性、可靠性、可理解性、效率。易于用户理解和操作。可维护性包括了可读性、可修改性
9、、可测试性、等含义。可靠性通常包括正确性和健壮性。开发过程中,在各种矛盾的目标之间作权衡,并在一定的限制的条件下(经费、时间、可用的软、硬件资 源等),使上述各方面最大限度的得到满足。 实现技术 第 5 页 共 133 页 3 实现技术 3.1 JSP 技术简介 JSP(Java Server Page 服务器网页 )是从 1998 年开始出现的新技术。由 Sun 公司倡导、许多公司参与一起建立的一种动态网页技术标准,是基于 JavaServlet以及整个 Java 体系的 web 开发技术。在传统的网页 HTML 文件 (*.htm,*.html)中加入脚本片段和 JSP 标记 (Tag),
10、构成 JSP 网页 (*.jsp)。 JSP 技术为创建显示动态生成内容的 web 页面提供了简 便的方法。 JSP 作为 Java 家族的一员,承袭了 Java的特点,即跨平台的特性,也即一次编译,到处运行。 在国外,己经大量使用 JSP 作为网络应用程序的开发工具,而在国内,尽管JSP 还不是主流开发技术,但是由于 JSP 的强大优势,许多网站都已经准备转向JSP,利用 JSP 来开发动态网站。 3.2 JSP 工作原理 JSP 是面向服务器的,因此支持任何浏览器。当 Web 服务器和 JSP 引擎遇到访问 JSP 网页的请求时, JSP 引擎将请求对象发送给服务器端的相关组件,比如Jav
11、aBean 组件、 Servlet 或 EJB 等,然后由服务 器端组件处理这些请示,可能需要从数据库或数据存储中检索信息,然后服务器端组件再将响应对象返回 JSP 引擎。 JSP 引擎将响应对象传递给 JSP 页面,根据 JSP 页面的 HTML 格式完成数据编排,最后 Web 服务器和 JSP 引擎将格式化后的 JSP 页面以 HTML 格式返回客户浏览器。这就是当前网站构建中广泛采用的浏览器 Web 服务器 后台数据库的三层架构模式。因为 JSP 所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果。 3.3 JSP 体系结构 JSP 网站开发标准给出了两种使用 JSP 的技
12、术 ,可以归纳为模式一、 模式二。 模式一 :JSP+JavaBeans 技术 在这种模式中, JSP 页面独自响应请求并将处理结果返回给客户。 Bean 处理所有数据访问, JSP 实现页面的表现,以实现内容生成与显示相分离。当处理复杂的大型应用时,页面被嵌入大量的脚本或 Java代码段,当需要处理的商业逻辑复杂时,这种情况会变得非常糟糕,大量的内嵌代码使得页面程序变得复杂,对于前端界面设计人员,这是不可思议的事情。所基于 JAVA 在线音乐系统的设计与实现 第 6 页 共 133 页 以模式一可用于小型应用,不能够满足大型应用的需要。 模式二 :JSP+Servlet+JavaBeans
13、技术 Servlet技术是一 种采用 Java技术来实现 CGI 功能的一种技术, Servlet 技术非常适于服务器端的处理和编程,并且Servlet 会长期驻留在内存。 从开发的观点看,模式二具有更清晰的页面表现,清楚的开发者角色划分,在大规模项目开发中,模式二更被采用,模式二也更符合当前流行的 MVC 结构(Model/view/controller),其中 Servlet 对应 controller,处于控制者的位置,处理HTTP 请求,负责生成 JSP 中使用的 Beans 组件或对象,并判断应将请求传递给哪个 JSP 等, JSP 对应 view,负责生成最终的动态 网页并返回给浏
14、览器。而JavaBeans 对应的是 Model,实现各个具体的应用逻辑与功能。 3.4 JSP 的特点 1. 简化的页面生成技术。 JSP 页面用标准的 HTML 或 XML 命令来处理页面的格式化和布局设计,而用类似 HTML、 XML 的标记和 Java 语言编写的脚本程序生成页面内容。这使得页面形式与页面内容互相独立,非常有利于大型项目的分工合作。 2. 与 Java 平台有机集成。 JSP 技术是 Java 2 平台的重要组成部分, JSP 使用 Java 语言作为它的脚本语言。在 JSP 页面中可以使用几乎所有的 Java 组件和 Java API,这就能充分发挥出 Java 语言
15、的强大功能。使用 JSP 技术可以创建具有高度可伸缩性和可靠性的Web 应用程序。 3. 硬件平台和服务器无关性。 JSP 作为 Java 家族的一员,秉承了 Java 技术的“一次编写,随处可用 (Write Once, Rum Anywhere)”的特性,可以运行于大多数流行的操作系统平台及 Web服务器,这种与服务器硬件和操作系统平台的无关性是 JSP 相对于其它动态网页技术最大的一个优点。 4. 功能可扩展性。 如同 Microsoft的 JSP 技术可以通过 ActiveX/COM组件来扩展功能一样, JSP可以 通过 JavaBean 和 EJB(Enterprise JavaBe
16、an)以及自定义的标记来扩展功能。 JSP 可以通过 JDBC,与诸如 Oracle、 SQL Server 这样的大型关系数据库进实现技术 第 7 页 共 133 页 行连接。 JSP 提供了一些隐含对象。这些隐含对象在 JSP 页面中可以直接引用,而不必首先声明。利用 JSP 提供的这些隐含对象,可以使脚本功能更加强大,并且编程更加容易、方便。例如,利用 request 对象,可以很容易地接收用户在 HTML表单中提交的信息。 3.5 SQLSERVER 2000 数据库 SQL Server 是由 Microsoft 开发和推广的关系数据库管理系统( DBMS) ,它最初是由 Micro
17、soft、 Sybase 和 Ashton-Tate 三家公司共同开发的,并于 1988年推出了第一个 OS/2 版本。 SQL Server 近年来不断更新版本, 1996 年,Microsoft 推出了 SQL Server 6.5 版本; 1998 年, SQL Server 7.0 版本和用户见面; SQL Server 2000是 Microsoft公司于 2000年推出的最新版本。 SQL Server 特点: 1真正的客户机 /服务器体系结构。 2 图形化用户界面,使系统管理和数据库管理更加直观、简单。 3丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地。 4 SQL
18、Server 与 Windows NT 完全集成,利用了 NT 的许多功能,如发送和接受消息,管理登录安全性等。 SQL Server 也可以很好地与 Microsoft BackOffice 产品集成。 5具有很好的伸缩性,可跨越从运行 Windows 95/98 的膝上型电脑到运行Windows 2000 的大型多处理器等多种平台使用。 6对 Web 技术的支持,使用户能够很容易地将数据 库中的数据发布到 Web页面上。 7 SQL Server 提供数据仓库功能,这个功能只在 Oracle 和其他更昂贵的DBMS 中才有。 3.6 系统数据库连接 JDBC 技术是 Java DataBa
19、se Connectivity 的缩写,它是 SUN 公司提供的一种支持基本 SQL 功能的通用的应用程序接口 (Application Programming Interface)。它由一组用 Java 语言编写的类和接口组成。通过这些类和接口,程序开发人员可以在 Java 语言中方便地建立与数据库的链接,通过执行相应 SQL 语句,完成对不 同数据库的访问。因此,开发人员使用 JDBC API 可以不必编写一个应用程基于 JAVA 在线音乐系统的设计与实现 第 8 页 共 133 页 序来访问 Sybase 数据库,又另外编写一个应用程序去访问 Oracle 数据库,再写一个应用程序访问
20、Microsoft 的 SQL Server。不但如此,使用 Java 语言编写的应用程序可以在任何支持 Java 的平台上运行,不必在不同的平台上开发不同的应用程序。 简单地说, JDBC 能完成下列三件事: 同一个数据库建立连接; 向数据库建立连接; 处理数据库返回的结果。 JDBC 是一种通用低层的应用程序编程接口,它在不同的数据库功能模块的层次上提供 一个统一的用户界面。说 JDBC 是一处低级的 API,是指它直接调用SQL 命令,它比其他的一些数据库连接 API 要容易使用些,但它有同样可以作为更高级的,用户办面更友好的 API 或开发工具基础。 很多可视化的 Java 开发工具,
21、如 Visual Age For Java、 Visual Caf、 J+等都提供了基于 JDBC 的更面向用户的类和包,直接将关系数据库的表或视图映射为 Java 类,程序员通过可视化工具直接对 Java 对象进行操作,而真正需要的SQL 调用则根据程序员发出的对对象的各种属性、方法的操作来自动产生。另一种 使用 JDBC API 的方式为,用户程序可以提供一个界面(如菜单等)让用户选择对数据库进行的操作,选中一个任务后,提示用户输入一些必要的信息,然后根据用户的输入产生相应的 SQL 命令以及 Java 程序。通过这处方式,用户可以完成对数据库的操作,即使他并不了解 SQL 语法以及 JD
22、BC 编程。 数据库访问的三层结构如图 3.1所示,浏览器端程序要访问数据库,首先通过中间件,然后由中间件对数据库操作权限进行认证,认证通过才能对数据库进行操作。 图 3.1 使用中间件的数 据库访问三层结构 用户对数据库的存取权限认证是中间件中完成,对数据库的查询、插入、更新和删除操作等都封装在中间件中,该中间件位于服务器端,中间件对数据库进数据库服务器 浏览器 Web 服务器 中间件 数据库 实现技术 第 9 页 共 133 页 行操作后,再将处理结果通过 Web 服务器返回到浏览器端用户。这样,在用户端输入的用户名和密码,可以通过加密算法进行加密后在网络上传输,在中间件中进行解密认证,然
23、后再进行数据库的存取操作,数据库存取权限的用户名和密码出现在位于服务器端的中间件中,这样就更加安全。本系统采用的正是这样的三层结构的数据库访问模式。 在三层模型中,命令将被发送到服务的 ” 中间层 ” ,而 ” 中间层 ” 将 SQL语句发送到数据库。数据库处理 SQL 语句并将结果返回 ” 中间层 ” ,然后 ” 中间层 ” 将它们返回用户。其模型如图 5.2所示。 图 3.2 JDBC 的三层模型 因为 ” 中间层 ” 可以进行对访问的控制并协同数据库的更新,并且可以使用一个易用的高层 API,这个 API 可以由“中间层”进行转换,转换成低层的调用。许多种情况下,三层模型可以提供更好的性
24、能,本系统中所采用的就是此种模型。Java Applet 应用服务器 JDBC DBMS 客户机( GUI) HTTP,RMI或 CORBA调用 (事务)服务器 DBMS 专用协议 数据库服务器 基于 JAVA 在线音乐系统的设计与实现 第 10 页 共 133 页 JDBC 是 JAVA 应用程序与数据库的沟通桥梁。它提供了三项服务功能:一、与数 据库建立连接。二、将 SQL 语句传递给数据库。三、从数据库取得 SQL 语句的执行结果。当 JDBC 要与数据库建立连接前,首先,它必须先取得连接此数据库的 JDBC 驱动程序 , Class.forName()即是在执行此项工作。建立数据库连接
25、的第一步骤就是将 JDBC 驱动程序的类载入至 JVM( Java VirtualL Machine)中,本系统中利用 java.lang.Class 类内的 forName() 静态函数依据指定的类名称,将 JDBC 驱动程序载入进来。完成载入驱动程序的步骤后,必须使用java.sal.DriverManager 类所提供的 getConnection() 静态函数,取得与数据库间的连接对象。此连接对象的类类型为 java.sal.Connection,必须通过它才能将 SQL 指令传递给数据库,而执行结果也需要通过连接对象来取得。当取得连接对象后,还必须取得 Statement 对象才能对数据库执行 SQL 指令。 Statement主要实现两个功能:执行 SQL 语句以及取得执行结果。在 java.sql.Statement的 sql 对象中执行查询或修改命令的函数后传回的是一个 ResultSet 对象,这个对象提供了一个存取 SQL 执行结果的管道,以便通过它将表格数据从数据库中取出。每个 Statement 对象只能产生一个 ResultSet 对象。 数据库连接如图 3.3 所示 :