图书管理系统——Struts-Web应用开发.doc_第1页
图书管理系统——Struts-Web应用开发.doc_第2页
图书管理系统——Struts-Web应用开发.doc_第3页
图书管理系统——Struts-Web应用开发.doc_第4页
图书管理系统——Struts-Web应用开发.doc_第5页
免费预览已结束,剩余26页可下载查看

下载本文档

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

文档简介

1 绪 论目前随着信息化程度的提高,国内图书馆也日益现代化,为了满足这种需求,很多软件开发商已经开发出很多交好的商品化的图书管理软件,这些图书管理软件功能和性能都很完善,他们大多是面向大型专业图书馆而开发的,专业性强、功能分工较细、操作和使用比较复杂,难以掌握。对那些管理人员不多且不是图书管理业务的专业人员,业务分工也不是很明确,这样的软件对他们来说太庞大、太复杂了。 本系统开发基于.NET技术,本着简单、实用的原则,既在功能上满足用户需求,又力求操作简单,使系统容易掌握和使用。由于采用.NET技术构建,本系统既可以在单机运行又可以在网络中运行,具有较高的适应性。计算机技术是现代技术的一部分,图书自动化也只是图书馆现代化的一部分,它们之间是部分和整体的关系,但由于计算机技术是信息技术的心脏,现代社会的骄子,信息社会的科技主角,所以在图书馆现代技术中,计算机技术处于核心地位,它对于其他现代化设备起控制,连接和转换的作用,而图书馆自动化是图书馆现代化的核心和主导部分。图书情报的计算机管理系统能提高图书馆本身管理水平,能代替工作人员进行图书情报资料的某些加工处理,把工作人员从繁重的手工劳动,重复劳动中解放出来。总之,建立图书馆的计算机自动化管理系统,不但可以大大提高图书馆图书流通率,而且推动了社会文化生活的进步。2需求分析21 引言 随着时代的进步,网络逐步走进我们的生活,使我们越来越依赖网络,我们可以在任何时间、任何地方去查阅我们所需要的图书信息,这就使得图书馆管理工作变的越来越重要。如何管理好用户和图书信息,成为图书馆管理工作的一个大问题。如果能实现远程登录和管理,无疑将给图书馆管理工作者带来很大的方便。面对复杂的、大量的信息和数据,以前,大都是靠人工手工记录的方式记录和处理这些数据。这给图书馆带来很多问题,而就现代社会的发展要求,给图书馆建立一个图书馆管理系统势在必行。实现图书馆管理的现代化,信息化,给管理层和应用层提供详细和准确的数据。用计算机管理图书馆,不但节省人力,提高工作效率,加速图书的流通,而且用计算机自动管理图书是时代发展的趋势。如图1所示:图1 远程登录通过本系统可以进行图书基本的查询,录入等。借助本系统可以很方便的对读者、图书进行管理,快速方便的完成图书录入、图书查询等任务。长期以来,图书馆信息管理大都是依赖人工进行的,面对如此众多的信息,其工作量可想而知,不仅浪费了大量的人力物力,而且人工管理存在大量的不可控因数,会造成图书信息管理的疏漏,使得图书信息管理陷入“事倍功半”的效果。 本系统就是针对这一情况,按照图书馆信息管理的基本流程,实现一个完善的图书信息管理。图书馆管理系统可以实现以下功能: 身份验证功能:提示用户在页面的文本框中输入用户名和密码,然后单击提交按钮,系统在数据库表user中查询该用户是否存在。如果操作成功,则进入图书录入页面;如果操作不成功,则返回图书登录页面,让用户重新录入图书信息。如图2所示:图2 身份验证用户输入用户名与密码进行提交进入图书馆管理系统主界面,如图3所示:图3 图书馆管理系统主界面用户可选择系统提供的选项进行所需的查询进入下一级界面图书录入并将其添加入数据库。图书录入功能:提示用户在页面的文本框中输入书名、作者和出版社等图书信息,然后单击提交按钮,系统就在数据表book中插入一条新的图书记录。如果操作成功,则返回成功页面;如果操作不成功,则返回图书录入页面,让用户重新录入图书信息。如图4所示:图4 登录界面图书查询功能:提示用户在页面的文本框中输入书名、作者和出版社等查询条件,然后单击提交按钮,系统在数据库表book中查询符合条件的记录,如果存在符合条件的记录,则返回“in” 的信息;如果不存在符合条件的记录,则返回“out”的信息。如图5所示: 图5 查询界面用户修改功能: 首先让用户输入用户名,再输入新的用户名,再输入原有密码,再输入新的密码。单击提交按钮,则系统对数据库进行更新操作。如图6所示:图6 用户修改界面添加功能:可以对图书进行添加,输入书名、书号、作者、日期,点击提交,把图书信息添加到数据库中。如图7所示:图7 添加界面22 软件开发技术221 JSP和Servlet1. JSPJSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。 JSP技术是用JAVA语言作为脚本语言的,JSP网页为整个服务器端的JAVA库单元提供了一个接口来服务于HTTP的应用程序。 在传统的网页HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP标记(tag),就构成了JSP网页(*.jsp)。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。程序片段可以操作数据库、重新定向网页以及发送 email 等等,这就是建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求最低,可以实现无Plugin,无ActiveX,无Java Applet,甚至无Frame。 JSP的优点: 对于用户界面的更新,其实就是由 Web Server进行的,所以给人的感觉更新很快。所有的应用都是基于服务器的,所以它们可以时刻保持最新版本。 客户端的接口不是很繁琐,对于各种应用易于部署、维护和修改。JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应):request 用户端请求,此请求会包含来自GET/POST请求的参数 response 网页传回用户端的回应 pageContext 网页的属性是在这里管理 session 与请求有关的会话期 application servlet正在执行的内容out 用来传送回应的输出 config servlet的构架部件 page JSP网页本身 exception 针对错误网页,未捕捉的例外 你可以使用它们来存取执行JSP代码的servlet。 为了避免谈论到太多Servlet API 的细节,让我们来检视一些你可以利用它们来做的事:Microsoft 公司的 ASP 技术也是动态网页开发技术。JSP和ASP从形式上非常相似,ASP程序员一眼就能认出以及。但是深入探究下去会发现它们很多的差别,其中最主要的有以下三点:(1) JSP的效率和安全性更高 ASP以源码形式存放,以解释方式运行,每次ASP网页调用都需要对源码进行解释,运行效率不高。另外,IIS的漏洞曾使得许多网站源程序大曝光,包括笔者以前用ASP开发的网站,ASP程序全部被人下载了去。JSP在执行以前先被编译成字节码 (byte code),字节码由Java虚拟机(Java Virtual Machine)解释执行,比源码解释的效率高;服务器上还有字节码的Cache机制,能提高字节码的访问效率。第一次调用JSP网页可能稍慢,因为它被编译成Cache,以后就快得多了。同时,JSP源程序不大可能被下载,特别是JavaBean程序完全可以放到不对外的目录中。(2) JSP的组件 (Component) 方式更方便ASP通过COM来扩充复杂的功能,如文件上载、发送email以及将业务处理或者复杂计算分离出来成为独立可重复利用的模块。JSP通过JavaBean实现了同样的功能扩充。在开发方面,COM的开发远比JavaBean复杂和繁琐,学会ASP不难,但学会开发COM可不简单。而JavaBean就简单多了,从本文上述示例中可以看出开发JavaBean很方便。在维护方面,COM必须在服务器上注册,如果修改了COM程序,就必须重新注册,甚至必须关机和重新启动。JavaBean则不需要注册,放在CLASSPATH包含的目录中就行了。如果JavaBean进行了修改,则JSWDK和Tomcat现在还需要关闭和重新运行(但不是关机),但开发者已经许诺将在以后的版本中做到不需要关闭服务器。另外JavaBean是完全的OOP,可以针对不同的业务处理功能方便地建立一整套可重复利用的对象库,例如用户权限控制、email自动回复等等。(3) JSP的适应平台更广ASP目前仅适用于NT和IIS。虽然Unix下有ChiliSoft的插件来支持ASP,但是ASP本身的功能有限,必须通过ASP+COM的组合来扩充,Unix下的COM实现起来非常困难。JSP则不同,几乎所有平台都支持Java,JSP+JavaBean可以在所有平台下通行无阻。NT下IIS通过一个插件,例如JRUN(/products/jrun/)或者ServletExec(/),就能支持JSP。著名的Web服务器Apache已经能够支持JSP。由于Apache广泛应用在NT、Unix和Linux上,因此JSP有更广泛的运行平台。虽然现在NT操作系统占了很大的市场份额,但是在服务器方面Unix的优势仍然很大,而新崛起的Linux更是来势不小。从一个平台移植到另外一个平台,JSP和JavaBean甚至不用重新编译,因为Java字节码都是标准的与平台无关的。笔者将在NT下实验的JSP网页原封不动地拿到Linux下就运行起来了,感觉非常满意。结论:综上所述,JSP可谓是构建动态网站的一个利器,故推荐给读者,祝愿你们掌握JSP,开发出优秀的网站。ASP程序员也请试一下,JSP里也有session、request、response/out等对象,亲自试试看如何。2. ServletServlet是用Java编写的Server端程序,它与协议和平台无关。Servlet运行于Javaenabled Web Server中。Java Servlet可以动态地扩展Server的能力,并采用请求响应模式提供Web服务。 JSP是JavaServer Page的缩写,是Sun公司出品的Web开发语言,它类似于Microsfot公司的ASP,但由于它的跨平台性,愈来愈受到广泛的应用。 Servlet与Jsp之间的交互为开发Web服务提供了优秀的解决方案。 为更好地生成动态网页,servlet提供了快捷、强大、灵活的开发环境。开发出来的servlet可以在服务器的进程空间里运行,并能同时处理多个请求,因此,采用servlet方案系统的性能将会比其他解决方案优秀得多。servlet可以使用各种Java API和第三方厂商提供的组件类,而这些都是Java 2企业版(J2EE)的有机组成部分。当然,最值得称道的便是servlet的平台无关性 - 真正做到了一次编写,到处运行(Write once, Serve anywhere)。JAVA Servlet的优势:Servlet可以和其他资源(文件、数据库、Applet、Java应用程序等)交互,以生成返回给客户端的响应内容。如果需要,还可以保存请求响应过程中的信息。采用Servlet,服务器可以完全授权对本地资源的访问(如数据库),并且Servlet自身将会控制外部用户的访问数量及访问性质 Servlet可以是其它服务的客户端程序,例如,它们可以用于分布式的应用系统中,可以从本地硬盘,或者通过网络从远端硬盘激活Servlet。Servlet可被链接(chain)。一个Servlet可以调用另一个或一系列Servlet,即成为它的客户端。采用Servlet Tag技术,可以在HTML页面中动态调用Servlet。Servlet API与协议无关。它并不对传递它的协议有任何假设。像所有的Java程序一样,Servlet拥有面向对象Java语言的所有优势 Servlet提供了Java应用程序的所有优势可移植、稳健、易开发。使用Servlet 的Tag技术,Servlet能够生成嵌于静态HTML页面中的动态内容。一个Servlet被客户端发送的第一个请求激活,然后它将继续运行于后台,等待以后的请求。每个请求将生成一个新的线程,而不是一个完整的进程。多个客户能够在同一个进程中同时得到服务。一般来说,Servlet进程只是在Web Server卸载时被卸载。222 JavaBean 1. JavaBean概述JavaSoft为JavaBean定义的任务为:“Write one, run anywhere, reuse everywhere”,即“一次性编写,任何地方执行,任何地方重用”。这个任务实际上就是要解决困扰软件工业的日益增加的复杂性,提供一个简单的、紧凑的和优秀的问题解决方案。 JavaBean组件在任何地方运行是指组件可以在任何环境和平台上使用,这可以满足各种交互式平台的需求。由于JavaBean组件在任何地方执行不仅是指组件可以在不同的操作平台上运行,还包括在分布式网络环境下运行,这一点在现在高速发展的网络时代其意义是十分重要的。 2. JavaBean的方法 JavaBean中的方法就是通常的Java方法,它可以从其他组件或应用程序中调用,JavaBean中的所有公有(public)方法都可以直接被外部调用。由于JavaBean归根到底是Java对象,所以调用这个对象的公有方法是与这个对象进行交互的唯一途径。3. JavaBean的属性 JavaBean提供了高层次的属性概念。从面向对象的角度来看,属性就是传统的对象属性,只不过是在JavaBean中还得到了属性的读取和写入的JavaBean API支持。 JavaBean属性是与bean的内部状态有关的命名的性质,属性的值可以通过调用适当的bean方法进行读写。 每个JavaBean属性通常都应该遵循一定的命名规则,这样应用程序构造器工具和最终用户才能找到JavaBean提供的属性,然后查询或修改属性值对JavaBean进行操作。 JavaBean属性共有四种:单值属性、索引属性、关联属性和限制属性。 4. JavaBean事件 JavaBean与其他软件组件交流信息的主要方式是发送和接受事件,事件为JavaBean组件提供了一种发送通知给其他组件的方法,在新的AWT事件模型中,一个事件源可以注册事件监听器对象,当事件源检测到发生某种事件时,它将调用事件监听器对象中的一个适当的事件处理方法来处理该事件。223 MVC设计模式MVC(Model/View/Controller)模式是国外用得比较多的一种设计模式,好象最早是在Smaltalk中出现。MVC包括三类对象。Model是应用对象,View是它在屏幕上的表示,Controller定义用户界面对用户输入的响应方式。 模型-视图-控制器(MVC)是80年代Smalltalk-80出现的一种软件设计模式,现在已经被广泛的使用。对于基于JSP的系统来说,也就是在使用JSP时,有相应的文件去实现相应的操作,通常JSP只负责View,也就是只负责显示页面。MVC是一个设计模式,它强制性地使应用程序的输入、处理和输出分开。使用MVC模式,应用程序被分成三个核心部件:模型、视图、控制器,它们各自处理自己的任务。模型(Model) 模型是应用程序的主体部分。模型表示业务数据,或者业务逻辑。在MVC的三个部件中,模型往往拥有最多且最重要的处理任务。它可能使用EJBs等技术来处理数据库的访问。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型就能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。视图(View) 视图是应用程序中用户界面相关的部分,是用户看到并与之交互的界面。MVC能为应用程序处理很多不同的视图。其实,在视图中并没有真正的处理发生,视图只是作为一种输出数据并允许用户操纵的方式。 控制器(controller) 控制器工作就是根据用户的输入,控制用户界面数据显示和更新model对象状态。所以当用户单击Web页面中的超链接或者提交 HTML表单时,控制器本身不输出任何东西和做任何处理,它只是接受请求并决定调用哪个模型构件去处理请求,然后再决定用哪个视图来显示模式处理后返回的数据。MVC模式的出现不仅实现了功能模块和显示模块的分离,同时它还提高了应用系统的维护性、可扩展性、可移植性和组件的可复用性 。早期的程序中,如果不注意对数功能和显示的解耦合,常常会导致程序的复杂及难以维护。很多VB,Delphi等RAD程序都有这种问题。甚至现在的C#,Java有时候也会出现把业务逻辑写在显示模块中的现象 管MVC设计模式很早就提出,但但在Web项目的开发中引入MVC却是步履维艰。主要原因:一是在早期的Web项目的开发中,程序语言和HTML的分离一直难以实现。CGI程序以字符串输出的形式动态地生成HTML内容。后来随着脚本语言的出现,前面的方式又被倒了过来,改成将脚本语言书写的程序嵌入在HTML内容中。这两种方式有一个相同的不足之处即它们总是无法将程序语言和HTML分离。二是脚本语言的功能相对较弱,缺乏支持MVC设计模式的一些必要的技术基础。直到基于J2EE的JSP Model 2问世时才得以改观。它用JSP技术实现视图的功能,用Servlet技术实现控制器的功能,用JavaBean技术实现模型的功能。MVC具有以下优点:可靠性:表示层和业务层明显分开,对表示层的修改不需要重新编译模型和控制器。高复用和适应性:MVC使用户能够将视图的类型多样化,而访问的服务器不需要修改任何代码。客户端可以是Web浏览器和无线浏览器(WAP)。低开发量低生命周期开销:MVC可以尽可能少地使用程序员来开发和维护用户接口。开发速度快:由于控制器程序员只需关注业务层程序(Java程序)的开发,视图程序员只关心表示层程序(HTML和JSP)的开发,开发时间可以大大缩短。可维护性:表示层和业务逻辑分开使得维护和修改Struts Web应用更加容易。224 Struts技术1 Struts的概念和体系结构Struts有一组相互协作的类、Serlvet以及Jsp TagLib组成。基于Struts构架的web应用程序基本上符合JSP Model2的设计标准,可以说是MVC设计模式的一种变化类型。根据上面对framework的描述,我们很容易理解为什么说Struts是一个web framwork,而不仅仅是一些标记库的组合。但 Struts 也包含了丰富的标记库和独立于该框架工作的实用程序类。Struts有其自己的控制器(Controller),同时整合了其他的一些技术去实现模型层(Model)和视图层(View)。在模型层,Struts可以很容易的与数据访问技术相结合,包括EJB,JDBC和Object Relation Bridge。在视图层,Struts能够与JSP, Velocity Templates,XSL等等这些表示层组件想结合。Struts是一个为开发基于模型(Model)视图(View)控制器(Controller)(MVC)模式的应用架构的开源框架,是利用Java Servlet和JSP构建Web应用的一项非常有用的技术。由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,因而吸引了众多的开发人员的关注。Struts是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。其最初萌芽于Craig McClanahan的构思,诞生至今也一年有余了。现在,Struts是Apache软件基金会旗下Jakarta项目组的一部分,其官方网站是/struts。由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的一年中颇受关注。Struts把Servlet、JSP、自定义标签和信息资源(message resources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间,所以说Struts是一个非常不错的应用框架。Struts框架可分为以下四个主要部分,其中三个就和MVC模式紧密相关: 模型(Model),本质上来说在Struts中Model是一个Action类(这个会在后面详细讨论),开发者通过其实现商业逻辑,同时用户请求通过控制器(Controller)向Action的转发过程是基于由struts-config.xml文件描述的配置信息的。 视图(View),View是由与控制器Servlet配合工作的一整套JSP定制标签库构成,利用她们我们可以快速建立应用系统的界面。 控制器(Controller),本质上是一个Servlet,将客户端请求转发到相应的Action类。 一堆用来做XML文件解析的工具包,Struts是用XML来描述如何自动产生一些JavaBean的属性的,此外Struts还利用XML来描述在国际化应用中的用户提示信息的。使用Struts之前,咱们必先设置好JSP服务器,以便让服务器在用户请求时,知道该如何将指定后缀的请求转到相应的ControllerStruts ActionServlet处理,当然,这些配置信息都一般在服务器启动时通过web.xml文件读入的。我们可以在web.xml定义多个Controlloer,为每一个应用定义一个。Struts框架提供了若干个标签库,它们有各自不同的用途。由于这些库还可以脱离Struts框架单独使用,这样我们也可以在其他系统中尝试使用这些标签库,它们包括: * struts-html - 这个标签库用来创建动态的HTML页面和表单。 * struts-bean - 提供了类似甚至更强于中的功能。 * struts-logic - 用于在页面输出文本信息时的条件、循环等流程的控制。 * struts-template - 用于产生有共同风格的动态JSP页面模板。 此外,可定制标签库在Struts中还有一大用处是,通过资源文件的方式来实现应用系统的多语言特性,应用Struts的系统若想将系统中的用户交互信息换一种语言的会很简单,更换一个不同的资源文件就可以了。 Struts框架可能对于大多数开发人员来说,是一门比较新的技术。但我们现在已经可以在不少的应用系统中看到Struts的身影了,而我们大可在新的应用或正在开发的JSP项目中使用Struts框架。图8 Struts体系结构Struts提供了用来封装逻辑的各种定制JSP标记,因此页面设计者可以将主要精力花在页面的可视特征上,而不必主要考虑Java语法或其它JSP语法,在下列标识库描述符中引用了Struts标记:Struts-bean.tld 使访问bean以及新bean的定义更容易,为了实现国际化,应使用不同的属性文件struts-html.tld 提供显示HTML对象(例如,表单、按钮和复选框)的简便方法struts-logic.tld 支持逻辑构造,以便可以有条件地显示文本或者作为处理循环的结果来显文本 struts-template.tld 支持使用在运行时可以修改的JSP模板2 Struts的与Web App的关系既然struts叫做web framework,那么其肯定主要基于web层的应用系统开发。按照J2EE Architecture的标准,struts应当和jsp/servlet一样,存在于web container一层。如图9所示:图9 Struts与WebApp的关系23 软件开发环境231 JBuilder 2005简介JBuilder是Borland公司公司推出的一款优秀的Java集成开发工具,JBuilder 2005是目前的最新版,在这个版本中Borland集成目前众多的优秀技术,如:工程管理、单元测试、代码审查、撰写Javadoc说明文档等等,极大的方便了Java开发人员的工作,本期专题由浅入深的向大家介绍JBuilder 2005程序开发,即使没有Java开发经验的读者,也可以通过本文进入Java程序开发的殿堂。232 运行环境简介 1 C/S结构 C/S结构,即Client/Server(客户机/服务器)结构,是将任务分配到Client端和Server端进行处理。在C/S模式结构中,用户界面、业务功能集中在客户端,服务器端只完成数据处理和维护功能,工作方式是客户端向server端发送SQL命令编写的请求,server端经分析、处理后得到的结果经中间件传回client端。C/S模式有以下优点: 具有灵活的硬件系统构成:对于各个层,可以选择与其处理负荷和处理特性相适应的硬件。若业务进一步扩大,用户数进一步增加,则可以继续增加功能层的服务器数量,用以分割数据库。 利于变更和维护应用技术规范:因为是按层分割功能,所以各个程序的处理逻辑变得十分简单。这使得各个部分的变更和维护更加规范,例如对功能层应用程序的维护。l 提高了系统的效率:相对于文件服务器模型,这个优点是显而易见的。l 进行严密的安全管理:因为独立数据库服务器的设定,就大大提高了数据的安全性。l 系统管理简单,可支持多种相异数据库,有很高的可用性。l但同时它也有以下几点缺陷: 开发成本较高。C/S结构对客户端软硬件的要求较高,尤其是软件的不断升级,对硬件要求不断提高,增加了整个系统的成本,移植困难。不同开发工具开发的应用程序,一般来说互不兼容,不能搬到其他平台上运行。l 用户界面风格不一,使用繁冗,不利于推广使用。l 维护复杂,升级麻烦。l 信息内容和形式单一,因为传统数据库为事务处理,界面基本遵循数据库的字段解释,开发之初就已确定,而且不能随时截取办公信息和档案等外部信息,用户获取的只是单纯的字符和数字,既枯燥又死板。l2 B/S结构 B/S结构利用不断成熟和普及的浏览器技术实现原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。B/S模式是指在TCP/IP的支持下,以HTTP为传输协议,客户端通过Brower访问Web服务器以及与之相连的后台数据库的技术及体系结构。它由浏览器、Web服务器、应用服务器和数据库服务器组成。B/S模式突破了传统的文件共享及C/S模式的限制,实现了更大程度的信息共享,任何用户只要通过浏览器即可访问数据库,从而克服了时间和空间的限制。B/S模式具有以下优点: 界面统一,使用简单。用户端只需安装单一的Browser浏览器软件,不需要特定的客户端软件。l 使用简单,用户使用单一的浏览软件,通过鼠标即可访问文本、图象、声音、电影及数据库等信息,特别适合非计算机人员使用。l 易于维护。由于用户端无需安装专用的软件,对应用系统进行升级时,只需更新服务器端的软件,减轻了系统维护与升级的成本与工作量,使用户的总体拥有成本大大降低。l 有效保护企业投资。B/S模式由于采用标准的TCP/IP、HTTP协议,它可以与企业现有网络很好的结合。l 可扩展性好。TCP/IP、HTTP的标准性使得B/S模式可直接接入Internet,具有良好的扩展性。l 信息共享度高。HTML是时间格式的一个开放标准,目前大多数流行的软件均支持HTML,同时HTML技术使得Browser可访问多种格式文件。l 安全性好,放火墙技术将保证现代企业网络的安全性。如果结合Windowsl NT与Internet Information Server的高度安全性,使拥护在操作系统级就可达到Windows NT的C2级系统安全。 可以在任何时间、任何地点(没有局域、广域之分)、以任何接入方式(有线或无线连接)实现跨平台的网络实时操作。l 当然B/S模式也有其不足之处,WEB系统是一种基于INTERNET的,松散的,不可预知系统吞吐量的软件形态,其速度和安全性都无法和基于LAN的系统相比。它本质上讲,只是一种基于HTTP协议的C/S计算模式。但是HTTP协议是一种“无状态”的协议,也就是说,在发向WEB服务器的各个请求之间,不存在任何连接关系。浏览器发出一个请求,并从服务器获得响应,如果浏览器发出另一个请求,服务器仍会作出响应,好象以前从未与那个浏览器打过交道一样,也就是说,HTTP协议的机制决定了它只能单独的请求进行单独的响应。3 三层B/S 三层B/S结构是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现,一部事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。三层B/S具体功能如下: 表示层:表示层是应用的用户结构部分,它担负着用户与应用间的对话功能。在变更用户接口时,只需改写显示控制和数据检查程序,而不影响其他两层。检查的内容也只限于数据的形式和制的范围,不包括有关业务本身的处理逻辑。l 数据层:数据层就是数据库管理系统(DBMS),负责管理对数据库数据的读写。DBMS必须能迅速执行大量数据的更新和检索。对于在功能层对数据库发送的数据传送请求,RDBMS作数据的串行处理,而在宏观上是数据的并行处理,从而实现了数据库的多任务处理。l 功能层:功能层就是系统的业务逻辑,负责对表现层的输入进行响应,同时与WEB数据库直接交互,在数据库和WEB服务器之间读写数据。l典型的三层B/S架构如图10示:图10三层B/S结构 介于B/S模式与C/S结构相比较之下的种种优势,在本人事信息系统的开发中,我们采用了三层B/S模式,并且在完成数据库(即数据层)的整体设计后,给出功能层的接口。这样,就可以对功能层和实现层进行并行开发。因此,在开发过程中,我们就可进行同步的测试,避免了致命错误的发生。近年来由于Internet/Intranet技术的发展和普及,WEB技术的应用已成为一种必然,然而由于三层B/S模式的一些局限性,就有人提出了四层的B/S结构,即由浏览器、WEB服务器、应用服务器和数据库服务器是个层次组成,这是当前最先进的网络体系结构。随着WEB技术的日益成熟,B/S结构取代C/S结构已成为必然。B/S模式的工作原理:客户端的浏览器通过URL访问Web服务器,Web服务器请求数据库服务器,并将获得的结果以HTML形式返回客户端浏览器。如图11所示:图11 B/S模式工作原理233数据库Microsoft Access 2000的介绍Access 2000是一种关系数据库管理系统软件,它是Microsoft公司于千年之际推出的办公自动化系列软件Office 2000的组件之一。Access是Office办公套件中一个极为重要的组成部分。现在它已经成为世界上最流行的桌面数据库管理系统。微软公司通过大量地改进,将Access的新版本功能变得更加强大。不管是处理公司的客户订单数据;管理自己的个人通讯录;还是大量科研数据的记录和处理,人们都可以利用它来解决大量数据的管理工作。使用中文Access 2000可以从单一的数据库文件中组织用户信息。在此文件中,可将数据分开放在名为“表”,也就是前面所说的“数据表”的容器中,然后可使用联机窗体让网络用户查看、添加并更新表中的数据、“查询”查找并检索数据、使用“报表”按特定的布局分析或打印的数据。此外,通过创建数据访问页还能从Internet上查看与更新或分析数据。Access 2000引进新的功能,例如,从 XML 中导入数据或将数据导出到 XML 时,可以使用 Microsoft Office Access2003 中增强的 XML 支持来指定转换文件。指定后,转换将被自动应用。导入 XML 数据时,转换将在数据导入完成后和创建任何新表或附加到任何现有表之前,应用到该数据。将数据导出到 XML 时,将在导出操作后应用转换。 很多时候,数据库包含的查阅值都存储在其他数据库中。现在可以在导出时包括这些相关的表。此外,还可以在导出对象时包括该对象的任何预定义筛选器或排序顺序。对于安全性也有了新的提高,宏安全性 Microsoft Office Access2003 允许您通过设置宏安全等级来防止可能不安全的 Visual Basic for Applications (VBA) 代码。您可以设置安全等级,以在每次打开包含 VBA 代码的数据库时接收提示,也可以自动阻止那些来自于未知源的数据库。3 数据分析31 数据流分析311数据流流向用户首先在登录界面输入用户名和密码,该用户名和密码首先必须存在于数据库中,提交进入图书录入界面,在该界面可以把图书的信息录入并存回到数据库中,切换到查询界面,对数据库中已有的书进行查询。图12 图书馆管理系统数据流流向312 系统模块图本图书馆管理系统有三大模块:图书信息管理、读者信息管理和借阅管理,其中图书信息管理模块包含图书信息录入、图书信息查询、图书信息修改,这次设计主要设计的是这一块。读者信息管理和借阅管理有待以后设计。图13 图书馆管理系统系统模块图32 数据库设计数据库的设计是整个设计的灵魂,设计这块非常重要,本设计采用的是Microsoft Access 。321 数据分析及设计一、图书馆管理系统E_R图 根据系统的设计需求,主要考虑用户信息、图书信息和图书借阅信息。在此做了系统的E_R图,如图14所示。图14 图书馆管理系统E_R图二、数据库表格设计 图书馆管理系统存在大量的数据存储和查询操作,为了实现对相应数据的存储和查询,故采用Access作为图书馆管理系统的数据库系统。根据图书馆管理系统的E_R图,在数据库中设计了三个数据表,分别是book表、 user表和borrowInfo表。表 1 book表的设计表2 borrowInfo表的设计表3 user表的设计三、 数据表中部分数据记录表4 book表中的数据表5 borrowInfo表中的数据表6 user表中的数据322 数据源的配置打开数据源(ODBC),点击添加,选中Microsoft Access Driver (*.mdb),点击完成,点击选择,选中所加数据库,单击确定,如图15所示:图15 数据源的添加单击确定,数据源就配置好了,如图16所示:图16 数据源添加成功4系统设计41 在JBuilder 2005中添加Struts选择ToolsConfigureLibaries,点击New出来New Library Wizard对话框,在Name文本框中填入Struts1.1, Location下拉列表框中选择User Home,接着单击Add按钮,把jakarta-struts1.1lib目录下所有的*.jar文件添加到新的Library里,单击OK,如图17所示,在Library Settings里设置Framework为Struts,单击OK,设置完成,如图18所示:图17 添加所有的*.jar文件图18 设置Framework为Struts42 用户登录模块 421 建立工程使用Project Wizard向导创建工程:选择FileNew Project菜单项,在Name 文本框中,将unititiled修改为Library,并选择需要存储的路径。单击Finish按钮即可。422 建立用户登录界面使用Application Wizard 创建JavaServer Page:选择FileNew菜单项,打开Object Gallery对话框,单击Web标签,出现一些图表,选择JSP图标,单击OK,在JSP Wizard Step 1 of 4中Name改为 index.jsp,点击Next,在JSP Wizard Step 2 of 4中的Tag Libraries选择Struts1.1中的struts-bean, struts-html, struts-logic, struts-template,点击Finish。一个JSP就建好了,如图19所示:图19 JSP的创建页面中的部分程序清单:% Boolean logined = (Boolean) session.getAttribute(logined); if (logined != null) if (logined.booleanValue() = false) out.print(用户名或密码错误,请重新输入!); % /* 对于用户名及密码出现错误的情况进行输出提示语句*/ /*对输入的用户名及密码与数据库中的数据匹配 */423 建立过滤器使用Application Wizard 创建过滤器:选择FileNew菜单项,打开Object Gallery对话框,单击Web标签,出现一些图表,选择Filter Servlet图标,单击OK。在Filter Servlet Wizard Step 1 of 4 中的 Class Name改为LuoFilter ,在Package 中选择 library,单击Finish。过滤器就建好了。执行login方法,如果与数据表中数据匹配获得响应转入index.jsp登录界面,如图20所示:图20 过滤器的创建程序代码如下:import javax.servlet.*;import javax.servlet.http.*;import java.io.*;import java.util.*;public class Luofilter extends HttpServlet implements Filter private FilterConfig filterConfig; /Handle the passed-in FilterConfig public void init(FilterConfig filterConfig) this.filterConfig = filterConfig; /Process the request/response pair public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) try /系统登录页面 String signOnPage = index.jsp; HttpServletRequest hreq = (HttpServletRequest) request; HttpServletResponse hres = (HttpServletResponse) response; String currentURL = hreq.getRequestURI(); int ctxPathLen = 0; String ctxPath = hreq.getContextPath(); if(ctxPath!=null) ctxPathLen = ctxPath.length(); String targetURL = null; /去掉可能存在的虚拟目录字符串 if(!cu

温馨提示

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

评论

0/150

提交评论