




已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微纳绘本馆摘 要 JSP全名为Java Server Page,其根本是一个简化的的Servlet设计,它实现了Html语法中的Java扩张。用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。本文通过对微纳绘本馆系统的需求调研,根据用户的需求定约,设计并开发了一个微纳绘本馆在线管理系统,提供绘本在线预览、绘本借阅、绘本订购等功能。在系统设计中综合运用多种开发技术(JSP、Servlet、AJAX、JS、Jquery),使用MySQL作为数据库管理系统,实现信息系统层。本系统使用JSP开发前端页面,通过AJAX向Servlet传送,使用JS和Jquery操作返回的数据,以此实现页面的动态化。关键字 绘本馆 JSP Servlet AJAX JS Jquery Micro Contain Picture GalleryABSTRACT JSP(Java Server Page) is a simplified design of Servlet, which implements HTML and HTTP. The JSP Web applications are cross-platform, They can run under Linux, and other operating systems. According to the demand research of micro contain picture gallery system and the users stipulation, this paper designs and develops an online management system to provide previewing, borrowing or purchasing books. In the design of the system framework, the various development technologies (JSP,Servlet,AJAX,JS and Jquery) are synthetically applied, the system uses JSP as view layer, and uses MySQL as database, and also uses AJAX to achieve dynamic pages.KEYWORDS Picture Gallery; JSP; Servlet; AJAX; JS; Jquery1目录引言1第一章相关技术综述21.1 JSP介绍21.1.1 JSP的改进41.1.2 JSP的优势51.2 AJAX介绍61.2.1 AJAX的优点81.3 Servlet介绍91.3.1 Servlet主要方法101.4 JS 介绍121.5 Jquery 介绍131.5.1 Jquery的功能14第二章系统概要设计162.1 需求分析162.1.1 用户需求分析162.1.2 功能需求分析162.2 开发及运行环境172.3系统功能规划172.4系统设计182.4.1 会员功能182.4.2 管理员功能19第三章系统详细设计213.1 技术架构213.2 源码组织213.3 ER图设计223.4 类图设计233.5 数据库设计233.6 结构设计253.6.1 表现层设计253.6.2 数据层设计253.7 详细设计说明263.7.1 用户预约借阅263.7.2 用户订购绘本263.7.3 管理员绘本管理273.7.4 管理员预约借阅管理273.7.5 管理员借阅管理27第四章系统实现284.1 运行环境284.2 系统实现284.2.1 系统主界面284.2.2 用户搜索绘本294.2.3 用户预览绘本294.2.4 用户预约借阅绘本304.2.5 用户订购绘本314.2.6 管理员添加借阅324.2.7 管理员归还绘本334.2.8 管理员添加绘本334.2.9 管理员编辑绘本35总 结37致 谢38参考文献3939微纳绘本馆引言绘本,顾名思义就是“画出来的书”。早期被称作为图画书(Picture Book),通俗的说法是指有图画、主题简单、情节内容简短的故事书。主要是针对幼儿、儿童所设定的出版品,多以适合幼儿、儿童阅读的内容为取向;但也有供成人阅读的绘本。绘本作为一种综合性艺术形式,它源自于作者的直觉,它凭借作者心灵的力量对事物进行整体性的把握。绘本书籍一般都比较贵,如果纯粹自购的话,将是一笔不小的开支。而且,有些绘本没有必要收藏。为解决上述的不便,“微纳绘本馆”提供在线预览功能,同时提供绘本借阅,使用户可以不用购买就能够欣赏绘本,同时也提供订购绘本的功能。第一章 相关技术综述微纳绘本馆管理系统主要采用JSP和Servlet开发,其中JSP用于开发前端页面,Servlet用于开发后台对数据库进行操作,两者相互配合,保证更好的开发效率、系统的稳定性、可靠性。本系统使用JSP技术作为表现层技术,负责收集用户的请求数据并将其通过AJAX技术提交到Servlet,当Servlet处理完用户的请求后,通过AJAX返回数据,JSP页面负责将处理结果呈现给用户,实现异步刷新。本系统的JSP页面还使用了JS、Jquery语言,用于对JSP页面的元素进行选取操作,然后与后台数据进行交互,对返回的数据进行处理,实现页面的动态化。本系统是一个综合的解决方案,系统中用到的相关技术比较多,故在下面的相关技术介绍中,本文将主要介绍系统中使用到的技术,并结合系统对此技术的使用情况作一些简要的介绍。1.1 JSP介绍JSP是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态技术标准。在传统的网页HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP标签,就构成了JSP网页java程序片段可以操纵数据库、重新定向网页以及发送E-mail等,实现建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,这样大 大降低了对客户浏览器的要求,即使客户浏览器端不支持Java,也可以访问JSP网页。JSP全名为Java Server Pages,其根本是一个简化的Servlet设计,他实现了Html语法中的java扩张(以 形式)。JSP与Servlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户端。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。JavaServlet是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。1.1.1 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公司还开发了JDBCODBC 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编程语言“一次编写,各处运行”的特点。1.1.2 JSP的优势JSP优势如下: (1)一次编写,到处运行。除了系统之外,代码不用做任何更改。 (2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP的局限性JSP的优势是显而易见的。 (3)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。 (4)多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。 (5)支持服务器端组件。web应用需要强大的服务器端组件来支持,开发人员需要利用其他工具设计实现复杂功能的组件供web页面调用,以增强系统性能。JSP可以使用成熟的JAVA BEANS 组件来实现复杂商务功能。JSP的编译原理如图1-1所示。图1-1 JSP编译原理示意图1.2 AJAX介绍AJAX由HTML、JavaScript技术、DHTML和DOM组成,这一杰出的方法可以将笨拙的Web界面转化成交互性的AJAX应用程序。在一般的Web应用程序中,用户填写表单字段并单击提交按钮。然后整个表单发送到服务器,服务器将它转发给处理表单的脚本(通常是PHP或java,也可能是CGI进程或者类似的东西),脚本执行完成后再发送回全新的页面。该页面可能是带有已经填充某些数据的新表单的HTML,也可能是确认页面,或者是具有根据原来表单中输入数据选择的某些选项的页面。当然,在服务器上的脚本或程序处理和返回新表单时用户必须等待。屏幕变成一片空白,等到服务器返回数据后再重新绘制。这就是交互性差的原因,用户得不到立即反馈,因此感觉不同于桌面应用程序。AJAX基本上就是把JavaScript技术和XMLHttpRequest对象放在Web表单和服务之间。当用户填写表单时,数据发送给一些JavaScript代码而不是直接发送给服务器。相反,JavaScript代码捕获表单数据并向服务器发送请求。同时用户屏幕上的表单也不会闪烁、消失或延迟。换句话说,JavaScript代码不用等待服务的响应。因此用户可以继续输入数据、滚动屏幕和使用应用程序。然后,服务器将数据返回JavaScript代码(仍然在Web表单),后者决定如何处理这些数据。它可以迅速更新表单数据,让人感觉应用程序是立即完成的,表单没有提交或刷新而用户得到了新数据。许多重要的技术和AJAX开发模式可以从现有的知识中获取。例如,在一个发送请求到服务端的应用中,必须包含请求顺序、优先级、超时响应、错误处理及回调,其中许多元素已经在Web服务中包含了。同时,随着技术的成熟还会有许多地方需要改进,特别是UI部分的易用性。AJAX开发与传统的C/S开发有很大的不同。这些不同引入了新的编程问题,最大的问题在于易用性。由于AJAX依赖浏览器的JavaScript和XML,浏览器的兼容性和支持的标准也变得和JavaScript的运行时性能一样重要了。这些问题中的大部分来源于浏览器、服务器和技术的组合,因此必须理解如何才能最好的使用这些技术。综合各种变化的技术和强耦合的客户服务端环境,AJAX提出了一种新的开发方式。AJAX开发人员必须理解传统的MVC架构,这限制了应用层次之间的边界。同时,开发人员还需要考虑C/S环境的外部和使用AJAX技术来重定型MVC边界。最重要的是,AJAX开发人员必须禁止以页面集合的方式来考虑Web应用而需要将其认为是单个页面。一旦UI设计与服务架构之间的范围被严格区分开来后,开发人员就需要更新和变化的技术集合了。1.2.1 AJAX的优点传统的web应用允许用户填写表单 (form),当提交表单时就向web服务器发送一个请求。服务器接收并处理传来的表单,然後返回一个新的网页。这个做法浪费了许多带宽,因为在前後两个页面中的大部分HTML代码往往是相同的。由于每次应用的交互都需要向服务器发送请求,应用的响应时间就依赖于服务器的响应时间。这导致了用户界面的响应比本地应用慢得多。与此不同,AJAX应用可以仅向服务器发送并取回必需的数据,它使用SOAP或其它一些基于XML的web service接口,并在客户端采用JavaScript处理来自服务器的响应。因此在服务器和浏览器之间交换的数据大量减少,结果我们就能看到响应更快的应用。同时很多的处理工作可以在发出请求的客户端机器上完成,所以Web服务器的处理时间也减少了。使用AJAX的最大优点,就是能在不更新整个页面的前提下维护数据。这使得Web应用程序更为迅捷地回应用户动作,并避免了在网络上发送那些没有改变过的信息。AJAX不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。就像DHTML应用程序那样,AJAX应用程序必须在众多不同的浏览器和平台上经过严格的测试。随着AJAX的成熟,一些简化AJAX使用方法的程序库也相继问世。同样,也出现了另一种辅助程序设计的技术,为那些不支持JavaScript的用户提供替代功能。JavaScript代码甚至可以对收到的数据执行某种计算,再发送另一个请求,完全不需要用户干预!这就是XMLHttpRequest的强大之处。它可以根据需要自行与服务器进行交互,用户甚至可以完全不知道幕后发生的一切。结果就是类似于桌面应用程序的动态、快速响应、高交互性的体验,但是背后又拥有互联网的全部强大力量。图1-2展示了传统的web请求与AJAX请求的差异。图1-2传统web请求响应与AJAX请求响应的比较1.3 Servlet介绍Servlet是在服务器上运行的小程序。这个词是在Javaapplet的环境中创造的,Java applet是一种当作单独文件跟网页一起发送的小程序,它通常用于在客户端运行,结果得到为用户进行运算或者根据用户互作用定位图形等服务。服务器上需要一些程序,常常是根据用户输入访问数据库的程序。这些通常是使用公共网关接口(CGI(Common Gateway Interface))应用程序完成的。然而,在服务器上运行Java,这种程序可使用Java编程语言实现。在通信量大的服务器上,JavaServlet的优点在于它们的执行速度更快于CGI程序。各个用户请求被激活成单个程序中的一个线程,而无需创建单独的进程,这意味着服务器端处理请求的系统开销将明显降低。HTTPServlet使用一个 HTML 表单来发送和接收数据。要创建一个HTTPServlet,请扩展HttpServlet类, 该类是用专门的方法来处理 HTML表单的 GenericServlet 的一个子类。 HTML 表单是由 和 标记定义的。表单中典型地包含输入字段(如文本输入字段、复选框、单选按钮和选择列表)和用于提交数据的按钮。当提交信息时,它们还指定服务器应执行哪一个Servlet(或其它的程序)。 HttpServlet 类包含 init()、destroy()、service() 等方法。其中 init() 和 destroy() 方法是继承的。1.3.1 Servlet主要方法(1) init() 方法在 Servlet 的生命期中,仅执行一次 init() 方法。它是在服务器装入 Servlet 时执行的。 可以配置服务器,以在启动服务器或客户机首次访问 Servlet 时装入 Servlet。 无论有多少客户机访问 Servlet,都不会重复执行 init() 。缺省的 init() 方法通常是符合要求的,但也可以用定制 init() 方法来覆盖它,典型的是管理服务器端资源。 例如,可能编写一个定制 init() 来只用于一次装入 GIF 图像,改进 Servlet 返回 GIF 图像和含有多个客户机请求的性能。另一个示例是初始化数据库连接。缺省的 init() 方法设置了 Servlet 的初始化参数,并用它的 ServletConfig 对象参数来启动配置, 因此所有覆盖 init() 方法的 Servlet 应调用 super.init() 以确保仍然执行这些任务。在调用 service() 方法之前,应确保已完成了 init() 方法。(2) service() 方法service() 方法是 Servlet 的核心。每当一个客户请求一个HttpServlet 对象,该对象的service() 方法就要被调用,而且传递给这个方法一个请求(ServletRequest)对象和一个响应(ServletResponse)对象作为参数。 在 HttpServlet 中已存在 service() 方法。缺省的服务功能是调用与 HTTP 请求的方法相应的 do 功能。例如, 如果 HTTP 请求方法为 GET,则缺省情况下就调用 doGet() 。Servlet 应该为 Servlet 支持的 HTTP 方法覆盖 do 功能。因为 HttpServlet.service() 方法会检查请求方法是否调用了适当的处理方法,不必要覆盖 service() 方法。只需覆盖相应的 do 方法就可以了。Servlet的响应可以是下列几种类型:一个输出流,浏览器根据它的内容类型(如text/HTML)进行解释。一个HTTP错误响应, 重定向到另一个URL、servlet、JSP。(3)doGet()方法当一个客户通过HTML表单发出一个HTTP GET请求或直接请求一个URL时,doGet()方法被调用。与GET请求相关的参数添加到URL的后面,并与这个请求一起发送。当不会修改服务器端的数据时,应该使用doGet()方法。(4)doPost()方法当一个客户通过HTML 表单发出一个HTTP POST请求时,doPost()方法被调用。与POST请求相关的参数作为一个单独的HTTP 请求从浏览器发送到服务器。当需要修改服务器端的数据时,应该使用doPost()方法。(5) destroy() 方法destroy() 方法仅执行一次,即在服务器停止且卸装Servlet 时执行该方法。典型的,将 Servlet 作为服务器进程的一部分来关闭。缺省的 destroy() 方法通常是符合要求的,但也可以覆盖它,典型的是管理服务器端资源。例如,如果 Servlet 在运行时会累计统计数据,则可以编写一个 destroy() 方法,该方法用于在未装入 Servlet 时将统计数字保存在文件中。另一个示例是关闭数据库连接。(6) GetServletConfig()方法GetServletConfig()方法返回一个 ServletConfig 对象,该对象用来返回初始化参数和ServletContext。ServletContext 接口提供有关servlet 的环境信息。(7) GetServletInfo()方法GetServletInfo()方法是一个可选的方法,它提供有关servlet 的信息,如作者、版本、版权。当服务器调用sevlet 的Service()、doGet()和doPost()这三个方法时,均需要 请求和响应对象作为参数。请求对象提供有关请求的信息,而响应对象提供了一个将响应信息返回给浏览器的一个通信途径。当服务器卸装 Servlet 时,将在所有 service() 方法调用完成后,或在指定的时间间隔过后调用 destroy() 方法。一个Servlet 在运行service() 方法时可能会产生其它的线程,因此请确认在调用 destroy() 方法时,这些线程已终止或完成。Servlet的工作原理如图1-3所示。图1-3 Servlet工作原理图1.4 JS 介绍JS即JavaScript,是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML(标准通用标记语言的子集)网页添加动态功能,比如响应用户的各种操作。它最初由网景公司(Netscape)的Brendan Eich设计,是一种动态、弱类型、基于原型的语言,内置支持类。JavaScript是Sun公司(已被oracle收购)的注册商标。Ecma国际以JavaScript为基础制定了ECMAScript标准。JavaScript也可以用于其他场合,如服务器端编程。完整的JavaScript实现包含三个部分:ECMAScript,文档对象模型,浏览器对象模型。JavaScript程序是由若干语句组成的,语句是编写程序的指令。JavaScript提供了完整的基本编程语句,它们是:赋值语句、switch选择语句、while循环语句、for循环语句、for each循环语句、dowhile循环语句、break循环中止语句、continue循环中断语句、with语句、trycatch语句、if语句(if.else,ifelse if)。函数是命名的语句段,这个语句段可以被当作一个整体来引用和执行。使用函数要注意以下几点: (1)函数由关键字function定义(也可由Function构造函数构造)。 (2)使用function关键字定义的函数在一个作用域内是可以在任意处调用的(包括定义函数的语句前);而用var关键字定义的必须定义后才能被调用。 (3)函数名是调用函数时引用的名称,区分大小写,调用函数时不可写错函数名。 (4)参数表示传递给函数使用或操作的值,它可以是常量,也可以是变量,也可以是函数,在函数内部可以通过arguments对象(arguments对象是一个伪数组,属性callee引用被调用的函数)访问所有参数。 (5)return语句用于返回表达式的值。 (6)yield语句扔出一个表达式,并且中断函数执行直到下一次调用next。JavaScript的一个重要功能就是面向对象的功能,通过基于对象的程序设计,可以用更直观、模块化和可重复使用的方式进行程序开发。1.5 Jquery 介绍Jquery是继prototype之后又一个优秀的Javascript框架。它是轻量级的js库 ,它兼容CSS3,还兼容各种浏览器(IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+),Jquery2.0及后续版本将不再支持IE6/7/8浏览器。Jquery使用户能更方便地处理HTML(标准通用标记语言下的一个应用)、events、实现动画效果,并且方便地为网站提供AJAX交互。Jquery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。Jquery能够使用户的html页面保持代码和html内容分离,也就是说,不用再在html里面插入一堆js来调用命令了,只需定义id即可。Jquery是一个兼容多浏览器的javascript框架,核心理念是write less,do more(写得更少,做得更多)。Jquery在2006年1月由美国人John Resig在纽约的barcamp发布,吸引了来自世界各地的众多JavaScript高手加入,由Dave Methvin率领团队进行开发。如今,Jquery已经成为最流行的javascript框架,在世界前10000个访问最多的网站中,有超过55%在使用Jquery。Jquery是免费、开源的,使用MIT许可协议。Jquery的语法设计可以使开发者更加便捷,例如操作文档对象、选择DOM元素、制作动画效果、事件处理、使用Ajax以及其他功能。除此以外,Jquery提供API让开发者编写插件。其模块化的使用方式使开发者可以很轻松的开发出功能强大的静态或动态网页。1.5.1 Jquery的功能目前Jquery主要提供如下功能: (1)访问页面框架的局部。这是 DOM 模型所完成的主要工作之一, DOM获取页面中某个节点或者某一类节点有固定的方法,而Jquery则大大地简化了其操作的步骤。 (2) 修改页面的表现(Presentation)。CSS 的主要功能就是通过样式风格来修改页面的表现。然而由于各个浏览器对 CSS3 标准的支持程度不同,使得很多CSS 的特性没能很好地体现。Jquery 的出现很好地解决了这个问题,它通过封装好的 JavaScript 代码,使得各种浏览器都能很好地使用 CSS3 标准,极大地丰富了 CSS 的运用。 (3)更改页面的内容。通过强大而方便的 API修改文本的内容、插入新的图片、表单的选项,甚至整个页面的框架。 (4)响应事件。JavaScript 有处理事件的相关方法,而引入 Jquery 之后,可以更加轻松地处理事件,而且开发人员不再需要考虑讨厌的浏览器兼容性问题。 (5)为页面添加动画。通常在页面中添加动画都需要开发大量的 JavaScript代码,而 Jquery大大简化了这个过程。Jquery的库提供了大量可自定义参数的动画效果。 (6)与服务器异步交互。Ajax框架可以简化代码的编写,Jquery也提供了一整套Ajax 相关的操作,大大方便了异步交互的开发和使用。 (7)简化常用的 JavaScript操作。Jquery还提供了很多附加的功能来简化常用的 JavaScript操作,例如数组的操作、迭代运算等。第二章 系统概要设计2.1 需求分析2.1.1 用户需求分析通过对绘本馆现有模式的研究, 发现绘本书籍一般都比较贵,如果纯粹自购的话,将是一笔不小的开支。而且,有些绘本没有必要收藏。为解决上述的不便,设计开发出“微纳绘本馆”,结合线上线下的模式,提供在线预览功能,同时提供绘本借阅,使用户可以不用购买就能够欣赏绘本,同时也提供订购绘本的功能。2.1.2 功能需求分析本系统功能模块主要包括会员功能模块,管理员功能模块。本系统需要满足以下几点要求:(1) 会员功能模块需要满足用户使用绘本馆系统的一系列操作。1. 搜索绘本2. 查看和修改个人信息3. 添加和删除借书架4. 查看借阅绘本信息5. 预约借阅和取消预约6. 订购绘本和删除订单7. 添加和删除收藏(2)管理员功能模块需要满足管理员使用绘本馆系统的一系列操作。1. 用户管理2. 绘本管理3. 借阅管理4. 预约借阅管理5. 订单管理6. 收藏管理2.2 开发及运行环境根据需求调研的反馈,确定如下的系统环境: 网络环境:互联网; 运行环境:n 操作系统:linux、windows XP 、windows7n 服务器: tomcat 6.0n 数据库:MySQL 5.0 开发环境:n 操作系统:windows7n 服务器:tomcat 6.0n 数据库: MySQL 5.0n 开发工具: myeclipse10.02.3系统功能规划根据需求调研,将系统功能划分为如表2-1的各个模块,各个模块又各自划分子模块,由上往下,一个模块一个模块地开发,保证开发顺序清晰,以方便在项目实现设计及编码的任务,才能有效地管理项目的开发进度。表2-1系统功能划分清单模块编号模块名称子模块编号子模块名称备注100会员功能00搜索绘本用户根据条件和关键字搜索绘本01个人信息用户个人信息的查看、修改02我的借书架删除借书架、预约借阅、03我的购物车删除购物车、订购绘本04我的借阅用户借阅信息的查看05我的预约借阅用户预约借阅信息的查看、取消预约06我的订单用户订单信息的查看、删除、支付订单07我的收藏用户收藏的查看、加入借书架、购物车200管理员功能00用户管理查看用户信息01绘本管理对绘本信息的增、删、改、查02借阅管理查看用户借阅信息、归还绘本03预约借阅管理取消预约、确认借阅、设置租借款04订单管理查看、删除用户订单信息、订单发货05收藏管理查看、删除用户收藏信息2.4系统设计2.4.1会员功能图2-1 会员功能模块用例图如图2-1是会员功能模块用例图,功能包括:1. 搜索绘本:用户根据条件和关键字搜索绘本。2. 查看和修改个人信息:用户可查看和修改个人信息。3. 添加和删除借书架:用户可添加绘本到借书架和删除借书架里的绘本。4. 查看借阅绘本信息:用户可查看自己借阅的绘本信息。5. 预约借阅和取消预约:用户可预约借阅绘本和取消预约。6. 订购绘本和删除订单:用户可订购绘本和删除订单。7添加和删除收藏:用户可添加和删除收藏2.4.1管理员功能图2-2 管理功能模块用例图如图2-2是管理员功能模块用例图,功能包括:1. 用户管理:查看用户信息。2. 绘本管理:对绘本信息的增、删、改、查。3. 借阅管理:查看用户借阅信息、归还绘本。4. 预约借阅管理:取消预约、确认借阅、设置租借款。5. 订单管理:查看、删除用户订单信息、订单发货。6. 收藏管理:查看、删除用户收藏信息。第三章 系统详细设计 3.1 技术架构该系统采用JSP+Servlet的两层结构,分为表现层和数据服务层。两层体系将业务规则、数据访问等工作放到数据服务层处理,客户端不直接与数据库交互,而是通过Servlet与数据库交互。表现层主要使用JSP的表现层标签。使用表现层标签简化表现层逻辑,同时,使用JS和Jquery和操作页面元素,实现页面动态化,使用AJAX和后台数据交互,提高用户体验,实现异步刷新。系统技术架构图如图3-1所示:图3-1系统技术架构图3.2 源码组织项目的源代码结构如图3-2所示:PictureBooksrc-系统的源代码com -系统源码的包 Web App Libraries -MySQL驱动包WebRoot-表现层的相关资源存放目录WEB-INF-存放web配置images -表现层图片存放目录script-表现层js文件存放目录 style-web的样式表存放目录upload -表现层图片上传存放目录图3-2项目的源代码结构图3.3 ER图设计系统的ER图设计如图3-3所示:图3-3 系统ER图设计3.4 类图设计图3-4系统类图设计如图3-4是系统的设计类图。其中User是用户信息类;PictureBook是绘本信息类;Borrow是用户借阅绘本类;Preview是用户预约借阅类;Order是用户订单类;Collect是用户收藏类;Bookshelf是用户借书架;ShoppingCart是用户购物车类。3.5数据库设计图3-5数据库表结构示意图系统的数据库的表结构示意图如图3-5所示。其中User是用户信息表,用于存储用户相关信息;PictureBook是绘本表,用于存储绘本相关信息;Image是图片表,用于存储绘本图片相关信息;Kind是绘本主题表,用于存储绘本主题类型;Publish是出版社表,用于存储出版社信息;Bookshelf是借书架表,用于存储用户借书架上绘本的相关信息;ShoppingCart是购物车表,用于存储用户购物车上绘本的相关信息;Borrow是用户借阅表,用于存储用户借阅绘本的相关信息;Preview是用户预约借阅表,用于存储用户预约借阅绘本的相关信息;UserOrder是用户订单表,用于存储用户订单的相关信息;OrderDetail是用户订单详细表,用于存储订单的绘本的详细信息;Collect是用户收藏表,用于存储用户收藏绘本的相关信息。3.6结构设计3.6.1表现层设计在表现层的设计上,采用了JSP的标签,JSP的标签相当于Html的标签,JSP页面在Html的页面里嵌入了Java语言,提取页面元素,然后向后台传送数据,后台获得数据后对数据库进行操作,然后再把数据返回前台JSP页面,利用这样的模式完成用户的一系列操作。在表现层里使用了JS和Jquery这两个语言选取和操作页面元素,使页面能够动态化,然后再通过AJAX将获取的数据传到后台,后台返回数据给AJAX,再用这数据对页面进行操作,实现异步刷新,提高用户的体验。AJAX是一种异步传输技术,在构建表现层的时候非常方便实用,能在不刷新网页的情况下动态改变局部页面,以满足用户的需求。表现层综合运用这几种技术,能够实现页面动态化和异步刷新,提高了网站的实用性。3.6.2数据层设计在数据层的设计上面,本系统采用了Servlet获取前台AJAX传来的请求,然后将获取的数据对数据库进行操作,实现数据库的增、删、查、改,最后再通过response.getWriter().write()的方法向AJAX返回数据,以此来实现前台和后台数据的交互。创建一个Servlet类,具体流程如下: 在com包下创建其实现类,如RegisterServlet ; 配置相关Servlet信息 ;Servlet的相关配置信息可以在“/WebRoot/WEB-INF/web.xml”这个文件中找到,部分具体信息如下: index.jsp RegisterServlet com.RegisterServlet RegisterServlet /register.do LoginServlet com.LoginServlet LoginServlet /login.do 3.7 详细设计说明3.7.1用户预约借阅用户要想借阅绘本首先就得在绘本馆系统上提交预约申请,当用户成功填写预约借阅信息,提交预约申请后,会生成相应的预约借阅信息,然后等待用户前去绘本馆借阅,只有管理员确认借阅了才算是借阅成功,用户预约借阅功能由Preview类的addPreview()方法实现。3.7.2用户订购绘本用户要想订购绘本首先就得在绘本馆系统上提交订购绘本申请,用户可自用选择要订购的绘本,然后选择加入购物车,填好订购绘本信息以及配送信息,然后提交订单,当用户提交成功后会生成一个订单,然后用户可以选择支付,当用户支付成功后由管理员选择发货,由此完成订购绘本的流程。用户订购绘本的功能由Order类的addOrder()方法实现。3.7.3管理员绘本管理管理员可以对绘本进行管理,可以实现绘本的增、删、查、改,及时上传新绘本,和更改相应的绘本信息,实现对绘本的管理。当管理员上传新绘本或更新绘本信息时,用户都能及时的查看到,实现系统实时更新。管理员绘本管理功能由PictureBook类的addPictureBook()和updatePictureBook()和deletePictureBook()方法实现。3.7.4管理员预约借阅管理管理员可以对用户的预约借阅进行管理,当用户提交预约申请时,管理员可以查看到用户预约信息,如果用户到截止借阅时间还未前来借阅,就可以取消其预约,当用户在借阅期内前来借阅,可以确认其信息,然后确认添加借阅,使用户真正借阅到绘本。管理员借阅管理功能由Preview类的addPreview()和deletePreview方法实现。3.7.5管理员借阅管理管理员可以对用户的借阅进行管理,管理员可以查看用户的借阅信息,以了解用户的借阅需求,当用户看完绘本前来归还的时候,可以使用归还绘本功能,使绘本真正归还到绘本馆,然后会根据用户借阅的天数计算应付的租借款,实现自动计算化。管理员借阅管理功能由Borrow类的addBorrow()和deleteBorrow()方法实现。第四章 系统实现 4.1运行环境 系统:Windows 7 硬盘:320GB
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版琴行钢琴租赁合同范本含租赁押金及退还规定
- 2025年度国际物流货物安全担保合同范本
- 2025版数控机床购置及培训服务合同
- 2025年二手车维修保养与销售服务合同范本
- 2025年度企业人力资源招聘与配置服务合同
- 贵州省印江土家族苗族自治县2025年上半年事业单位公开遴选试题含答案分析
- 2025版高校期刊论文保密及成果转化协议范本
- 2025版智能砌墙技术施工合同
- 2025年度房地产开发项目营销策划执行合同示范
- 2025房地产开发股东合作协议书:产业园区共建
- 涉爆人员培训内容
- 信息技术智能办公教程 课件 任务5-邮件合并
- 中建三局项目商务策划书(23P)
- 高一数学必修一必修二各章知识点总结
- 《拆装液压系统》课件
- 胃肠间质瘤规范化外科治疗中国专家共识(2025版)解读课件
- 校车与交通安全知识
- 仓库管理评审报告怎么写范文
- 《电气控制基础知识》课件
- 2024临床输血指南
- 初中英语7-9年级上册超全语法梳理人教版
评论
0/150
提交评论