1、分类号 密级 U D C 编号 本科毕业论文(设计)题 目 基于JSP+SQL的实验室预约系统的设计与实现 独 创 声 明本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议。尽我所知,除文中已经注明引用的内容外,本设计(论文)不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。本声明的法律后果由本人承担。作者签名: 二一年九月二十日毕业设计(论文)使用授权声明本人完全了解滨州学院关于收集、保存、使用毕业设计(论文)的规定。本人愿意按照学校要求提交学位论文的印刷本和电子
2、版,同意学校保存学位论文的印刷本和电子版,或采用影印、数字化或其它复制手段保存设计(论文);同意学校在不以营利为目的的前提下,建立目录检索与阅览服务系统,公布设计(论文)的部分或全部内容,允许他人依法合理使用。(保密论文在解密后遵守此规定)作者签名: 二一年九月二十日学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名: 日期: 年 月 日学位论文版权
3、使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期: 年 月 日导师签名: 日期: 年 月 日华中师范大学学位论文原创性声明本人郑重声明:所呈交的学位论文是本人在导师指导下独立进行研究工作所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。本人完全意识到本声明的法律后果由本人承担。
4、学位论文作者签名: 日期: 年 月 日学位论文版权使用授权书本学位论文作者完全了解学校有关保障、使用学位论文的规定,同意学校保留并向有关学位论文管理部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权省级优秀学士学位论文评选机构将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。本学位论文属于1、保密 ,在_年解密后适用本授权书。2、不保密 。(请在以上相应方框内打“”)学位论文作者签名: 日期: 年 月 日导师签名: 日期: 年 月 日20摘要: 随着科学技术的飞速发展,在21世纪迈入了计算机信息时代,各行各业都存在着庞大
5、复杂的信息需要处理,这就是计算机应用系统开发被广泛开发应用的前提条件。现在几乎所有的学校都建立了属于学校自己的内部网络,为不断满足学校或社会对于信息的高度共享、信息的即时处理和实现各种学校内部事务的信息化管理的需求,学校在主要的应用开放信息平台上构筑了不少高效实用的应用系统,实验室预约系统就是在此基础上建立起来的。 本文论述了实验室预约系统的开发全过程。文章先对实验室预约系统的当前技术及发展前景、开发工具做出简单的介绍,然后对实验室预约系统进行了需求分析、划分功能模块、各个功能模块进行设计与实现以及系统的数据库信息处理、同时对系统实现的关键技术进行详细说明。其主要实现功能有:查询实验室的预约使
6、用情况、进行实验室预约、取消实验室预约,用户资料查看,后台信息管理。实验室预约系统与学校的信息系统相联系,仅对本校教职工开放。 本系统采用了JSP动态网页技术, JavaScript技术以及SQL server 2005数据库等关键技术进行实验室预约系统设计与实现,以Tomcat工具作为数据传递平台,采用JDBC技术访问数据库。关 键 词: 实验室预约;JSP;数据库Abstract:With the developed of technology ,In the 21st century ,human being go into computer information time .Ther
7、e are huge and complex information in All professions and trades need to be done ,that is why computer application systems been done widely. Now, to meet the needs of the sharing massage of the school or society, to fulfill the demands of without delay doing and bring about the information managemen
8、t of the massage of inner event ,to almost every school build its own inner network. School construct a lot of highly active and functional application system on the main application open information platform , lab reservation system is found at this base.This essay relates and analyzes the whole pr
9、ocess of the develop of the lab reservation system. At first , article makes a simple instruction of lab reservation system about used skills , grew history and development tool. Secondly, essay shows requirement analysis, partition function module, design and come true each small function module as
10、 well as database massage doing of system. At the same time, the essay explains some key tech about system. Select the situation of the used lab, reserve lab class, remove lab class, show user information and background information management are been realized. Lab reservation system is connection w
11、ith the information system of school, so the Lab reservation system is only open for teaching and administrative staff in school.Lab reservation system use JSP dynamic page technology, JavaScript skill and SQL Server 2005 database to be make out and bring about. JDBC technology is used for addressin
12、g database. Data are pass on by Tomcat instrument.Key words: Lab reservation system , JSP, Database目录内容摘要i关 键 词iAbstractiiKey wordsii1.引言11.1系统开发的背景11.2系统研究现状与分析11.3系统开发的目的与意义11.4 开发工具以运行环境22.技术简介22.1 Java技术22.2 JSP技术32.3 JavaScript技术42.4 SQL Server 2005概述53系统的功能53.1系统功能概述53.2系统功能特点54. 系统的结构设计64.1 可
13、行性分析64.2 结构设计与流程图65. 系统的详细设计85.1 界面设计85.2 数据库设计125.2.1数据库需求分析125.2.2 数据表的生成135.3 关键技术代码设计146. 系统评价186.1 系统特点与评价18参考文献:191.引言1.1系统开发的背景随着科学技术的发展,人们越来越注重素质教育中动手能力的提高,为了让学习者更加容易的了解知识,更加迅速的掌握知识;让使用者更加方便的应用知识;让研究者更加发现世界“物”的规律,更加深入的研究未知领域,更加扩展的创造有益事物。实验室的使用成为了资源利用的关键,开始了实验室“预约”的历史。通过实验室预约系统可以实现实验室的使用统计与分析
14、分配,此分配结果可提供使用者的使用时间。得益于此的是使用者可以在网络上直接预约,不需要自己亲自到实验室管理处预约安排,也不用担心预约时间冲突而影响使用,预约系统会根据提出预约时间和志愿原则安排实验室的使用权。1.2系统研究现状与分析在当前网络纵横的时代,预约系统是非常普遍的。然而,实验室预约系统却鲜有存在。随着软件语言的发展,JSP,SQL技术也在不断地前进发展。如何使用这些已经趋于完善的技术为我们所服务,已经越来越多的成为软件开发者的研究方向。实验室预约系统是规模很小的软件,人们都将知识与利益相结合,认为它没有太大的利润,而忽略了知识和技术是拿来或者是创造来为人类服务的。人类不应当着眼于相对
15、大的利润而忘记身边的微小服务。JSP技术先对过去的PHP技术或则现在依然流行使用的ASP技术而言,拥有着非常巨大的发展潜力。在各项网站开发技术和计算机电子飞速发展的时代,多样化是必然的发展规律。要求具有很强的兼容性的开发技术是趋势,JSP技术是未来的流行。1.3系统开发的目的与意义预约系统是采用先预约先分配的方式,用户必须使用用户账号和密码登陆,进行时间预约与使用查看。它减少实验室预约者的时间开支,提高实验室使用效率,能使实验室与使用者更和谐。预约系统拥有后台管理人员,从广度上尽可能的使用互联网,最大限度的使用现有资源。同时,方便实验室的管理。由上可知,实验室预约管理系统的实现是非常符合需求的
16、。1.4 开发工具以运行环境开发工具:Dream weaver、JDK、SQL Server 2005数据库、Tomcat、Eclipse 等。运行环境:硬件:AMD Athlon(tm) 64 X2 Dual Core Processor 4000+ CPU2.10 GHZ、896 MB的内存、操作系统为Windows XP 软件:My Eclipse 5.5.1、SQL Server 2005、JDK 6.0、Tomcat 6.0 2.技术简介2.1 Java技术Java语言的发展史是很简短而充满曲折的。1991年,Sun公司开发用于智能消费型电子产品的语言,确定命名为Java语言。由于J
17、ava语言似乎很适合应用与网络编程,1993年,Sun公司将Java语言转向应用于网络市场,Java语言开始了它的网络的发展道路。1995年,Java语言被评为1995年十大优秀科技产品之一,并开始迅猛发展,为网络发展开辟新纪元而被广泛应用。现在,Java语言在Sun公司的研究开发下,更加完善,拥有“互联网上的世界语”的美称。Java语言具有简单性、高效的网络特性、友好的面向对象性、优异的可移植性、良好的健壮性、完善的安全性、多线程性与解释性等特点1以下的都这样改。由于Java语言是采用解释执行的计算机语言,因而Java语言没有兼容低版本计算机语言的负担,是一门新型的易学好用的计算机语言。2.
18、2 JSP技术JSP技术是一种普通静态HTML页面和动态页面输出混合编码来达到实现的目的的技术,其前身是Servlet技术,在运行时态时,JSP将会首先被转换成Servlet,并以Servlet的形态编译运行,在效率与功能上,JSP与Servlet没有差别,JSP技术完全继承Servlet技术的优势,并具有新的优势,因而相对于ASP和PHP而言,JSP具有支持线程、网络高效而且数据安全等性能。常用的JSP技术开发模式有以下三种:,如图1,2,3所示。 图1 纯粹的JSP技术图2 JSP + JavaBean实现 图3 JSP + JavaBean + Servlet实现以下图都这样改。2.3
19、JavaScript技术JavaScript是一种由Netscape的LiveScript发展起来的,一门彻底的面向对象语言,是一种以动态类型来区分大小写的网页脚本语言,主要目的是为了解决服务器端语言,为客户提供更流畅的浏览效果。JavaScript语言有着很多的Java语言的身影,因为JavaScript最初是受Java启发而设计的,语法上有很多类似之处,许多名称和命名规范也是从Java语言处借鉴和扩展。然而实际上,JavaScript的主要设计原则源自Self和Scheme3,它们与Java语言在本质上是不同的。JavaScript在名称上虽然与Java近似,这是出于营销考虑,并在取得Su
20、n公司达成协议的情况造成的结果。从形式上看,JavaScript更像是一门函数式编程语言,而非面向对象的语言。JavaScript语言作为脚本语言,主要给非程序人员使用,同时也没有将其作为程序人员的编程语言进行推广和宣传。JavaScript语言是一门具有非常丰富特性的语言,与其他的编程语言相比,拥有着更为复杂智能语法和语义,以达到高度仿真复杂行为,对象模型极为灵活、开放和强大,具有全部的反射性,能给开发者和使用者带来更好的体验。JavaScript短小精悍, 执行在客户机上,不会造成因为网页的点击率太高而让服务器端罢工,很大程度上提高网页的浏览速度和交互能力,同时能及时响应用户的操作,在提交
21、表单信息时,可做即时的检查,无需浪费时间交由 CGI 验证。2.4 SQL Server 2005概述SQL Server 2005 是Microsoft 公司在数据库领域中推出的较新和现在常用的产品,它具有性能良好、高稳定性、便于管理和易于开发等优势,提供完整的数据管理和分析解决方案,具有良好的可伸缩性等特点,与SQL Server 2000相比,SQL Server 2005 通过提供一个集成的管理控制台,达到管理和监视SQL Server关系型数据库、分析服务、报表服务、集成服务以及通知服务和数据库上的SQL Mobile,从而在很大程度上简化了数据管理的复杂度。同时开放新的内部数据库性
22、能和资源使用的指标,数目之多达70多个。新的动态管理视图(DMV),使得SQL Server 2005数据库和其强大的基础架构具有了更大的透明度和可见性,同时可以实现主动监视数据库的健康,保证其处于高效良好的性能状态;在可用上的,拥有着数据镜像、数据库快照、联机操作和故障转移集群上的创新;在可伸缩性上,由于提供了诸如表分区、快照隔离、64位支持等方面的高级可伸缩性功能,使得能够使用SQL Server 2005构建和部署最关键的应用。3系统的功能3.1系统功能概述通过实验室预约系统,用户进行实验室预约使用时间录入,遵行先预约先安排使用原则,以达到指定实验室使用时间安排情况的目的。在对实验室预约
23、系统分析之后,可以确定系统中有两个参与者,分别为系统管理员,普通用户。系统管理员管理普通用户,可以添加、删除为普通用户建立的账户,可以添加、删除普通用户的基本信息,实现对访问系统权限的管理。普通用户可以提出预约,撤销预约,查询预约情况。3.2系统功能特点系统参与者分为系统管理员和普通用户,系统管理员可实现用户对系统权限的管理,系统提供了有效的用户权限控制管理机制;系统拥有后台管理模块、预约管理模块和用户信息管理模块三大部分,系统充分考虑各个模块之间的关系,多用户并发同时操作时,不会引起冲突,各用户、各模块之间达到高度的数据共享;同时系统提供了丰富灵活的数据查询,从用户方向考虑设计系统,使系统易
24、学好用,界面友好大方。4. 系统的结构设计 4.1 可行性分析可行性研究,就是研究讨论在尽可能短时间内,要以最小的代价,确定问题是否能够得以解决。程序人员在澄清问题定义,即软件“要做什么”之后,不是先要解决问题,而是要确定问题是否值得解决,对于提出的每种问题解决方法,需要从以下几个方面研究及可行性:(1) 技术可行性:根据系统的实现目标来衡量是否具备所需要的技术,考虑使用现有的技术是否能实现此系统。(2) 经济可行性:系统所带来的经济效益是否超过其开发成本,是否能带来最良性的利益。(3) 操作可行性:系统的操作方式在用户组织内是否可行。(4) 管理可行性:现行的管理体制和领导是否具有现代化的管
25、理意识和管理水平,是否能够满足此系统的管理需求。(5) 法律可行性:系统的设计与实现是否会违反法律法规。实验室预约系统在开发前,具体的操作人员和相关工作人员密切沟通,认真听取他们的意见,并吸收他们的建议,接受他们的帮助,系统的开发在相当大的程度上具有一定的实用性和合理性。4.2 结构设计与流程图系统功能层次模块图: 预约系统分为后台管理模块,用户信息管理模块和预约管理模块。后台管理模块可以管理系统管理员和普通用户的添加、删除、修改,以及两者对应的权限。用户信息管理模块可以实现基本信息的添加、删除、修改和查询,但是普通用户只能查询自己的基本信息,系统管理员可以查询全部用户的基本信息,并可进行添加
26、,删除,修改处理。预约管理模块对用户提出的预约进行登记,显示预约安排,可以添加、修改、删除预约。后台管理模块拥有以下功能:添加用户,删除用户,并给系统管理员和普通用户赋系统权限。用户信息管理模块拥有以下功能:添加用户基本信息,删除用户基本信息,修改用户基本信息。预约管理模块功能如下:添加预约,删除预约,修改预约,按预约编号、用户账号、用户名称、课程名称、学期时间、实验室号查询预约情况。在数据库设计上,有用户基本信息表,后台信息情况表,预约情况表。用户基本信息表拥有以下属性列:用户账号,用户名称,所在院系,专业;预约编号,用户账号,用户名称,课程名称,课程号,课堂号,使用时间,周次时间,学期,实
27、验室号,预约时间为预约情况表的属性列。后台信息情况表为用户账号,用户名称,用户密码,用户类型,管理模块,用户权限。各表属性列之间是相互约束的关系。系统功能流程图如下:5. 系统的详细设计5.1 界面设计登陆界面: 此页面进行用户登录处理,如果账号名为空,提示输入“请输入账号”,如果密码为空,则提示“请输入密码” 。主页面: 此页面为用户登录进入系统之后,需要作出操作选择,进行系统使用。 用户资料页面:此页面为普通用户提供查看其本人的用户基本信息,为系统管理员提供查看全部用户的基本信息。同时可做增加、修改、删除用户处理。 用户增加页面: 此页面进行用户信息增加。 查询预约页面:此页面为用户提供预
28、约查询,可按预约编号、用户账号、用户名称、课程名称、学期时间、实验室号、预约时间进行查询。 预约增加页面: 此页面能进行实验室预约,同时能一次性清除已经填写的信息。 预约删除页面:此页面要求输入预约编号、用户账号、用户名称三个信息,同时满足是则是进行撤销预约处理。后台信息页面: 此页面显示用户角色、管理模块以及权限。可进行删除、修改操作。5.2 数据库设计5.2.1数据库需求分析根据实验室预约系统的设计和业务逻辑分析,需要存放以下信息:(1) 用户基本信息:用户账号、用户名称、所在院系、专业等(2) 后台管理信息:用户账号、用户名称、用户密码、用户类型、管理模块、用户权限等(3) 预约情况信息
29、:预约编号、用户账号、用户名称、课程名称、课程编号、课堂编号、实验时间、周期时间、学期时间、实验室号、预约时间。5.2.2 数据表的生成 根据系统数据库需求分析,系统总共3张表,结构定义如下:t_yonghu表:该表存放系统中用户的基本信息,包括用户的账号、名称、院系、专业等内容。名称类型空默认值属性备注yonghuidvarchar(10)NOT NULL主键用户IDyonghunamevarchar(20)NOT NULL用户姓名yuanxivarchar(20)所在院系zhuanyevarchar(20)专业t_houtai表:该表存放系统中用户的权限角色信息,包括用户的账号、名称、密码
30、、类型、管理模块、权限等内容。名称类型空默认值属性备注yonghuidvarchar(10)NOT NULL用户IDyonghunamevarchar(20)NOT NULL用户姓名passwordvarchar(10)NOT NULL密码yonghutypevarchar(20)NOT NULL用户类型modelvarchar(20)管理模块quanxianVarchar(20)NOT NULL权限T_yuyue表:该表存放系统的预约信息,包括预约编号、用户名称、课程名称、课堂编号等内容。名称类型空默认值属性备注yuyueidvarchar(4)主键预约编号yonghuidvarchar(1
31、0)NOT NULL用户IDyonghunamevarchar(20)NOT NULL用户姓名coursenamevarchar(20)NOT NULL课程名称courseidvarchar(10)NOT NULL课程编号coursenumvarchar(2)课堂编号time1varchar(5)NOT NULL实验时间time2varchar(5)NOT NULL周期时间termvarchar(5)NOT NULL学期时间classaddvarchar(10)NOT NULL实验室号yuyuetimevarchar(10)NOT NULL预约时间5.3 关键技术代码设计 数据库的连接配置如下
32、: public static Connection getConn() Connection conn = null;try Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver);conn = DriverManager.getConnection(jdbc:sqlserver:/localhost:1433;databaseName=yuyue,sa, 123);System.out.println(数据库连接成功); catch (ClassNotFoundException e) e.printStackTrace();
33、 catch (SQLException e) e.printStackTrace(); finally return conn; 登陆页面登陆窗口代码: 帐号名 密码 用户类型 普通用户系统管理员在删除预约页面进行撤销预约处理时,使用JavaScript脚本语言进行删除询问处理,代码如下: function funDel(id) flag=confirm(删除确认?); if(flag) document.form1.action=yuyuedelServ?yuyue=+id+&action=delete; document.form1.submit(); 在预约查询页面中,只有一个查询按钮
34、,在其后台的yuyueselServ.java的Servlet文件中,使用了if.else逻辑结构进行数据处理,代码如下:if(action.equals(查询) if(yuyueid!=null) ArrayList arr1;try arr1 = yud.yuyue_selectbyid(yuyueid);request.getRequestDispatcher(./doyuyue/yuyueidsel.jsp).forward(request,response); catch (Exception e) e.printStackTrace(); if(yonghuid!=null) Ar
35、rayList arr2; try arr2 = yud.yuyue_selectbyid2(yonghuid); request.getRequestDispatcher(./doyuyue/yuyueidsel.jsp).forward(request,response); catch (Exception e) e.printStackTrace(); if(yonghuname!=null) ArrayList arr3; try arr3 = yud.yuyue_selectbyname(yonghuname);request.getRequestDispatcher(./doyuy
36、ue/yuyueidsel.jsp).forward(request,response); catch (Exception e) e.printStackTrace(); if(coursename!=null) ArrayList arr4; try arr4 = yud.yuyue_selectbycourse(coursename);request.getRequestDispatcher(./doyuyue/yuyueidsel.jsp).forward(request,response); catch (Exception e) e.printStackTrace(); if(cl
37、assadd!=null) ArrayList arr5; try arr5 = yud.yuyue_selectbyclass(classadd);request.getRequestDispatcher(./doyuyue/yuyueidsel.jsp).forward(request,response); catch (Exception e) e.printStackTrace(); if(term!=null) ArrayList arr6; try arr6 = yud.yuyue_selectbyterm(term);request.getRequestDispatcher(./
38、doyuyue/yuyueidsel.jsp).forward(request,response); catch (Exception e) e.printStackTrace(); if(yuyuetime!=null) ArrayList arr7; try arr7 = yud.yuyue_selectbytime(yuyuetime); request.getRequestDispatcher(./doyuyue/yuyueidsel.jsp).forward(request,response); catch (Exception e) e.printStackTrace(); 在预约
39、查询显示页面中,将会出现多条信息同时显示,由于查询结构都将会显示在同一张页面上,如何传送数据不至于让数据不混淆,达到我们想要的查询结果的,以同时显示预约编号和用户账号查询为例,代码如下:% yuyuevo yuv=new yuyuevo();yuyuedao yud=new yuyuedao(); String yuyueid=request.getParameter(yuyueid); ArrayList arr1=yud.yuyue_selectbyid(yuyueid); String yonghuid=request.getParameter(yonghuid); ArrayList arr2= yud.yuyue_selectbyid2(yonghuid); if(arr1!=null) for(int i=0;i %=yuv.getterm()