摘 要
随着Internet的不断普及,人们对于互联网技术的要求已不单单是浏览一个网页,收发电子邮件。利用互联网,人们可以足不出户完成一些网上租赁。影碟租赁系统就是其中一个,它能够实现影碟的网上租赁,大大提高了租赁速度节约租赁成本。近几年,随着数据库技术的进展,使得这一设想逐渐成为现实。
系统开发的要点就是实用,目标系统主要是实现影碟租赁的基本业务管理,系统主要功能为:出租影碟,收取一定金额的租金,在出租和收回的过程中都要进行登记;在购买了一批新电影时要对其进行登记入库,记录投入资金的数目。这些操作可能由不同的人完成,因此还要对管理员的权限进行划分。此外,顾客通过注册会员足不出户选电影,以及预订不在店里而又喜欢的影片。客户界面提供用户对自己借阅记录的查询,以及对影碟的查询,影碟预定以及解除预定等。管理界面主要由以下几个部分组成:系统管理,使获得管理员和会员的人各自进行权限操作;影碟管理,对新增影碟的资料录入,影碟借阅次数的统计,对长期无人租赁或者租赁次数较少的影碟信息进行删除等;租赁关系管理,对顾客信息,借阅影碟名字,借阅时间,所交押金的录入。
管理系统采用B/S模式体系结构,管理员和注册用户通过输入用户名和密码可以登陆站点,进行已授权的操作,游客可以进行简单的浏览和查找。
本系统采用业内比较熟悉的JSP技术作为开发工具,后台数据库选用微软公司的SQL Server2000,Web服务器选用Apache公司的Tomcat6.0,运行的操作系统为Microsoft Windows XP。
关键字:影碟租赁;租赁关系管理;JSP
影片租赁商通常要管理很多碟片,几百或者上千张,很不方便查找,如果是规模很大的租赁商则在查找和管理方面花费的时间将会更多,因此在计算机和网络技术深入生活的时代,用操作方便的管理系统来协助他们工作是必要。
管理系统采用B/S模式体系结构,管理员和注册用户可以登陆站点通过输入用户名和密码来进行已授权的操
Abstract
Along with the Internet of continuously universal,people are for the request of technique Internet the already and not only single is a view once web page,receive and dispatch the E-mail.The use of the Internet,people can be created to complete some transactions on the Internet. DVD rental system is one that it can achieve DVD online transactions,greatly increasing the speed of transactions saving transaction costs. In recent years,with the progress of database technology,making this vision become reality.
Development of the points system is practical,the main target system is the basic DVD rental business management,The main functions : DVD rental,charging certain amount of rent,lease,and the process of recovery should register; enough to buy a batch of new films to register its stock and the record number of investment funds. These operations may be different persons completed,it still has the authority to the administrator divided. Also, customers registered members created by the election movies,and store and not scheduled to be like the movies.
Management system using B / S mode architecture,Administrators and registered users to enter a user name and password can visit the site,has authorized the operation,tourists can perform simple browsing and search.
Film rental system by the two major functional modules, customer interface and management interface. Customer interface to provide users of their lending records of inquiries and the inquiries on DVD, DVD and is scheduled is scheduled to lift such. Management Interface mainly by the following components : systems management, Access managers and members of the respective authority for operation; DVD management, the new DVD hungry data logging, Readers number of films statistics, the long-term lease or lease no fewer DVDs information deleted; leasing relationship management, customer information and to borrow DVD name, borrowed time and pay a deposit of input.
The exploitation technology of this system is JSP. JSP is a mature technology. Use SQL Server 2000 of Microsoft company as the background database. Use Tomcat of Apache Co. as web server. Operating System is Microsoft Windows XP.
Keyword: DVD rental; Lease management; JSP
目 录
1 绪 论 1
1.1 题目背景
1.2 设计内容
1.3 设计目标
1.4 开发环境 3
1.4.1 开发平台MyEclipse简介
1.4.2 服务器Tomcat6.0简介
1.4.3 后台数据库SQL Server2000简介
1.4.4 主要开发技术介绍
1.5 经济技术分析
2 系统的概要设计 8
2.1 可行性研究
2.1.1 技术可行性
2.1.2 操作可行性
2.1.3 市场前景分析
2.2 需求分析
2.2.1 问题范围
2.2.2 功能需求
2.2.3 功能模块
2.2.4 应用环境
2.3 数据库的概要设计
2.4 方案论证简述
3 详细设计
3.1 系统功能分解
3.1.1 管理员部分
3.1.2 用户部分 18
3.2 数据库的详细设计
3.2.1 数据库设计
3.2.2 数据库建立
4 程序运行框架
4.1 创建程序运行框架
4.1.1 安装JDK1.5
4.1.2 安装MyEclipseJDK1.5
4.1.3 Tomcat6.0和SQL Server 2000
4.2 影碟租赁系统编码
4.2.1 通用模块
4.2.2 数据库操作
4.2.4 分页显示的功能
4.2.5 下拉列表形式的分类查找
5 系统测试
5.1 单元测试
5.1.1 影碟信息管理测试
5.1.2 权限管理测试
5.1.3 租赁信息管理测试
5.1.4 管理员登陆模块测试
5.1.5 软件的可移植性测试
5.2 系统测试
结 论
致 谢
参考文献 40
附录A
附录B
影片租赁管理系统拟定名为“碟影重重Disc Bar”,是为影碟租赁店开发的管理系统。影碟租赁店的主要业务为:出租影碟,收取一定金额的租金,在出借和收回的过程中都要进行登记;购买了一批新片时要对其进行登记入库,记录投入资金的数目。这些操作可能由不同的人完成,因此还要对管理员的权限进行划分。增加营业额是老板的直接目的,因此经营者应当清楚用户的需求,开发潜在客户群。
假如我们站在一个客户的角度看一个租赁关系的建立,当然希望清楚地知道他们已经有我要找的影碟了,我去了基本可以租回来,不会空手而归;希望知道比较热门的影碟是什么,不用费太多力气去选择;如果我依次租了好几张碟,我可能会忘记某个,哪天借的,还没还;如果是我经常光临的店,我会希望他们能给我更多的优惠等等。
面对这么多的问题,比较原始的办法是简单的记忆凭印象,复杂的写在纸上,这两种方法都是不精确或者在应用的时候比较耗费时间,现代化的办法就是应用影碟租赁管理系统,把这些功能都集成在里面,只需要简单的输入、点击就能知道你想知道的数据。
影碟租赁系统具体应实现如下功能:
第一部分是管理员的部分功能
权限管理:主要包括对管理员、注册用户的管理,可以增加、删除用户信息;
碟片管理:
主要应包括租赁关系管理、资料管理两部分。
其中租赁关系管理中应包含借碟和还碟两部分;
借碟部分:
借碟部分则应区分已经预约的用户租赁和没有预约的用户租赁两类,如果已经预约则要查看预约表中是否有用户的预约记录,借出的时候需要登记借阅的用户,借出时间,影片编号等。
还碟部分:
还碟则需要显示碟片借出的时间,以便计算租金金额,并且要清除影碟的借出记录,将影片状态置为在店。
资料管理:
应包含新增影碟、删除影碟、查询影碟三个部分。新增影碟时需要登记影片的中文名称、英文名称、导演、影片类型、影片状态等资料。在增加影碟的过程中同时存储供应商的相关信息。
信息统计:
主要应包括跟影片有关的部分和跟用户有关的部分,其中应记录本店的近期热门影片和本店的大客户。
第二部分是用户的部分功能
个人信息:
应包含用户的注册信息,用户的借阅历史,用户的预约记录。
用户可以修改自己的注册资料;
查询与预约:
用户可以查找自己想看的影碟是否存在,如果有则可以执行预约,预约应该是可以解除的。
系统开发的要点就是实用,影碟租赁店原始的管理模式依旧是本系统设计的参考依据。目标系统主要就是实现影碟租赁店基本业务的管理,还增加了比手工管理阶段更先进的管理办法,包括数据的统计等等。主要有以下几个部分:管理员的管理,影碟的管理,影碟资料的管理,租赁关系管理,注册用户的管理,用户借阅历史的管理,注册用户对影碟的预约和解除预约,以及对热门影碟的统计。
影碟租赁系统,设计的重点放在管理的效率与易操作性上,还要兼顾客户界面的美观、在信息感受方面有让人身临其境的印象。提高管理效率的目标是充分利用计算机技术和网络技术的优势,根本上解决以前手工管理时效率低下的状况。增强易操作性的目标使管理人员的日常工作在管理系统的辅助下管理工作将非常易于操作、执行。针对客户视觉的界面设计目标是力求美观、大方。
影碟租赁系统采用目前比较流行的B/S(即浏览器/服务器结构)。在这种结构下,工作界面是通过WEB浏览器来实现,主要事务逻辑是在WEB服务器上实现,部分应用逻辑是在应用服务器上实现,形成三层结构。这样大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量。
目标系统采用JSP技术和HTML技术开发客户端的应用逻辑,采用基于Apache许可证下开发的自由软件Tomcat作为服务器;采用SQLServer 2000作为后台数据库,作为影片租赁系统的核心,它的主要职责是保存数据和提供一套方法管理这些数据;用户通过对界面的操作,由前端程序通过网络将数据或者消息传递给服务器,服务器对JSP与HTML进行解析,根据操作逻辑操作后台数据库,前端程序则等待接收数据结果,然后再将结果显示在用户界面上。
MyEclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。是目前java开发的主要工具。
MyEclipse最初是替代由IBM公司开发的价值 4 千万美金的商业软件Visual Age for Java的下一代IDE开发环境,2001年11月交给非营利的软件供应商的联盟Eclipse基金会(Eclipse Foundation)管理。 2003年,MyEclipse 3.0选择 OSGi 服务平台规范为运行时架构。
Tomcat是一个免费的开源的 Serlvet 容器,它是Apache基金会的Jakarta项目中的一个核心项目,由 Apache ,Sun 和其它一些公司及个人共同开发而成。由于有了 Sun 的参与和支持,最新的 Servlet 和 Jsp 规范总能在Tomcat 中得到体现。Tomcat 被 《JavaWorld》杂志的编辑选为2001年度最具有创新的 java 产品,可见其在业界的地位。因此,这个小型的应用服务器越来越多地受到软件公司和开发人员的喜爱[1]。
Microsoft SQL Server2000具有非常强大的关系数据库的创建、开发、设计及管理功能,并对Microsoft公司的其它产品及第三方产品具有良好的兼容性,能方便地实现无缝操作。此外,SQL Server 2000对开发工具提供良好的支持,能为大型数据库项目提供优秀的企业解决方案。它是一个优秀的面向下一代的数据库和数据分析系统,可以帮助用户建立自己的Internet商务体系。Microsoft SQL Server2000具有很高的可靠性、可伸缩性、可用性、可管理性等特点,为用户提供了完整的数据库解决方案。
(1)主要开发语言(Java)
①Java语言是SUN 1995发布, Java语言作为一种程序设计语言,它简单,与机器硬件无关,具有可移植性、安全性、强壮性,提供并发机制,可以最大限度地利用网络。Java小应用程序Java Applet在网络上传输,不受机器和操作系统的限制。
②Java语言的特点:
简单性、面向对象、分布性、强壮性、安全性、体系结构中立、可移植性、解释执行、高性能、多线程。
③Java的优点
JAVA的一个显著优点就是运行时环境提供了平台无关性:可以在Windows、Solaris、Linux或其他操作系统上使用完全一样的代码。这点对于在各种不同平台上运行从Internet上下载的程序来说很有必要。
(2)J2EE简单介绍
J2EE,即Java 2 Enterprise Edition,是建立在Java 2平台上的企业级别应用的解决方案。J2EE技术的基础便是Java 2平台,不但有J2SE平台的所有功能,同时还提供了对EJB、Servlet、JSP、XML等技术的全面支持,其最终目标是成为一个支持企业级别应用开发的体系结构,简化企业解决方案的开发,部署和管理等复杂问题。事实上,J2EE已经成为企业级别开发的工业标准和首选平台。
(3)JSP介绍
JSP(JavaServer Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。该技术为创建显示动态生成内容的Web页面提供了一个简捷而快速的方法。JSP技术的设计目的是使得构造基于Web的应用程序更加容易和快捷,而这些应用程序能够与各种Web服务器,应用服务器,浏览器和开发工具共同工作。一个熟悉HTML网页编写的设计人员可以很容易的进行JSP网页的开发,而且开发人员完全可以不自己编写脚本程序,而只是通过JSP独有的标签利用别人写好的部件来实现动态网页的编写。JSP是Java API家族的一部分,它拥有一般的Java程序的跨平台的特性。JSP中的动态内容可以以各种形式进行显示,所以它可以为各种客户提供服务:从使用HTML/DHTML的浏览器,到使用WML的各种手提无限设备(如:移动电话和个人数字设备PDA),再到使用XML的B2B应用,都可以使用JSP的动态页面。在JSP页面中可以不直接将脚本程序嵌入,而只是将动态交互部分作为一个部件加以引用,因此,一旦这样的一个部件写好,它可以为多个程序重复引用,实现了程序的可重用性[2]。
(4)Servlet介绍
用Servlet可以创建协议、平台无关的Web应用程序,Applet运行于浏览器的JRE中,而Servlet则运行于Web应用服务器的Servlet容器中,Servlet没有用户图形界面,Servlet和Web应用服务器的Servlet容器交互以接收请求返回响应。请求最先由Web应用服务器的Servlet容器处理并传给Servlet,Servlet通过Web应用服务器返回响应给客户端。客户端程序可以使用任何可向Web应用服务器发送请求的语言开发[7]。
(5)JavaScript介绍
JavaScript 是 Microsoft 公司对 ECMA 262 语言规范的一种实现。除了少数例外(为了保持向后兼容),JavaScript 完全实现了 ECMA 标准。本概述的目的就是引导您学习使用 JavaScript。
JavaScript 是一种解释型的、基于对象的脚本语言。尽管与 C++ 这样成熟的面向对象的语言相比,JavaScript 的功能要弱一些,但对于它的预期用途而言,JavaScript 的功能已经足够大了。
JavaScript 不是其他语言的精简版(例如,它只是与 Java 有点模糊而间接的关系),也不是任何事物的简化。不过,它有其局限性。例如,您不能使用该语言来编写独立运行的应用程序,并且没有对读写文件的内置支持。此外,JavaScript 脚本只能在某个解释器或“宿主”上运行,如 Active Server Pages(ASP)、Internet 浏览器或者 Windows 脚本宿主。
JavaScript 是一种宽松类型的语言。宽松类型意味着您不必显式定义变量的数据类型。事实上 JavaScript 更进一步。您无法在JScriot上明确地定义数据类型。此外,在大多数情况下,JavaScript 将根据需要自动进行转换。例如,如果将一个数值添加到由文本组成的某项(一个字符串),该数值将被转换为文本。
(6)JDBC简介
JDBC,全称为Java DataBase Connectivity standard,它是一个面向对象的应用程序接口(API),通过它可访问各类关系数据库。JDBC也是java核心类库的一部分。
JDBC的最大特点是它独立于具体的关系数据库。与ODBC (Open Database Connectivity)类似,JDBC API 中定义了一些Java类分别用来表示与数据库的连接(connections),SQL语句(SQL statements),结果集(result sets)以及其它的数据库对象, 使得Java程序能方便地与数据库交互并处理所得的结果。使用JDBC, 所有Java程序(包括Java applications , applets和servlet)都能通过SQL语句或存储在数据库中的过程(stored procedures)来存取数据库。
要通过JDBC来存取某一特定的数据库,必须有相应的JDBC driver,它往往是由生产数据库的厂家提供,是连接JDBC API与具体数据库之间的桥梁[8]。
通常,Java程序首先使用JDBC API来与JDBC Driver Manager交互,由JDBC Driver Manager载入指定的JDBC drivers, 以后就可以通过JDBC API来存取数据库。如图1.1所示
JDBC driver是用于特定数据库的一套实施了JDBC接口的类集。共有四种类型的JDBC driver:
类型1:称为"JDBC-ODBC bridge driver", 这种类型的driver能使客户端通过JDBC调用连接到一个使用ODBC driver的数据库。使用这类driver需要每个客户端机器都装上数据库对应的ODBC driver,但该ODBC driver不一定要跟Java兼容。
类型2:称为"native-API, partly Java driver",它将JDBC调用转换为特定的数据库调用。与类型1的driver一样,这类driver也要求客户端的机器安装相应的二进制代码。所以这类driver不太适合于使用数据库的Applet。
类型3:称为 "JDBC-Net pure Java driver", 它能将JDBC的调用转换为独立于数据库的网络协议。这种类型的driver特别适合于具有中间件(middle tier)的分布式应用,但目前这类driver的产品不多。
类型4:称为 "native protocol, pure Java driver",它能将JDBC调用转换为数据库直接使用的网络协议。类型4的driver不需要安装客户端软件,它是100%的Java程序,使用Java sockets来连接数据库,所以它特别适合于通过网络使用后台数据库的Applet。
由于本系统只是作为我们的毕业设计,所以对它的经济可行性不做过多的考虑。但它非常适合于影碟租赁管理,因为该系统实现了将管理和查询网络化,因此极大地方便了管理员、客户。本系统所用到的开发工具都为免费使用的,所以他的开发并不具有经济方面的风险,他的开发周期也较短,非常易于管理和维护,本系统无论是对于用户还是管理员,都非常容易操作,给人们的租碟带来了很大方便,如果对本系统再做些修正和完善,他将是一个很实用的软件,方便人们的使用。
管理者可以花很少的钱购买到本软件系统,但会带来远超过投入的回报,根据现在的市场行情,这是可行的。
目前最流行的动态网站技术有三种:ASP(Active Server Pages)、PHP(Hypertext Preprocessor)和JSP(Java Server Page)。PHP是一种跨平台的服务器端的嵌入式语言,对多层结构缺乏支持,提供的数据接口不统一,不太适应电子商务领域。ASP与JSP技术非常相似,是Web服务器端的开发环境,可以产生和运行动态的、交互的、高性能的Web服务应用程序,ASP编程有一个缺点,安全性不好,必须随时注意微软公司的补丁程序并进行系统的更新。JSP实现了动态页面与静态页面的分离,脱离了硬件平台的约束以及编译后的运行方式,大大提高执行效率,而逐渐成为主流的Web应用开发工具。JSP作为J2EE平台的关键部分能够方便的利用JAVA类库的许多优点,比如JDBC,JavaBean,EJB等,且JSP是应用程序变的简单。数据库服务器应用Microsoft SQL Server 2000, Microsoft公司推出的SQL Server 2000具有使用方便、可伸缩性好、与相关软件集成程度高等优点,逐渐成为Windows平台下进行数据库应用开发较为理想的选择之一。Web服务器采用Apache公司的Tomcat,可以免费使用。三者相结合,根据分析,本系统在技术上是可行的[9]。
从软件使用者的角度考虑,他们关心的就是操作是否简捷、方便、实用,数据库是否稳定、安全。本系统的界面设计简单直观,易于理解;该系统是在网络上发布,用户可以随时随地地对此进行访问。不需要特别的培训和讲解,用户便能使用该系统;软件设计则尽量考虑到用户的需求;该系统使用目前在网页开发中被认为是最安全的语言,JAVA语言编写,在安全性方面应该是很优秀的。根据分析,本系统在操作上是可行的。
当今社会是一个科技日新月异的时代,各种科技产品的更新换代的速度是人们难以想象的,随着网络时代的来临,各种方便人们的软件也应运而生了,本系统是网上影碟租赁系统,以前人们租碟是一件很烦琐的事情,得顾客亲自到店里去选、去调,很浪费时间,有时也会因为没有找到想要的影片而空手而归,店的管理者的工作也很麻烦,要记录每一位客人的借阅信息,对碟片的相关信息也要做详细的记录,一不小心还有可能将记录的信息遗失,这大大的降低了工作效率,网上租赁系统也随着网络时代的到来而应运而生了,本系统就是根据生活中的实际情况设计的,他大大的方便了顾客,使租碟变的方便快洁,减少了很多不必要的麻烦,也大大提高了管理者的管理体制的质量。他的产生是一种必然,也是一种趋势,在将来他一定会变的更完善的。从生活中的需求来看他是可行的。
开发一个影碟租赁系统,实现对影碟租赁店的管理。租赁系统尽量满足影碟租赁商的需要,通过本系统租赁商不但可以快速、全面地了解店内的信息,还可以相应地在经营策略方面进行一定的调整,辅助租赁商做出科学合理的决策。管理员通过主界面输入用户名、密码可以进入管理界面,也可以直接进入用户界面查看相关内容。用户则通过用户主页,选择要进行的操作。
影碟租赁系统实现对用户和影片相关内容的管理,分为管理员模块和用户模块。
管理员部分:实现对系统用户(包括系统管理员和用户)、影碟信息、供应商信息、租赁信息、统计信息(借出的影碟总数、投入资金金额)、大客户的管理和查看。用户部分提供游客的影碟浏览、用户注册、用户登录功能。
用户部分:用户登录后可以进行注册资料修改、影碟分类查询、浏览所有影碟资料、预约影碟、解除预约、查看借阅记录、查看预约情况、查看热门影碟等操作。
影碟租赁系统的各个功能模块的结构如图2.1所示
2.1 功能模块结构图
通过上图可以看出本系统可具体的分为两大模块,即管理者模块和用户模块。
管理者可以对系统的管理权限进行设定,对碟片进行管理,还可以对影片和用户的信息进行管理;用户则可以对个人的信息进行管理,也能进行查询和预约的操作。
目标系统采用JSP技术作为前台开发工具,Microsoft公司的SQL Server 2000作为后台数据库,JAVA虚拟机为Sun 公司的JDK1.5.0-09,服务器采用Apache免费的自由软件Tomcat6.0,操作系统为Microsoft公司的Windows XP。由于Java是跨平台的语言,所以操作系统可以是其它支持Java虚拟机的版本。
数据库在一个系统中占有非常重要的地位,它不仅能够记录下日常的商务往来,还能通过其分析供求趋势,从而促进商务进步.数据库是建立在用户及系统的需求分析基础上的.通过以上的需求分析,总结出以下的数据项和数据结构:
(1)数据项和数据结构:
a.包括管理员登录时所需信息:管理员(用户名,密码);
b.包括用户相关信息:用户(用户名,密码,性别,E—mail,电话号码,OICQ);
c.包括借阅时需要保存的相关信息:借阅(用户名,影片编号,借出日期,状态位);
d.包括用户预约后需要保存的信息预约:预约(用户名,影片名,影片编号);
e.包括影片相关资料,以及影片状态,借出次数:影片(中文名称,英文名称,导演,类型,长度,主演,故事情节,编号,状态,借出次数);
f.包括所进货品的相关信息:进货(碟片数目,投入金额,进货时间);
g.包括供应商的相关资料:供应商(名称,地址,电话,描述);
(2)设计出上面的数据项和数据结构后,进而设计满足用户与系统需求的各种实体,以及他们之间的关系,根据以上设计,规划出的实体的联系如图2.2所示:
图2.2 实体联系E-R图
本文介绍的影碟租赁实现了互联网的动态管理,管理者可以在网站上轻松的对影碟进行管理,比如影碟的进货信息的录入,影碟基本信息的录入,以及影碟借阅信息的统计等等,用户也可以通过网站会员的注册来实现网上租赁和预约,本系统是用动态的WEB网站来实现所要的各种基本功能,不是那种传统的静态的页面链接方式的网站系统。下面对各种创建动态网站的WEB技术加以介绍和分析:
目前创建动态的Web网站,有多种技术可供选择,比如在Web技术中,就有ASP,JSP,PHP等多种技术可供选择:
ASP(Active Server pages)是微软公司开发的一套服务器段脚本环境,基于服务器端的支持下,用于创建和运行交互式的动态网页。ASP为动态网站的开发提供了一个强有力的工具,在ASP中,嵌套了ASP程序以及HTML代码。ASP程序可以进行后台数据库访问,数据处理以及逻辑操作,ASP程序由服务器的Web Server执行;而HTML代码则发送个客户机的浏览器,由浏览器解析成网页。
JSP是Java Server Pages的简写。它是一种基于Java的脚本技术。JSP页面由HTML代码和嵌入其中的JAVA代码所组成。服务器在页面被客户段请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。这样一种模式,使网站的程序开发人员和网页设计人员可以各自独立地进行相应的工作,使网站开发可以做到分工明确,从而加快网站的开发速度。
PHP(Hypertext Preprocessor)是一种HTML内嵌式的语言,它与HTML语言具有非常好的兼容性,使用者可以直接在脚本代码中加入HTML标签,或者在HTML标签中加入脚本代码,从而更好地实现页面控制。
同时,后台数据库也有多种方案备选,如Microsoft Access、Microsoft SQL Server 2000:
Microsoft SQL Server的出现仅仅八年左右,但是它已经成为DBMS市场中极具魅力和实力的DBMS,已经可以与任何一个老牌的DBMS相抗衡。关键不仅在于它体现了一种实用而极为有效的计算概念—Client/Server(客户/服务器)计算方式,在于它所基于的操作系统功能日益强大,另外其赖以为基础的Transact_SQL语言在SQL基本语言上也得到扩展从而使得SQL语言支持的RDB(关系数据库)愈加受到青睐。Microsoft SQL Server的高速、高度安全和稳定性以及它不仅在昂贵的硬件上功能强劲而且在低廉的硬件上运行也同样自如而且威力不见减—高性能价格比,使它成为今天数据库开发的首选。
Microsoft Access虽然简单易用,但它的功能、安全性与Microsoft SQL Server 2000相比则很欠缺,使用方式不够灵活。
综合以上对各种不同类型的Web技术的对比分析,了解与认识,最后决定选择JSP+SQL SERVER 2000组建我的动态网站。之所以选择JSP作为系统的Web开发技术,原因如下:它不但具有简单,开发速度快等特点,并且与Microsoft公司的操作系统以及后台数据库紧密结合,可以充分发挥其效能。正是因为JSP的种种优良特性,很多公司,软件开发组织以及网站开发爱好者都纷纷选择了JSP作为开发动态网站的工具,一大批使用JSP开发的网站涌现了出来。
(1)管理员部分
管理员起的是统筹管理的作用,全方位管理本系统的数据资料,不但要有查询各种资料的权限(系统用户、影碟相关资料、统计信息),还应当有插入新数据(新用户、影碟资料、进货情况),删除垃圾数据(非法用户、废弃用户名)的权限。在经营方面需要记录的各种信息也应当存储在系统中,易于插入、查找、删除。比如供应商的资料,客户的资料,比较热门的影碟。在业务方面,主要管理了影碟的借阅和归还。在借阅环节需要记录客户的相关信息、影碟编号、借出时间,并且要区分客户已经预约和没有预约的两种情况;在归还的环节则要显示借出的时间
(2)用户部分
用户所关心的主要问题是登录站点后能否和到店内一样,清楚地查看影片相关信息,比较热门的新片是什么,影片租赁的计费方式。如果是经常光临的店,则希望能得到一定比例的优惠。大量借阅的用户可能会希望系统保存他们的借阅历史,记录影片是否已经归还了。客户查看影片后应该可以执行预约功能,并且如果操作错误或者想法改变了能够解除锁定。
1 .管理员登录主界面
管理员进入本系统时需要登录,在主界面需要输入正确的用户名和密码才能登录到管理界面;管理员分为普通管理员和超级管理员,普通管理员只能执行查询和影片的借还功能,不能对数据库做过多的操作;在验证数据前,提交表单时在前台先判断用户名和密码是否为空,如果为空则提示用户不能输入空值;验证成功即可登录成功,否则提示错误和重新登录。管理员登陆界面如图3.1:
图3.1 管理员登陆界面
2 .管理员登录成功的操作界面
输入管理员名和密码,如果用户身份验证成功,则会出现欢迎界面。如图3.2:
图3.2 管理员成功登陆后管理页面
(1)权限管理
a.管理员部分
A.新增管理员:输入一个新的用户名和密码(包含是否为空的判断,下面的输入部分都包含该判断,如果为空则弹出一个不能为空的提示,请用户重新输入)后,经过数据库在中没有重复用户名的验证,就可以成功添加该用户。如管理员添加如图3.3:
图3.3 管理员添加界面
B.删除管理员:输入一个用户名,如果数据库中存在则可以成功删除该用户。
C.查询管理员:可以浏览系统分配的管理员情况。
b.用户部分
A.删除用户:输入一个用户名,如果数据库中存在则可以成功删除。
B.查询用户:可以浏览系统授权的用户情况。
C.查看全部:显示所有注册用户。
(2)碟片管理
a.租赁管理部分
A.借碟:进入借阅页面后分为已预约和未预约两部分。如果已经预约用户需要输入用户名和碟片编号,如果在预约表中存在这个数据,则提示下一步,以完成借阅工作。在碟片借出过程中,需要修改影片表中的状态来标记该片已经借出,修改影片借阅次数;如果没有预约,则输入影片编号、用户名来执行借阅(在此过程中如果不确定是否有此影片存在,则可以先执行查询,查询为下拉列表形式的分类查询:中文片名、英文片名、影片类型、影片导演)。借阅页面如图3.4:
图3.4 借阅页面
B.还碟:在输入影片编号后显示借出的时间,以便计算租金,入库后修改影片状态为未借出。还碟界面如图3.5
图3.5 还碟页面
b.资料管理部分
A.新增影片:在输入框中填写中文名称、英文名称、导演、类型、长度、主演、编号、故事情节,状态默认为”1”,借出次数默认为“0”。
B.删除影片:输入影片编号,如果影片在数据库总存在并且未被借出,则可以成功删除,否则不能删除。
C.查询影片:该页面顶部显示多种类型查询的链接,下面可以输入中文名称、英文名称、导演等进行查询。
D.供应商:该页包含供应商的插入、删除和查询。
c.购入情况
A.购买碟片:输入进货数量、金额、供应商。
B.查看:显示购买碟片表的内容。
(3)信息统计
a.关于影片
A.借出情况:显示共有几部影片被借走,可以输入影片编号来查看所借出碟片的情况,如借出人,借出时间等。
B.热门影片:显示借出次数最多的前五部影片,并且包含查看影片详细情况的链接。
C.预约情况:显示当前被预约的碟片。
b.关于用户
A.大客户:显示借片次数列在前五位的客户信息。
(4)关于本店
a.系统信息:显示系统当前状况:管理员数、用户数、交易次数、完成的交易、预定的交易、碟片总数、借出片数、使用者、版权、系统描述、联系方式。
b.发布信息:管理员可以发布优惠信息、资费变更信息。
c.分类显示:显示按照影片类型分类的链接。
1.用户登录主界面
任何用户都可以登录该页,该页主要包含四个部分:影片租赁店基本信息、查看影片基本资料、注册、登录。作为游客的用户可操作的不包含登录部分,注册用户则可以登录到更高级的操作界面。注册部分需要填写的资料为用户名、密码、性别、E-mail、电话、OICQ,除用户名、密码、电话外的部分可以选择填写,经验证用户名没有重复后,显示注册成功。非管理员的用户登陆界面如图3.6:
图3.6 用户登陆界面
2.用户登录成功的操作界面
(1)个人信息
a.信息修改:用户可以修改除用户名以外的各项资料,点提交即可修改成功。
用户个人注册信息如图3.7:
图3.7用户个人注册信息界面
b.借阅历史:用户可以查看自己曾经借过的影片信息,有是否归还的标记。
(2)查询预约
a.查询
A.查找全部影片资料(显示按照影片类型分类的链接)。
B.分类查找(中文片名、英文片名、影片类型、影片导演)。
C.热门影片。
b.预约
A.预约自己想借阅的碟片(成功后提示用户需要记住影片编号,以便到店内取碟)。
B.查看或取消预约(用户可以查看自己的预约情况,并用权利取消预约)。预约查询如图3.8:
图3.8 预约查询界面
c.借阅必读
A.资费标准
B.优惠活动
用户成功登陆的界面操作如图3.9:
图3.9 用户界面
数据库在一个系统中占有非常重要的地位,它不仅能够记录下日常的商务往来,还能通过其分析供求趋势,从而促进商务进步.数据库是建立在用户及系统的需求分析基础上的.通过以上的需求分析,总结出以下的数据项和数据结构:
1.数据项和数据结构:
(1)管理员表:包括系统管理员和普通管理员登录时所需信息,如管理员(用户名,密码,权限)。系统管理员权限值是1,普通管理员权限值是0。管理员信息表(adm)如下表3.1
表3.1
列 名 |
数据类型 |
长 度 |
是否主键 |
允许为空 |
功能描述 |
adm |
char |
20 |
是 |
否 |
管理员名称 |
Password |
char |
6 |
否 |
否 |
管理员密码 |
power |
bit |
Null |
否 |
是 |
管理员权限 |
(2)借阅表:包括借阅时需要保存的相关信息,如借阅(用户名,影碟编号,借出日期,状态)。借出日期为记录租赁时的系统时间。状态显示影碟片是在店还是已经借出。在店用1表示,借出用0表示。租赁表(borrow)如下表3.2
表3.2
列 名 |
数据类型 |
长 度 |
是否主键 |
允许为空 |
功能描述 |
Uname |
char |
10 |
是 |
否 |
用户名称 |
Number |
Char |
50 |
否 |
否 |
电影编号 |
Date |
Datetime |
Not null |
否 |
否 |
租赁时间 |
Biaozhi |
Bit |
null |
否 |
是 |
租赁状态 |
(3)用户表:包括用户相关信息,如用户名,密码,性别,Email,电话号码,OICQ,租赁次数等。用户信息表(cli)结构如下表3.3所示。
表3.3
列 名 |
数据类型 |
长 度 |
是否主键 |
允许为空 |
功能描述 |
Uname |
char |
10 |
是 |
否 |
用户名称 |
upassword |
char |
10 |
否 |
否 |
用户密码 |
Sex |
char |
2 |
否 |
否 |
用户性别 |
|
char |
30 |
否 |
是 |
电子邮件 |
Pho |
char |
30 |
否 |
是 |
电话号码 |
Oicq |
char |
40 |
否 |
是 |
OICQ |
Btime |
int |
null |
否 |
是 |
租赁次数 |
(4)预约表:包括用户预约后需要保存的信息预约,如预约(用户名,影片名,影片编号)。预约表(bespeak)如下表3.4
表3.4
列 名 |
数据类型 |
长 度 |
是否主键 |
允许为空 |
功能描述 |
Uname |
char |
50 |
是 |
否 |
用户名称 |
Fname |
char |
100 |
否 |
否 |
电影名称 |
Number |
char |
40 |
否 |
否 |
影碟编号 |
(5)影片表:包括影碟相关资料,以及影碟状态,借出次数,如影片(中文名称,英文名称,导演,类型,长度,主演,故事情节,编号,状态,借出次数)。状态显示影片是在店还是已经借出。在店用1表示,借出用0表示。影片表如下表3.5
表3.5
列 名 |
数据类型 |
长 度 |
是否主键 |
允许为空 |
功能描述 |
Fname |
char |
100 |
是 |
否 |
影片中文名称 |
Ename |
char |
100 |
否 |
否 |
影片英文名称 |
Dir |
char |
100 |
否 |
是 |
导演 |
Grade |
char |
100 |
否 |
是 |
类型 |
length |
char |
100 |
否 |
是 |
长度 |
Act |
Varchar |
1000 |
否 |
是 |
主演 |
Stor |
Varchar |
4000 |
否 |
是 |
故事情节 |
Number |
char |
50 |
否 |
是 |
影片编号 |
Point |
Bit |
Null |
否 |
是 |
状态 |
Times |
Int |
null |
否 |
是 |
借出次数 |
(6)进货表:包括所进货品的相关信息,如进货(影碟数目,投入金额,进货时间)。进货时间为进货操作是的系统时间。进货表(buydiscs)如下表3.6
表3.6
列 名 |
数据类型 |
长 度 |
是否主键 |
允许为空 |
功能描述 |
dname |
Int |
Null |
是 |
是 |
影片名称 |
dMoney |
Int |
Null |
否 |
是 |
投入金额 |
Bdate |
Datetime |
Null |
否 |
是 |
进货时间 |
Pname |
Char |
500 |
否 |
否 |
供应商名称 |
Aname |
Char |
30 |
否 |
否 |
管理员名称 |
(7)供应商表:包括供应商的相关资料,如供应商(名称,地址,电话)供应商表(provider)如下表3.7
表3.7
列 名 |
数据类型 |
长 度 |
是否主键 |
允许为空 |
功能描述 |
pname |
char |
500 |
是 |
否 |
供应商名称 |
Paddr |
char |
200 |
否 |
否 |
地址 |
Ppho |
Char |
50 |
否 |
否 |
电话 |
Ofname |
char |
50 |
否 |
否 |
购买次数 |
(8)发布信息表:包括管理员优惠信息和影片信息:信息表(youhui)(优惠信息、影片信息)。如下表3.8
表3.8
列 名 |
数据类型 |
长 度 |
是否主键 |
允许为空 |
功能描述 |
Way |
varchar |
100 |
否 |
否 |
影片信息 |
Price |
varchar |
100 |
否 |
否 |
优惠信息 |
SQL 的全称是Structured Query Language,即结构化查询语言。SQL语句可以从关系数据库中获得数据,也可以建立数据库、增加数据、修改数据。1986年ANSI采用SQL语言作为关系数据库系统的标准语言,后被国际化标准组织(ISO)采纳为国际标准。SQL语言使用方便、功能丰富、简洁易学,是操作数据库的工业标准语言,得到广泛地应用。例如关系数据库产品DB2、ORACLE等都实现了SQL语言。同时,其它数据库产品厂家也纷纷推出各自的支持SQL的软件或者与SQL的接口软件。这样SQL语言很快被整个计算机界认可。
SQL语言是一种非过程化语言,它一次处理一个记录集合,对数据提供自动导航。SQL语言允许用户在高层的数据结构上工作,而不对单个记录进行操作。SQL语言不要求用户指定数据的存取方法,而是使用查询优化器,由系统决定对指定数据存取的最快速手段。当设计者在关系表上定义了索引时,系统会自动利用索引进行快速检索,用户不需知道表上是否有索引或者有什么类型的索引等细节。
CREATE TABLE [dbo].[adm] (
[name] [char] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[password] [char] (6) COLLATE Chinese_PRC_CI_AS NULL ,
[power] [bit] NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[bespeak] (
[uname] [char] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[fname] [char] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[number] [char] (40) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[borrow] (
[uname] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[number] [char] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[date] [datetime] NOT NULL ,
[biaozhi] [bit] NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[buydiscs] (
[dnum] [int] NULL ,
[dmoney] [int] NULL ,
[bdate] [datetime] NULL ,
[pname] [char] (500) COLLATE Chinese_PRC_CI_AS NULL ,
[aname] [char] (50) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[cli] (
[uname] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[upassword] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[sex] [char] (2) COLLATE Chinese_PRC_CI_AS NULL ,
[email] [char] (30) COLLATE Chinese_PRC_CI_AS NULL ,
[pho] [char] (30) COLLATE Chinese_PRC_CI_AS NULL ,
[oicq] [char] (40) COLLATE Chinese_PRC_CI_AS NULL ,
[btime] [int] NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[film] (
[fname] [char] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[ename] [char] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[dir] [char] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[grade] [char] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[length] [char] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[act] [varchar] (1000) COLLATE Chinese_PRC_CI_AS NULL ,
[stor] [varchar] (4000) COLLATE Chinese_PRC_CI_AS NULL ,
[number] [char] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[point] [bit] NULL ,
[times] [int] NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[provider] (
[pname] [char] (500) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[paddr] [char] (200) COLLATE Chinese_PRC_CI_AS NULL ,
[ppho] [char] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[ofname] [char] (50) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
关于环境变量:如果要添加的环境变量原来已经存在就要选择编辑,编辑则需要在变量值后面先加个分号;如果不存在就要选择新建。下面的几个工具配置也都遵循这个规则。
安装JDK1.5,安装完之后设置环境变量:鼠标右键-> 我的电脑->属性->高级->环境变量->系统变量(S):
(JDK1.5的安装目录为C:\Program Files\Java\jdk1.5.0_09。)变量名:JAVA_HOME,变量值:C:\Program Files\Java\jdk1.5.0_09;变量名:PATH,变量值:%JAVA_HOME%\bin;变量名:CLASSPATH,变量值:.;%JAVA_HOME%\lib。
安装MyEclipse和Eclipse的集成软件。
安装Tomct6,安装完之后,设置环境变量:我的电脑->属性->高级->环境变量->系统变量(S):(Tomcat的安装目录为C:\apache-tomcat-6.0.10)变量名:CATALINA_HOME,变量值:C:\apache-tomcat-6.0.10;变量名:CATALINA_BASE,变量值:C:\apache-tomcat-6.0.10;修改环境变量中的CLASSPATH,把Tomcat安装目录下的lib下的servlet.jar追加到CLASSPATH中去。
安装SQL Server 2000个人版,使用混合身份验证
1.判断是否是正整数的javascript脚本
在管理员查找大客户、添加购入情况时,输入一个数字,需要判断其输入是否正确,再对数据库进行操作。
function isPosInteger(inputVal)
{
var oneChar
inputStr=inputVal.toString()
for (var i=0;i
{
oneChar=inputStr.charAt(i)
if (oneChar<"0" || oneChar>"9")
{
return false
}
}
return true
}
本系统采用JDBC驱动直接连接数据库,实现连接的顺序为:顺序注册驱动程序,设置连接字符串,建立连接。
本系统就要使用SQL Server的JDBC-ODBC bridge driver连接数据库
DbConnection.java文件内容如下:
package db;
import java.io.PrintStream;
import java.sql.*;
public class dbConn
{
String sDBDriver = null; //数据库驱动
String url = null; //数据库信息
String user = null; //用户名
String password = null; //密码
Statement stmt = null; //SQL语句
Connection conn = null; //数据库连接
ResultSet rs = null; //结果集
* -----------------------------------------------
* 功能说明
* 建立数据库连接
-------------------------------------------------*/
public dbConn()
{
sDBDriver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
url = "jdbc:sqlserver://localhost:1433;database=DISC";
user = "sa";
password = "sunzw";
stmt = null;
conn = null;
rs = null;
try
{
Class.forName(sDBDriver).newInstance();
System.out.println("");
}
catch(Exception exception)
{
exception.printStackTrace();
}
}
* -----------------------------------------------
* 功能说明
* 执行SQL查询
* 输入参数:
* s string SQL语句
* 返回参数
* rs ResultSet 记录集
-------------------------------------------------*/
public ResultSet executeQuery(String s)
{
try
{
conn = DriverManager.getConnection(url, user, password);
Statement statement = conn.createStatement();
System.out.print("");
rs = statement.executeQuery(s);
}
catch(SQLException sqlexception)
{
System.err.println(sqlexception.getMessage());
System.out.println(s);
}
return rs;
}
* -----------------------------------------------
* 功能说明
* 执行更新
* 输入参数:
* s string SQL语句
-------------------------------------------------*/
public void executeUpdate(String s)
{
stmt = null;
rs = null;
try
{
conn = DriverManager.getConnection(url, user, password);
Statement statement = conn.createStatement();
statement.executeQuery(s);
statement.close();
conn.close();
}
catch(SQLException sqlexception)
{
System.err.println(sqlexception.getMessage());
}
}
* -----------------------------------------------
* 功能说明
* 关闭statement
-------------------------------------------------*/
public void closeStmt()
{
try
{
stmt.close();
}
catch(SQLException sqlexception)
{
sqlexception.printStackTrace();
}
}
/*-----------------------------------------------
* 函数名 closeConn
* 完成者 孙宗伟
* 完成日 2007.05.08
* -----------------------------------------------
* 功能说明
* 关闭数据库连接
-------------------------------------------------*/
public void closeConn()
{
try
{
conn.close();
}
catch(SQLException sqlexception)
{
sqlexception.printStackTrace();
}
}
}
实现分页步骤如下:
(1)设置PageSize,即每页显示的记录数量。
(2)计算出需要查找显示的记录的数目。
(3)查找需要显示的记录如果不为空,则循环显示。
<%
if (Page != 1) {
out.print(" 第一页");
out.print(" 上一页");}
if (Page != totalPage) {
out.print(" 下一页");
out.print(" 最后一页");}
%>
输入页码:
页数:
<%=Page%>/<%=totalPage%>
提交表单后要判断所选择的查找方式是什么,再对数据库进行操作.我采用字符串比较的方法,对可能的选择进行逐个排除.判断部分程序如下:
String inputs1= request.getParameter("inputs");
String select2="中文名称";
String select3="英文名称";
String select5="影片导演";
String select4="影片类型";
if(select1.compareTo(select2)==0)
{
sql="select * from dbo.disc where fname='"+inputs1+"'";
rs=stmt.executeQuery(sql);
}
else
if(select1.compareTo(select3)==0)
{
sql="select * from dbo.disc where ename='"+inputs1+"'";
rs=stmt.executeQuery(sql);
}
else
if(select1.compareTo(select4)==0)
{
sql="select * from dbo.disc where grade='"+inputs1+"'";
rs=stmt.executeQuery(sql);
}
else
{
sql="select * from dbo.disc where dir='"+inputs1+"'";
rs=stmt.executeQuery(sql);
}
在系统基本设计完成之后,需要对其进行必要的测试。本系统首先采用人工测试的方式对系统的最小单元“模块”进行单元测试;然后再对整个系统进行系统测试。
对该模块的各个功能进行了黑盒测试和白盒测试相结合的测试方法,黑盒测试也称功能测试或数据驱动测试,它使在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用。在测试时把程序看作一个不能打开的黑盒子,完全不考虑程序内部结构和内部特性。白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序。对系统是否可以正常完成任务以及输入的数据是否有溢出现象进行了检测。采用模块边界条件测试。输入一些边界值,看看系统统是否仍然能够继续正常的运行。边界值包括有效的边界值和无效的边界值。对查询影片进行测试,数据库文件没包含进去。如果出错是是某个列名无效,那么可能就是变量引用有问题。如果此句在执行时出现上面的问题,那么有可能就是后面id的值有问题,对于这样的问题,在之前不知道错误出在哪里,不防先将id置1,如果错误没了 ,那么就是后面字符串有问题,查阅相关影片,看字符串与变量是如何相连的,这样,问题就得到解决。在测试过程中发现了很多错误,再经过自己的进一步调试最终使本模块中的功能都能够正常运行。
对该模块的各个功能进行了黑盒测试。主要针对系统各个功能能否正常运行进行了测试。对查询用户功能进行测试,知道用session来记录注册的用户的姓名,然后在那一列显示出来,但是后来发现,那样做,把以前的记录也都显示成了现在的,通过思考,发现,应该把session里的东西放到数据库然后显示出来,所以在cli表里,又加了一列,就是用户租赁次数的列,问题得到解决。其他功能在测试过程中程序都能够正常运行并完成既定任务,我对测试的结果十分满意。
对该模块主要进行了白盒测试。在测试中主要针对向数据库中插入的数据是否有溢出现象,以及输入数据的合法性进行考察。通过测试发现了一些溢出现象,经过自己的进一步调试最终使程序可以圆满完成任务。在分页显示的操作进行测试,循环没弄好,页码在变但是内容没变,后来发现记录集的页数不对。加了一条页码设置的语句就好用了。 对查询功能进行测试,在测试过程中程序都能够正常运行并完成查询任务,我对测试的结果十分满意。
对该模块同样进行黑盒测试与白盒测试相结合的方法,对输入数据的合法性和各个功能能否正常完成任务进行检测。通过这个测试验证软件的灵活性:Java语言本身就具有一次编译到处执行特点,跨平台运行的特点在B/S结构中得到了更好的体现,本系统不受基本不受环境的影响,尤其是对客户端的要求很低。在用session对象来存用户登录记录时,由于在同一个界面定义记录集变量名时用了一样的记录集名,所以造成了混乱,使得显示的登录用户信息跟实际的不符,后来,定义了两个session对象并将其显示,发现两个变量并不是一个记录集里的,查看源代码,发现是两个记录集名字相同导致了这一结果。通过测试发现了系统的一些漏洞,经过自己的完善,最终使系统可以正常运行。
当把程序拿到别的机器上运行时,出现错误提示,将字符串转换为datetime,后来经过请教原来在不同机器上系统的默认时间格式不同导致插入的数据类型与数据库定义的数据类型不一致,通过查询利用一个格式转换函数使问题得到解决。在调试过程中,发现有些页面总提示出错,后来发现是脚本问题,有些Javascript脚本没用,但是没有删掉就会出现错误提示。
系统测试是组装软件的系统测试技术,按设计要求把通过单元测试的各个模块组装在一起之后,进行系统测试以便发现与接口有关的各种错误。集成测试基本上可以分成两种方式,一种是在单体测试的基础上一次将所有的模块集成到一起,另一种是逐渐增加集成的模块的数量。后者又分成自顶向下结合和自底向上集成两种过程。本系统采用自底向上集成的方式,逐渐将小的模块不断的添加到顶层模块中。经过单元测试,系统各个模块已经可以正常运行,现在将各模块看成一个完整系统来测试。通过测试发现各模块间传送的数据不完全正确,这主要是由编码及数据库的设计造成的,经过自己的调试最终可以使系统正常的实现。
按照标准的软件开发流程,本系统的基本功能已经实现,达到了计划的效果。管理员和用户可以在任何能上网的地方对这个系统进行操作。大大方便了管理员和用户,提高了管理员的工作效率。
由于对JSP的M2模型应用不熟练,本系统采用了JSP的M1模型设计,M1模型使得JSP页面中嵌入了大量的JAVA代码,使编程变得复杂了些,使得JSP页面即要负责界面显示又要负责物理逻辑,虽然整个设计功能很明确,但是各个角色的分工不是很明确。
通过这次毕业设计对软件开发流程有了更清晰的认识,体会到各个流程的要点和应注意哪些问题。开发过程中设计很重要,概要设计和详细设计设计好了,编码就容易完成了。因此,在概要设计和详细设计部分用了很多时间。设计层次清晰,功能明确以后测试才可能少出问题,这一点在设计时非常重要,以免软件做到最后测试出现太大问题而需要大量返功,这样就影响软件在计划时间内完成。开发这个软件应用了就JAVA、JSP、Servlet、HTML等知识。通过这个项目练习,对这些知识有了进一步的认识。使这些知识与应用更有效的结合。总之,在这次毕业设计中学习了很到软件开发知识,软件开发能力也得到了提高。
在三个月的毕业设计中,衷心地感谢我的毕业设计指导老师——姜月秋老师对我毕设的悉心指导。
其次,感谢系里的各位老师为我们此次毕设所做的一切工作,包括在毕设过程中给我们提供了一个宽松的环境,让我安心进行毕业设计。其间老师还为我检查毕业设计,并提出了中肯的建议,给了我很大的帮助,在这里衷心的感谢姜月秋老师,感谢她的言传身教,无私奉献,孜孜不倦,关怀备至。我会用自己今后的努力为作为对老师最好的回报。
同时也感谢我的母校——沈阳理工大学提供给我们一个自我磨练的机会,给了我们一次增加软件开发经验的机会,虽然这并不是真正意义上的软件开发,但至少让我们充分体会到了软件开发的具体流程,使我们受益非浅。
当然也感谢在此期间给过我帮助的同学和朋友。他们为我提供了许多学习资料,和在设计理念上的帮助,对我这次毕业设计起到了很大的作用。
在此,我由衷的谢谢。
[1] 孙国恩.基于WEB环境的MVC设计模式应用[J].广州:大众科技.2006(1)
[2] 曾霞霞,郑岩松. 基于JSP技术特点的几个应用实现[J]. 福建电脑.2006(1):142-143
[3] 于孜清,冉蜀阳,李胜. Design and Implementation of Teaching Material Management System Based on MVC Pattern[J].Microcomputer Development.2006(1)
[4] Gayle Coffman.SQL Server 7 参考手册[M].北京:北京希望电子出版社,1999.
[5] Joseph Gill,Legand Burge,Moses Garuba. The Design and Implementation of the Spacecraft Navigation & Ancillary Information Web Service[C]. Las Vegas,NV(US): [新华出版社],2004.
[6] 张海藩.软件工程导论(第四版)[M].北京:清华大学出版社,2003.
[7] Hall,M [M] .赵学良编译.Servlet与Jsp核心编程.北京:清华大学出版社,2004.
[8] 施伯乐,丁保康,王卫.数据库系统教程(第2版)[M].北京:高等教育出版社,2003.
[9] 汪孝宜,刘中兵,徐佳晶.JSP数据库开发实力精粹[M].北京:电子工业出版社.2005.
[10]Document Object Model[EB/OL].http://java_sun.com/j2ee/1.4/do
cs/tu-torial/doc
[11] Qusay H.Mahmoud. Web Application Development with JSP and XML[J].US.2001.
With the development of Web technology and the advent of the era of e-commerce, People were no longer satisfied with the establishment of static information is released to the website, more often needs to be interactive with the user. It also provides a background to the management and control of dynamic websites.
Dynamic Website Development
Early dynamic web site development and the use of technology is the CGI-BIN interface. Developer interface associated with the preparation of separate procedures and Web-based applications, the latter through the Web server to call the former. Such technologies for the development of serious scalability problems -- every one of the new procedures require CGI in a new server process. If the number of concurrent users to visit the procedures, which will process the Web server depletion of the resources available to all, until its collapse.
To overcome this shortcoming. Microsoft made Active Server Pages (ASP) technology, The use of technology, "plug-ins" and the API to simplify Web application development. ASP and CGI, the advantage is to be included HTML labels can directly access the database and use of the unlimited expansion of ActiveX controls, in the preparation of procedures more flexible. But the technology is basically confined to the Microsoft operating system platform. work environment is Microsoft's IIS application structure, So ASP technology is not easy to achieve cross-platform Web server program development.
Hypertext Preprocessor (hypertext preprocessor) PHP is dynamic web site development and technology and ASP similar, is also an embedded HTML file server-side scripting language. Most of its syntax and C, Java, Perl and other similar language, and formed its own unique style, use of the language Web programmers can quickly develop dynamic web. PHP in most Unix platforms, GUN / Linux and Microsoft Windows platform can run. PHP's main advantages : easy installation, simple learning process; Database Connection convenience, compatibility; Scalability is strong. can be conducted, such as object-oriented programming. But PHP, there are some weaknesses, mainly PHP is an interpreted language that does not support multithreading structure, support platform and connecting to the database are limited, particularly in support of standards exist abnormal, for some e-business applications, PHP is not fit.
Some technologies, such as Java Servlets technology, use of the technology it is easy to use interactive Java language server code. A Java Servlets is a Java-based technology in the operation of the server (A pplet different, the latter running in the browser side). Development staff prepared the Java Servlets. to receive from the Web browser HTTP request, dynamically generated response (you may need to complete the database inquiries such a request), Then this includes HTML or XML response to a browser. This technology for a general page designers to easily run to grasp is very difficult. By using this method, the entire page must have the Java Servlets were produced. If Web developers or managers want to adjust pages, have to edit and recompile the Java Servlets.
Sun Microsystems (Sun Microsystems Inc.) In Web server, application servers, transaction systems, and development tools vendors widely support and cooperation, Integration and the balance has been in existence for the Java programming environment (such as Java and Java Servlets Beans), the technical support and tools generated a new, Web-based application development process -- JavaServer Pages technology (JSP). This dynamic web site development and the following are the main technical features :
To any Web or application server to run; Separated from the application logic and the pages display; to the rapid development and testing; simplify the development of Web-based interactive applications for the process.
JSP technique
In order to facilitate the rapid and dynamic development of the website, JSP in the following areas have made improvements, as the rapid establishment of cross-platform of choice for dynamic program.
Using JSP technology, Web page designers can use HTML or XML logo design and formatting the final pages, and the use of logos or JSP feet originally generated pages of dynamic content (content of the request is based on the changes,For example, requests for account information or specific bottle of wine prices etc.). Generated by the logic of the marking and packaging JavaBeans components, and tied up the script, all the scripts run in the server. As the core logic was encapsulated in marking and JavaBeans. Therefore, the management and Web page designers, and editors can use JSP pages, without affecting the content of the formation.
The server, JSP engine identification and interpretation of JSP scripts generated by the content of the request (for example, Through the visit JavaBeans components, the use of JDBC access to the database or include files), and will result in HTML (or XML) pages in the form sent back to the browser. This will help authors to protect their code, but also ensures that any HTML-based Web browser completely availability.
2. Reusable Components
Most dependent on JSP pages of reusable, Cross-platform components (JavaBeans or Enterprise JavaBeans components) Application procedures to implement the required processing complex. Developer to share and exchange implementation of the general operation of the components, or make more of these components to the user groups and customers use. Component-based methods to accelerate the overall development process. and various organizations in making their existing skills and optimize the results of the development efforts be balanced.
3. Using logos
Web page developers are not familiar with the scripting language programming staff. JSP Packaging many functions that are user-friendly. JSP and related XML tag for generating dynamic content needs. JSP standard marking to visit and examples of JavaBeans components, or set up retrieval component attributes, Applet download, and the implementation of other methods more difficult and time-consuming coding functions.
4. Adaptation Platform
Almost all platforms support Java, JSP + JavaBeans almost all platforms and unhindered access. From one platform to another transplant a platform, JSP and JavaBeans or even recompile, because of Java byte code is standard and platform-independent.
5. Database Connection
Java connecting to the database technology is JDBC, Java JDBC driver through databases connected with the implementation of inquiries, and data extraction operation. Sun has also developed the JDBC-ODBC bridge, use of this technology Java programs can access ODBC drivers with the database, Most database systems with ODBC driver, So Java programs can visit such as Oracle, Sybase, MS SQL Server and MS Access and other database.
In addition, through the development of the logo, JSP technology can be further expanded. Third-party development and other personnel functions can be used to create your own logo for. This makes Web pages developers to use familiar tools and the same logo as the implementation of specific functional component to Progressive firms.
JSP technology easily integrated into a variety of applications architecture, using existing tools and techniques and can be extended to support enterprise-class distributed applications. Using Java technology as part of the family. and the Java 2 (Enterprise Architecture) an integral part of JSP to support highly complex Web-based applications.
Because of the built-in JSP pages scripting language is based on Java, All the JSP pages have been compiled into Java Servlets. So JSP pages with Java technology all the advantages, including robust storage management and security. As part of the Java platform, JSP Java programming language with a "one preparation, running around," characteristics.
JSP application model
Using JSP technology, dynamic information from the JSP pages to performance JSP pages from the Web server to install or use JSP application server implementation of the JSP engine. JSP engine for the client JSP pages of the request, and generating JSP pages as the client's response.
JSP pages are usually compiled into Java Servlets, which is a standard Java extension. Pages development staff to visit all of the Java application environment for the use of Java technology scalability and portability. When the JSP pages first to be called, if it did not exist. will be compiled into a Java Servlets category, and stored in the server's memory. This makes the next call on the pages, there would be a very fast server response (to avoid the CGI-BIN for each HTTP request for a new generation of process question).
JSP pages can be included in a wide variety of application architecture or model, which can be used by different agreements, components and format of the Commonwealth. Based on the JSP dynamic information dissemination technology is an open, extensible build dynamic Web pages standards. Regardless of what creation tools, developers can use JSP pages to create portable Web applications, in different Web application servers.
随着Web技术的发展和电子商务时代的到来,人们不再满足于建立各种静态地发布信息的网站,更多的时候需要能与用户进行交互,并能提供后台数据库的管理和控制等服务的动态网站。
动态网站开发技术
早期的动态网站开发技术使用的是CGI-BIN接口。开发人员编写与接口相关的单独的程序和基于Web的应用程序,后者通过Web服务器来调用前者。这种开发技术存在着严重的扩展性问题——每一个新的CGI程序要求在服务器上新增一个进程。如果多个用户并发地访问该程序,这些进程将耗尽该Web服务器所有的可用资源,直至其崩溃。
为克服这一弊端,微软公司提出了Active Server Pages(ASP)技术,该技术利用“插件”和API简化了Web应用程序的开发。ASP与CGI相比,其优点是可以包含HTML标签,可以直接存取数据库及使用无限扩充的ActiveX控件,因此在程序编制上更富有灵活性。但该技术基本上是局限于微软的操作系统平台之上,主要工作环境是微软的IIS应用程序结构,所以ASP技术不能很容易地实现跨平台的Web服务器程序开发。
Hypertext Preprocessor(超文本预处理器),即PHP动态网站开发技术与ASP相似,也是一种嵌入HTML文档的服务器端脚本语言。其语法大部分与C、Java、Perl等语言相似,并形成了自己的独有风格,利用该语言Web程序员可以快速地开发出动态网页。PHP在大多数Unix平台、GUN/Linux和微软Windows平台上均可以运行。PHP的优点主要有:安装方便,学习过程简单;数据库连接方便,兼容性强;扩展性强;可以进行面向对象编程等。但PHP也存在一些弱点,主要是PHP是一种解释型语言,不支持多线程结构,支持平台和连接的数据库都有限,特别是在支持的标准方面存在先天不足,对于某些电子商务应用来说,PHP是不适合的。
还有一些技术,如Java Servlets技术,利用该技术可以很容易地用Java语言编写交互式的服务器端代码。一个Java Servlets就是一个基于Java技术的运行在服务器端的程序(与Applet不同,后者运行在浏览器端)。开发人员编写这样的Java Servlets,以接收来自Web浏览器的HTTP请求,动态地生成响应(可能需要查询数据库来完成这种请求),然后发送包含HTML或XML文档的响应到浏览器。这种技术对于普通的页面设计者来说要轻易地掌握是很困难的。采用这种方法,整个网页必须都在Java Servlets中制作。如果开发人员或者Web管理人员想要调整页面显示,就不得不编辑并重新编译该Java Servlets。
太阳微系统公司(Sun Microsystems Inc.)在Web服务器、应用服务器、交易系统以及开发工具供应商间广泛支持与合作下,整合并平衡了已经存在的对Java编程环境(例如Java Servlets和JavaBeans)进行支持的技术和工具后产生了一种新的、开发基于Web应用程序的方法——JavaServer Pages技术(JSP)。 这种动态网站开发技术主要有以下一些特点:
能够在任何Web或应用程序服务器上运行;分离了应用程序的逻辑和页面显示;能够进行快速的开发和测试;简化了开发基于Web的交互式应用程序的过程。
JSP的技术方法
为了快速方便地进行动态网站的开发,JSP在以下几个方面做了改进,使其成为快速建立跨平台的动态网站的首选方案。
1.将内容的生成和显示进行分离
用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面,并使用JSP标识或者小脚本来生成页面上的动态内容(内容是根据请求变化的,例如请求账户信息或者特定的一瓶酒的价格等)。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在脚本中,所有的脚本在服务器端运行。由于核心逻辑被封装在标识和JavaBeans中,所以Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。
在服务器端,JSP引擎解释JSP标识和脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBC技术访问数据库或者包含文件),并且将结果以HTML(或者XML)页面的形式发送回浏览器。这既有助于作者保护自己的代码,又能保证任何基于HTML的Web浏览器的完全可用性。
2.可重用组件
绝大多数JSP页面依赖于可重用的、跨平台的组件(JavaBeans或者Enterprise JavaBeans组件)来执行应用程序所要求的复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者和客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。
3.采用标识
Web页面开发人员不会都是熟悉脚本语言的编程人员。JSP技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。
4.适应平台
几乎所有平台都支持Java,JSP+JavaBeans几乎可以在所有平台下通行无阻。从一个平台移植到另外一个平台,JSP和JavaBeans甚至不用重新编译,因为Java字节码都是标准的与平台无关的。
5.数据库连接
Java中连接数据库的技术是JDBC,Java程序通过JDBC驱动程序与数据库相连,执行查询、提取数据等操作。Sun公司还开发了JDBC-ODBC bridge,利用此技术Java程序可以访问带有ODBC驱动程序的数据库,目前大多数数据库系统都带有ODBC驱动程序,所以Java程序能访问诸如Oracle、Sybase、MS SQL Server和MS Access等数据库。
此外,通过开发标识库,JSP技术可以进一步扩展。第三方开发人员和其他人员可以为常用功能创建自己的标识库。这使得Web页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来进行工作。
JSP技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且能扩展到支持企业级的分布式应用中。作为采用Java技术家族的一部分,以及Java 2(企业版体系结构)的一个组成部分,JSP技术能够支持高度复杂的基于Web的应用。
由于JSP页面的内置脚本语言是基于Java的,而且所有的JSP页面都被编译成为Java Servlets,所以JSP页面具有Java技术的所有好处,包括健壮的存储管理和安全性。作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。
JSP的应用模型
利用JSP技术,动态信息由JSP页面来表现,JSP页面由安装在Web服务器或者使用JSP的应用服务器上的JSP引擎执行。JSP引擎接受客户端对JSP页面的请求,并且生成JSP页面作为对客户端的响应。
JSP页面通常被编译成为Java Servlets,这是一个标准的Java扩展。页面开发人员能够访问全部的Java应用环境,以利用Java技术的扩展性和可移植性。当JSP页面第一次被调用时,如果它还不存在,就会被编译成为一个Java Servlets类,并且存储在服务器的内存中。这就使得在接下来的对该页面的调用中,服务器会有非常快的响应(这避免了CGI-BIN为每个HTTP请求生成一个新的进程的问题)。
JSP页面可以包含在多种不同的应用体系结构或者模型中,可以用于由不同协议、组件和格式所组成的联合体中。基于JSP的动态信息发布技术是一个开放的、可扩展的建立动态Web页面的标准。不论采用什么创建工具,开发人员都可以使用JSP页面来创建可移植的Web应用,在不同的Web应用服务器上运行。