0内容提要本图书馆系统基于MVC设计模式,采用四层结构,主要包括:表现层、控制层、业务层、持久层。系统设计使用SSH(Struts2、Hibernate和Spring)三种框架,共分为图书检索、学生信息、通知公告、图书借阅、数据管理五个功能模块。在现今图书馆管理系统已有功能的基础上,本设计添加了记录图书借阅次数功能,为学生检索图书和图书馆采购新书提供参考。论文详细介绍图书馆管理网站的系统功能、业务逻辑和框架、进行数据分析和设计过程,并完成网站的开发与实现。关键词图书管理,Java,MVC模式,SSH框架一、概述当今是一个信息化时代,随着计算机网络技术的发展、数字信息技术的广泛应用,图书馆正在向数字化、电子化和虚拟化的方向发展。大多数院校已经采用电子化的图书管理方式,通过软件和网站进行高效的图书管理活动。使用网站提供服务和管理图书有很多优点,比如:检索方便、安全可靠、信息存储量大、成本低等。这些优点可以提高图书馆的管理效率,方便学生借阅图书和查看个人信息,也利于图书馆和其他部门之间信息的传递和沟通,对于学校的科学化、正规化管理有着重要作用。一个图书馆的正常运转需要处理大量的信息,有所有的学生信息、图书信息,在借阅过程中需要记录的借阅信息、预约信息,以及网站提供的其他服务的相关信息。如此多的数据处理仅靠人工显然效率太低,而且极容易出错,因此智能化、系统化、信息化的图书管理系统十分重要。为了满足图书馆需要的各项服务,网站必须有方便友好的视图界面、简单易学的操作过程、清晰条例的数据条目和稳定安全的数据库管理。目前的网络开发中越来越多的应用了框架和一些成熟的开发模式,这种方法简化了开发过程,提高了开发效率。在使用相应的框架和开发模式后,开发人员可以根据框架要求直接去创建相应的组件,把主要的精力放在具体项目业务逻辑的实现,而非花费时间设计系统结构,进行大量的重复操作。安全性是设计网站最基本的原则,开发者要做好关键数据的加密、防止恶意的请求等工作,保证网站的正常运转。同时网站页面的表单部分必须恰当的使用验证,防止用户的错误操作导致系统抛出异常。评价网站好坏的另一个重要标准是能不能方便的满足用户的需求,即用户使用最简单的操作方式获取最准确的信息,享受最快捷的服务。因此在设计网站时一定要以满足用户的需求为第一原则,时刻考虑用户能够利用开发者所设计的操作步骤使用网站的功能,避免太过华丽、繁杂的页面使用户无法在短时间内找到获取自己想要的信息。二、相关技术简介2.1面向对象编程思想面向对象编程(ObjectOrientedProgramming,OOP)是一种计算机编程架构,同时也是程序开发的方法。对象指类的集合,它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性。面向对象程序设计可看做一种在程序中包含各种独立而又互相调用的对象的思想,每一个对象都能够接受数据、处理数据并将数据传达给其他对象。其中,数据抽象封装,继承,动态绑定是三个最基本的概念。2.2MVC模式简介MVC模式分为3个部分。M是Model,表示数据模型,主要完成系统的逻辑处理,通常可使用可重用的JavaBean来完成业务逻辑。V是View,表示用户界面试图,主要完成与用户的交互,1可以使用Jsp、HTML文件。C是Controller,表示控制器,主要建立模型与视图之间的关联,可以使用Servlet来接受用户的请求并对用户进行响应。MVC有如下特点:(1)多个视图可以对应一个模型;(2)模型返回的数据和显示逻辑分离;(3)应用被分隔为3层,降低了各层之间的耦合,提供了应用的可控制性;(4)MVC更符合软件工程化管理的思想。2.3SSH框架说明SSH是Java的Web开发中常用的3个框架,分别代表Struts2、Spring、Hibernate。Struts2是Java企业级Web应用的可扩展性的框架,是WebWork和Struts社区合并后的产物。它提供了对MVC的一个清晰的实现,包含了很多参与对所有请求进行处理的关键组件,如拦截器、OGNL表达式语言、堆栈等。Spring是轻量级的控制反转和面向切面的容器框架,是为解决企业应用开发的复杂性而创建的。使用控制反转技术,一个对象依赖的其他对象会通过别动的方式传递进来而不是对象自己创建或查找依赖对象,促进了各部分的低耦合。面向切面技术允许通过分离应用的业务逻辑与系统级服务进行内聚性的开发,从而提高程序的运行效率。Hiberante是开源的对象关系映射框架,它对JDBC进行了轻量级的对象封装,使开发人员使用面向对象编程思维来操纵数据库。延迟加载机制是该框架非常重要的一个设计。这种初始化策略旨在一个对象调用它的一对多或者多对多时才将关系对象读取出来,只进行很少的数据库操作请求,因此可以明显的提升数据处理性能。2.4AJAX简介AJAX(AsynchronousJavaScriptandXML),指一套综合了多项技术的浏览器端网页开发技术,可以创建更好更快以及交互性更强的Web应用程序的技术。AJAX通过使用JavaScript的XMLHttpRequest对象来直接与服务器进行通信,在不重载页面的情况器与Web服务器交换数据。2.5DIV+CSS技术div+css是一种网页的布局方法,它有别于传统的HTML网页设计语言中的表格定位方式,可以实现网页页面内容与表现相分离。使用div+css布局,页面代码精简,结构清晰,同时也方便搜索引擎的搜索。这种方法可以将css文件和html分开,有些页面会重复利用到一些css格式,而网页浏览时会记录一部分css格式,因此用户再次访问或在同一网站切换页面时可以提高代码的重用率,提高加载速度。三、需求分析3.1系统功能根据一般图书馆的需要,并结合本系统的具体功能,设计需求共分为以下几部分:(1)图书检索:学生或职工可以进行普通检索、分类检索、借阅次数检索。普通检索为选择检索条件并输入关键词后进行检索,分类检索为根据图书类型查看图书列表,借阅次数检索为根据图书被借阅的次数排序并显示图书列表。(2)学生信息:实现学生登陆、读者留言、个人信息、购书推荐功能学生登录为学生输入学号和密码登录,未登录时不能使用读者留言、查看个人信息和购书推2荐的功能;读者留言为学生登录后输入留言主题和内容进行留言;查看个人信息为学生登录后产看个人学院、专业、借阅条目等信息,并可以修改登录密码;购书推荐为学生登录后填写推荐的图书的信息。(3)公告通知:学生或职工可以查看催还通知、预约通知、学生推荐、新书推荐、新闻通告等信息。催还通知为显示催还列表;预约通知为显示预约列表;学生推荐为显示学生推荐的图书列表;新书推荐为图书馆推荐新购的图书列表;新闻通告为显示图书馆的新闻和通告;(4)图书借还:实现职工登录、借书、还书、续借、挂失功能职工登陆为职工输入序号和密码登录,未登录不能使用借书、换书、预约、挂失等功能;借书、还书、续借、挂失为职工登录后输入学生学号和图书编号完成相应的操作。(5)数据管理:实现系统管理员登录、图书管理、学生管理、网站信息功能系统管理员登录为系统管理员输入员工编号和密码登录,未登录不能使用其他数据管理的功能;图书管理为对图书信息进行增、删、改、查;学生管理为员对学生信息进行增、删、改、查;网站信息更改为系统管理员更改新闻公告、新书推荐中的数据信息。(6)信息检索帮助:该功能为网站的必要组成部分,可以帮助用户方便快捷的查找所需的信息,并向用户提供必要的帮助。所需功能如图3-1所示。图3-1图书管理功能图3.2性能环境操作系统:WindowsXP或Windows7虚拟机:jdk-6-win-i586浏览器:FireFox2.0或IEWeb服务器:ApacheTomcat6.0数据库:MySqlServer6.0工作平台:MyEclipse6.53.3可行性分析开发所需软件和开发包均可通过网络下载获取,Windows操作系统是最常用的计算机操作系统,就目前的开发技术和开发环境所设计系统的功能应该能够达到,利用现有的技术在规定期限内基本能够完成。四、数据库设计4.1E-R图设计网站的数据存储使用MySQL,数据E-R下图所示所示。3图4-1借阅、违规记录E-R图图4-2预约记录E-R图图4-3职工E-R图4图4-4留言记录E-R图4.2关系描述设计根据以上实体图和E-R图,经过转换导出各个关系:学生(学号,姓名,性别,学院,专业,结束权限)图书(编号,名称,作者,出版社,类型,状态,借阅次数)职工(编号,姓名,密码,等级)借书记录(编号,学号,图书编号,时间,截至时间,状态,续借)违规记录(编号,学号,图书编号,缴纳,罚金,原因,时间)留言(编号,学号,密码,主题,内容)五、实现过程在完成需求分析和数据库设计之后,配置JDK环境,导入相应的开发包,并按照以下步骤开始进行设计的具体实现。5.1界面设计根据需求分析所提到功能并结合实际情况,需要创建首页、检索页面、学生服务相关页面、新闻公告页面、图书借还页面、数据管理页面、网站导航页面,其中页面公用的部分可以单独创建,其他页面直接引用即可。5.1.1公用部分公用部分有页面上端的状态栏、主题图片和导航条,其中导航条设计成动态显示即鼠标移到显示所含列表,使得界面更友好,改善用户的体验感受。其中部分JavaScript代码如下:$(function(){$('.item_first').hover(function(){$($(this).next()).show();},function(){$($(this).next()).hide();}).animate().stop(true);});5.1.2首页和网站地图首页是网站的门面,既需要网站整体的风格,同时也应提供必要的服务。在首页设计了快速登录、新书推荐、图书馆新闻公告、快速检索、导航按钮等功能。其中新书推荐和图书馆新闻公告使用JavaScript设计成动态画面,增加首页的信息量,部分JavaScript代码如下:5functionscrolling(){if(o.scrollTop%lh!=0){o.scrollTop+=1;if(o.scrollTop=o.scrollHeight/2)o.scrollTop=0;}else{clearInterval(t);setTimeout(start,delay);}}效果如图5-1所示。图5-1系统首页首页除了标题、导航栏等共用部分之外,在左侧的快速登录部分可以学生或者管理员可以直接登录,登录后分别跳转到个人信息和图书借还页面;左侧新书推荐部分动态显示新书图片,方便读者了解新书信息;右侧上方时快速检索功能,作为使用频率较高的模块放在首页;右侧下方是图书馆新闻模块,动态显示新闻信息。网站地图的功能是将网站所有主要路径显示给用户,方便用户进行浏览系统的结构,提高用户的操作效率。效果如图5-2所示。图5-2网站地图5.1.3图书检索图书检索页面分为三部分,分别为普通检索、分类检索和按借阅次数查看。通过导航条的链接或者左侧的选择面板切换页面。其中分类查找和按借阅次数查看通过AJAX发送异步请求,动态的显示图书记录。效果如图5-3所示。6图5-3借阅次数查看页面在查看排名页面,系统以列表形式显示图书馆图书的历史借阅次数,同时可以在表格上方的选择框中选择需要查阅的图书种类。5.1.4学生服务学生服务页面分为四部分,分别为学生登录、学生留言、个人信息、购书推荐,其中在需要用户填写信息时可以加入表单验证,避免用户在没有输入信息或信息格式不合法时提交请求,减轻服务器的压力。以登录界面为例,其中部分JavaScript代码如下:$(#login_form).submit(function(){varok=flag.name&&flag.pwd&&flag.checkcode;if(ok){returntrue;}else{alert(请检查填写内容);returnfalse;}});效果如图5-3所示。读者在输入错误的验证码后登陆失败,同时系统在输入区域下