图书网上查询系统.doc_第1页
图书网上查询系统.doc_第2页
图书网上查询系统.doc_第3页
图书网上查询系统.doc_第4页
图书网上查询系统.doc_第5页
免费预览已结束,剩余28页可下载查看

下载本文档

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

文档简介

i 图书网上查询系统图书网上查询系统 摘摘 要要 随着 Internet 的飞速发展,网络得到广泛而深入的应用。如电子商务,它改变 了传统的商务模式,把传统的商业活动搬到网络上,人们可以在足不出户的情况下完 成商务活动。这使得在网上实现图书查询与交易成为可能。 本文采用的是目前 Internet 上开发 WEB 应用程序时使用得最热门的编程语言 Java,采用 JSP 技术,结合 MySQL 数据库存取技术,应用 SSH(Struts + Spring + Hibernate)框架,设计一个图书网上查询系统。该系统可以实现从浏览、分类和查 询,到用户自己的添加、修改、删除,还有管理员管理的功能等。本系统界面简单直 观,易于操作和使用,交互性强。 关键字:关键字: Java; JSP; MySQL; SSH;信息查询系统 ii Books Online Inquiry System ABSTRACT With the development of Internet, the network gets extensive and deep application. Such as e-commerce, it changes the traditional commercial mode, moves the traditional business activity to the network, people can finish the commercial activity under the home- confined situation. This make on the net realizing books inquire with transaction becoming possible. This paper designs a web library of information inquiry system.It uses the JAVA programming language which is the hottest programming language for WEB development on Internet, using JSP technology, combining MySQL data stock and fetch technology, applying SSH (Struts + Spring + Hibernate) framework. This system realizes from browse, classification, and query into the users themselves add, modify and delete, and an administrator system, etc. This system has simple and intuitionistic interface, and easy to operating and using, and has strong interactivity. Keywords:Java; Jsp; MySQL; SSH; Information inquiry system iii 目目 录录 摘 要.I ABSTRACT.II 第一章 绪 论.- 1 - 1.1 课题开发背景 .- 1 - 1.1.1 电子商务背景 .- 1 - 1.1.2 网上书店背景 .- 1 - 1.1.3 应用技术背景 .- 2 - 1.2 课题开发目标及目的 .- 2 - 第二章 相关技术介绍.- 4 - 2.1 JAVA SERVER PAGE 简介 .- 4 - 2.2 MYSQL 简介 .- 4 - 2.3 SSH 简介 .- 5 - 2.3.1 Struts .- 5 - 2.3.2 Spring .- 6 - 2.3.3 Hibernate .- 7 - 第三章 系统设计.- 9 - 3.1 基本需求 .- 9 - 3.2 模块设计 .- 9 - 3.3 系统整体架构 .- 10 - 3.3.1 系统结构 .- 10 - 3.3.2 开发环境 .- 12 - 第四章 详细设计与实现.- 14 - 4.1 模块实现 .- 14 - 4.2 数据库设计 .- 18 - 4.3 系统实现问题及解决方法 .- 19 - iv 第五章 系统运行说明.- 21 - 第六章 系统测试.- 26 - 结束语.- 27 - 致谢.- 28 - 参考文献.- 29 - - 1 - 第一章第一章 绪绪 论论 1.11.1 课题开发背景课题开发背景 如今的社会,随着网络技术的深入发展,网络的普及面越来越广,其在很多新的 领域得到应用,如电子商务系统,通过这个系统,人们可以把很多商务活动搬到网络 上来,这样人们就可以在足不出户的情况下完成商务活动。网上书店就是这样的一个 电子商务系统,其有着很多优点,如没有区域限制、选择面广、价格便宜、交易方便 等,因此网上书店有发展的必要,也有发展的基础。 1.1.1 电子商务背景 电子商务是指在 Internet 上进行的商务活动,其主要功能包括了网上的广告宣 传、咨询服务、在线订购、在线支付、电子帐户、意见征询、交易等商务活动。电子 商务可以分为侠义电子商务和广义电子商务两种,侠义的电子商务就是电子交易,主 要是指利用 Web 提供的通信手段在网上进行的交易。而广义的电子商务包括电子交易 在内的利用 Web 进行的全部商业活动,如市场分析、客户联系、物资调配等等,也叫 做电子商业。这些商务活动可以发生于公司内部、公司与公司之间以及公司与客户之 间。 如今,我们可以注意到电子商务中存在的“重电子、轻商务”的倾向。然而,网 站只不过是电子商务的后台支撑,电子商务真正最重要的是“商务” 。另一方面,网 上购物已经完全取代了电子商务的概念。事实上,它只是电子商务的一小部分,而完 整的电子商务过程则是一切利用现代信息技术的商业活动的电子化过程。 在中国,电子商务未来将呈现如下发展趋势1: (1) 电子商务的深度将进一步拓展。 (2) 中国电子商务将面临严峻挑战。 (3) 电子商务网站将会出现兼并热潮。 (4) 行业电子商务将成为下一代电子商务发展主流。 1.1.2 网上书店背景 现在网上流行的网上书店,必备商品管理、配送管理、支付管理、订单管理、会 员管理、查询统计等功能,另外还有文章、图片、上传、下载、广告、论坛等网站功 能。普通用户进入网站,可以根据自己的要求查找书籍等资料,查看各种图书信息等, - 2 - 注册为会员后,可以进行图书交易,通过网上支付或汇款,购买自己满意的图书,或 与各用户进行交流。这一系列操作,都是在足不出户的情况下发生的,给爱学习的人 们带来了极大的方便。 科技的不断发展,图书的不断更新,传统的图书销售方式已有些不适合,有些学 生想找老书、旧书却找不到,而每年丢掉的图书不计其数,这是浪费资源。本课题是 一个类似于网上书店系统的,题目是图书网上查询系统,但是如题目所说,与现在流 行的网上书店不同的是,没有购买之类的功能,只提供区域内查询哪里有自己想要的 图书等等功能。 在大学里,每学期开始,同学们的新书有的是集体订购的,有的是向学长借或买 的,或是向旧书摊买的,一个很明显的现象就是学生关系面窄,有的借不到书,本系 统提供给广大学生一个平台,在上面可以找到想要的书,而且不局限于自己学校,同 时也不会耽误学习时间,一切可在网上交流或同学私底下联系。 1.1.3 应用技术背景 本课题虽然不是很新颖,但是涉及到 JSP 语言,数据库用 MySQL,通过 SSH 框 架来进行设计,即 Struts + Spring + Hibernate,或者说 Spring 整合 Struts、Hibernate 开发。 JSP 技术,是用 java 开发应用的基本技术,是现今比较流行的一种动态网页技术 标准,该技术具有健壮的存储管理和安全性,世界上一些大的电子商务解决方案提供 商都采用 JSP/Servlet。因为该系统的数据库存储需求不大,操作也不复杂,所以数据 库采用 MySQL。又因为大学期间学过,所以这里就采用 jsp、MySQL 来做设计。整 个设计的技术难点就在于 SSH 框架的搭建使用,这是以前从没接触过的,在查阅了 大量资料后,发现采用 SSH 是一个很好的框架,开发效率高,系统脉络清晰,可以 很好的把握系统各部分之间的联系,对于开发及后期的维护有着莫大的好处。虽然对 于初学者而言,这打乱了以前编写网页的习惯,但是现在足够就行,所以我选择了这 个技术。 1.21.2 课题开发目标及目的课题开发目标及目的 本课题的开发,旨在通过图书网上查询系统,帮助同学们在网上搜索查询自己所 需要的书,各个学校之间的同学也可以互相交流手头上空余的图书,从而节省资源。 最终的系统,希望能实现图书的详细查询,通过用户的注册,然后公开部分信息,使 其他用户能在线了解图书所有者的信息,然后互相联系,确定是否交易等等。 - 3 - 在开发本系统的同时,我们自己也能够加深 JSP 技术的了解、提高 Java 的编写 能力,学习到了 SSH 的搭建使用及思想,对 MyEclipse 这个开发工具的操作也将会 更加熟练。而且自己本身也会对一个项目的开发过程有一定的了解,学会处理事情的 方法,这对毕业后步入社会工作也会有一定的帮助。 - 4 - 第二章第二章 相关技术介绍相关技术介绍 2.12.1 JavaJava ServerServer PagePage 简介简介 Java Server Page (简称为JSP )是由 Sun 公司在 Java 语言上开发出来的一种 动态网页制作技术,其是JAVA技术的一部分。它提供了一种建立动态网页的简单方 法,并为开发人员提供了一个Server端框架,基于这个框架,开发人员可以综合使用 HTML,XML,JAVA语言以及其他脚本语言,灵活,快速地创建和维护动态网页, 特别是目前的商业系统。JSP作为JavaTM技术的一部分,其能够快速的开发出基于所 有Web服务器和应用服务器环境,独立于平台的应用程序,而且具有非常强的可伸缩 性。同时,JSP把用户界面从系统内容中分离开来,使得设计人员能够在不改变底层 动态内容的前提下改变网页布局。JSP 页面被编译成 servlets,并可能调用 JavaBeans 组件(beans)或 Enterprise JavaBeans 组件(企业 beans) ,以便在服务器端 处理,因此,JSP 技术在构建可升级的基于 web 的应用程序时扮演了重要角色。 JSP 页面并不局限于任何特定的平台或 web 服务器上。JSP 规范在业界有着广泛的 适应性。2 本课题中,HTML 语言及部分 javascript 语句构成了网页,网页中还用到 struts 标签中的 html、bean 等标签库及 JSP 的 jstl/core 标签库,使用这些标签库,大大 的减少了脚本的使用,提高了效率。 2.22.2 MySQLMySQL 简介简介 MySQL3最初的开发者的 目的是用 mSQL 和他们自己的快速低级例程 (ISAM)去连接表格。在经过一些测试后,开发者得出结论: mSQL 并没有他们需 要的那么快和灵活。这 促使了一个使用几乎和 mSQL 一样的 API 接口的用于他们 的数据库的新的 SQL 接口的产生,这样,这个 API 被设计成允许为用于 mSQL 而写的第三方代码更容易移植到 MySQL。 MySQL 作为一个小型关系型数据库管理系统 ,目前其被广泛地应用在 Internet 上的中小型网站中。由于其 具有体积小、速度快、总体拥有成本低,尤其 是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了 MySQL 作为网站数据库。 与其他的大型数据库例如 Oracle、DB2、SQL Server 等相比,MySQL 也有自己的不足之处 , - 5 - 如规模小、功能有限( MySQL Cluster 的功能和效率都相对比较差)等,但是 这 些不足丝毫也没有减少它受欢迎的程度。 对于一般的个人使用者和中小型企业来 说,MySQL 提供的功能已经绰绰有余, 而且由于 MySQL 是开放源码软件,因此 可以大大降低总体拥有成本。 本课题所需的是一个小型数据库,所以用MySQL 正好。相对于其它数据库 而言,MySQL 更加容易操作。 2.32.3 SSHSSH 简介简介 SSH 在 J2EE 项目中表示了 3 种框架,既 Struts + Spring + Hibernate 2.3.1 Struts 要了解 Struts 框架,必须先了解 MVC 设计模式,Struts 技术就是基于 MVC 设计模式的。 MVC 设计模式起源于 Smalltalk 语言,它由模型( model) ,视图 (view) ,控制器(Controller)三个部分组成 4。关于 MVC 这个概念,简单的说 如下图表示: 图 2-1 MVC 结构图 其中的三个概念如下 6: 模型(model):应用程序的主体部分,表示业务数据或业务逻辑。 视图(view):用户界面相关的部分,是用户看到并与之交互的界面。 控制器(controller):定义对用户的输入执行相关操作的接口,它用来操作模型 和数据对象。 模型模型 封装应用程序状态 响应状态查询 应用程序功能 通知视图改变 视图视图 解释模型 模型更新请求 发送用户输入给控制器 允许控制器选择视图 控制器控制器 定义应用程序行为 用户动作映射成模型更新 选择响应的视图 状态查询状态改变 通知改变 视图选择 状态查询 - 6 - Struts 实现的 MVC 结构如下图所示: (2) HTTP 请求 用户 Struts-config.xml Struts 框架总控制器 (ActionServlet) 业务功能控制器 (Action) 业务功能类 (JavaBean/EJB) 视图 (JSP) 模型 (ActionForm) (1) 初始化 (8) HTTP 响应 (5) 调用后台业务功 能类完成商业逻辑 (7) 转换 HTTP 请 求到目标响应对象 (6) 返回目标 响应对象 (4) 把请求转换到 具体 Action 处理 (3) 填充 Form Bean 图 2-2 Struts 实现的 MVC 框架 下面介绍一下 Struts 的工作流程: 服务器启动时就会加载并初始化 ActionServlet,ActionServlet 读取 struts- config.xml 文件中的配置信息存放到各种配置对象中。 以登录为例,第一次打开 login.jsp 会先实例化 loginFrom,把默认值赋给表 单元素。输入用户名和密码,然后提交表单到action 属性的 login.do,在 struts- config.xml 文件匹配 action 下的 path 属性找到 login.do,通过 name 属性找 form- beans 中的 form-bean 的 name 属性得到 ActionForm 的包名类名 LoginForm,先实 例化 form,把表单的值 username、pwd 填充给 form,调用 form 的 validate 方法 验证,ActionErrors 返回 null 表单验证通过,否则失败返回 input 指定的页面,验 证通过会实例化 Action,执行 Action 的 execute 方法。 2.3.2 Spring Spring7是一个开源框架,它是为了解决企业应用开发的复杂性而创建的。 Spring 使用基本的 JavaBean 来完成以前只可能由 EJB 完成的事情。然而, Spring 的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言, 任何 Java 应用都可以从 Spring 中受益。 目的:解决企业应用开发的复杂性 功能:使用基本的 JavaBean 代替 EJB,并提供了更多的企业应用功能 - 7 - 范围:任何 Java 应用 简单来说,Spring 是一个轻量级的控制反转 (IoC)和面向切面(AOP)的容器框 架。 轻轻量量从大小与开销两方面 来说,Spring 都是轻量的。完整的 Spring 框 架可以在一个大小只有 1MB 多的 JAR 文件里发布。 同时 Spring 所需的处理开销 也是非常小的。另外,Spring 是非侵入式的:典型 的特点,Spring 应用中的对象 不依赖于 Spring 的特定类。 控控制制反反转转Spring 通过一种称作控制反转( IoC)的技术促进了松耦合。 当应用了 IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个 对象自己创建或者查找依赖对象。你可以认为IoC 与 JNDI 相反不是对象从 容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。 面面向向切切面面Spring 提供了面向切面编程的丰富支持,允许通过分离应用 的业务逻辑与系统级服务(例如审计( auditing)和事务(transaction)管理)进 行内聚性的开发。应用对象只实现它们应该做的 完成业务逻辑 仅此而已。 它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。 容容器器Spring 包含并管理应用对象的配置和生命周期, 它就像一种容器, 你可以配置你的每个 bean 如何被创建基于一个可配置原型( prototype), 你的 bean 可以创建一个单独的实例或者每次需要时都生成一个新的实例以 及它们是如何相互关联的。然而, Spring 不应该被混同于传统的重量级的 EJB 容器,它们经常是庞大与笨重的,难以使用。 框框架架Spring 可以通过简单的组件配置、组合成为复杂的应用。在 Spring 中,应用对象被声明式地组合,典型地是在一个XML 文件里。Spring 也 提供了很多基础功能 ,如事务管理、持久化框架集成等等。 所有 Spring 的这些特征使你能够编写更干净、更可管理、并且更易于测试的 代码。它们也为 Spring 中的各种模块提供了基础支持。 2.3.3 Hibernate Hibernate8是一个开放源代码的对象关系映射框架,它对JDBC 进行了非常 轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数 据库。 Hibernate 在任何使用 JDBC 的场合都可以应用,它不仅可以在 Java 的客 户端程序使用,也可以在 Servlet/JSP 的 Web 应用中使用, 最重要的意义是, - 8 - Hibernate 可以在应用 EJB 的 J2EE 架构中取代 CMP,完成数据持久化的重 任。 Hibernate 一共有 5 个核心接口, 它们分别为: Session、SessionFactory、Transaction、Query 和 Configuration。在任何开发中都 会用到这 5 个核心接口。通过这些接口, 既可以对持久化对象进行存取, 还能够 进行事务控制。下面分别介绍这五个核心接口。 Session 接接口口:Session 接口的作用是负责 执行被持久化对象的 CRUD 操作。 但需要注意的是, Session 对象是非线程安全的。同时, Hibernate 的 session 与 JSP 应用中的 HttpSession 也有所不同。Session 一般指的是 Hibernate 中的 session,而以后会将 HttpSesion 对象称为用户 session。 SessionFactory 接接口口:SessionFactory 接口负责初始化 Hibernate。它的作用是 充当数据存储源的代理 和负责创建 Session 对象。这里用到了工厂模式。 但要注 意的是,由于在 一般情况下,一个项目通常只需要一个 SessionFactory 就够,当 需要操作多个数据库时,可以为每个数据库指定一个SessionFactory,因此 SessionFactory 并不是轻量级的, 。 Configuration 接接口口:Configuration 接口负责配置并启动 Hibernate,创建 SessionFactory 对象。在 Hibernate 启动过程中, Configuration 类的实例先是定位 映射文档位置、读取配置,然后 再创建 SessionFactory 对象。 Transaction 接接口口:Transaction 接口负责事务相关的操作。它 不是必须的, 是 可选的,开发人员可以设计编写自己的底层事务处理代码。 Query 和和 Criteria 接接口口:Query 和 Criteria 接口负责执行各种数据库查询。它 可以使用两种表达方式 ,它们分别是 HQL 语言或 SQL 语句。 - 9 - 第三章第三章 系统设计系统设计 3.13.1 基本需求基本需求 图书网上查询系统主要是实现网上搜索图书功能的系统。通过调查要处理的对象, 明确了用户的需求,在这里我们需要了解用户有什么样的具体要求。 1. 图书浏览:用户进入网站后,不用注册也可以浏览所有的图书,用户注册登 录后,可浏览自己的图书。 2. 图书详情:随意查看某本图书的详细信息。 3. 图书搜索:用户进入网站后,不用注册就可以搜索自己想要的图书。 4. 用户注册登录:用户为了能在网站上进行更多的操作,需注册为会员并登录。 5. 修改个人信息:用户登录后,可对注册的信息进行修改完善。 6. 添加个人图书:用户登录后,可添加自己的图书,提交到网站供别人查询。 7. 修改删除图书:用户登录后,可修改已添加图书的信息,或删除。 8. 查看图书所属:用户进入网站后,可查看图书所属者的具体信息。 9. 管理员后台登录管理。 3.23.2 模块设计模块设计 根据需求分析与设计目标,结合实际情况,本系统功能模块设计分为如下几个模 块: 1. 导航菜单 该页面是一个单独的页面,其它页面直接引用该页面,实现了与其它模块的链接, 注册用户登录后还可以获得其它操作权限。 2. 首页 在这里显示最新上传更新的 8 本图书的一些基本信息,还有模糊分类查询、分类 分页查询等功能。 3. 用户管理 该模块实现了用户的注册、登录、查看修改信息。 4. 图书管理 该模块实现了图书的浏览、查询。浏览可按类分页浏览,查询可按不同条件查询, - 10 - 有模糊查询也有精确查询,查询结果分页浏览。用户登录后,还可以对自己的图书进 行管理,包括浏览、增加、修改、删除图书。 5. 图书详细信息 不管有没有用户登录,都能从图书浏览处直接调用该模块,查看图书详细信息。 6. 后台管理 管理员通过特定帐号登录后台进行管理,包括所有的信息管理。 3.33.3 系统系统整体架构整体架构 3.3.1 系统结构 图书网上查询系统 用户管理图书管理后台管理 用 户 注 册 用 户 登 录 修 改 信 息 图 书 浏 览 图 书 查 询 图 书 详 细 信 息 图 书 管 理 会 员 管 理 用户 图书 管理 图 3-1 系统结构图 数据流图:是一种描述软件系统逻辑模型的图形符号。这种图形表示即可以从本 质上描述计算机软件系统的工作情况,又适合非计算机专业人员学习和掌握,在需求 分析中是一种很好的交流和表达工具。 带箭头的线表示数据流,其中箭头表示了数据的流动方向。 圆框表示对数据的加工。 - 11 - 方框表示数据的起点和终点。 部分数据流图: 图 3-2 图书网上查询系统数据流图 图 3-3 用户基本信息处理数据流图 系 统 图 书 网 上 查 询 系 统 用户注册信息 用户登陆信息 图书浏览信息 图书查询信息 用 户 基 本 信 息 文 件 用户信息 处理 注册处理 修改信息 图书查询处理 书籍总览 书名(模糊)查询 用户信息修改信息 图书信息修改信息 作者查询 出版社查询 所有者查询 ISBN 查询 - 12 - 图 3-4 书籍查询处理数据流图 图 3-5 管理员管理数据流图 3.3.2 开发环境 1. 软件环境 (1) 服务器端: 操作系统:Windows XP 及其以上版本。安装好 JDK 1.6.0_13 并配置好环境变量。 (注意不要把 JDK 安装在中文目录下,否则可能会不能识别 JDK 路径) 变量名:JAVA_HOME 变量值:JDK 安装路径jdk1.6.0_13 变量名:path 变量值:%JAVA_HOME%bin;%JAVA_HOME%jrebin; 变量名:classpath 变量值: .;%JAVA_HOME%lib;%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jar; 管理员登陆 添加图书 删除图书 管 理 员 信 息 文 件 浏览图书 浏览用户 修改图书 删除用户 添加用户 - 13 - 数据库环境:MySQL 5.1 及其以上版本,及数据库连接驱动包 mysql-connector- java-5.1.5-bin.jar,数据库界面操作用 SQLyogEnt。 其它软件:MyEclipse 6 及其以上版本,服务器用 MyEclipse 自带的 Tomcat。 (2) 客户端: 操作系统:Windows 98 及其以上版本,建议使用 Windows XP。 浏览器:微软 IE 浏览器,或基于 IE 浏览器内核的浏览器,建议使用微软 IE6.0 浏览器及其以上版本 2. 硬件环境 (1) 服务器端: 处理器:建议使用 Pentium 4 2.0 MHz 及以上处理器。 内存:256 MB RAM 建议使用 512 MB RAM 及其以上容量。 硬盘空间:安装驱动器上要求 300MB 以上可用空间,建议有 100MB 的硬盘剩余 空间。 (2) 客户端:无特殊要求,能保证正常上网即可。 - 14 - 第四章第四章 详细设计与实现详细设计与实现 4.14.1 模块实现模块实现 1. 导航菜单页面 head.jsp 详细设计及描述 判断用户是否登录 未登录用户,提供一下链接:首页 index.do、图书浏览 booklist.do、登录 login.jsp、注册 register.jsp 登录用户,提供一下链接:首页 index.do、图书浏览 booklist.do、我的图书 mybooklist.do、个人信息 edituser.jsp、注销 logout.jsp,其中提交给我的图书 的请求中,包括了登录用户的用户名username,来确定是哪个用户的图书 大体代码如下: try List user = manager.findUserByUsername(username);/根 据用户名查询对应记录 userinfo = (Userinfo)user.get(0);/获取取得记录中的第一条,并定义为 userinfor; String pwd = userinfo.getPwd();/从userinfor中间表中获取pwd; if(password.equals(pwd) request.getSession(true).setAttribute(loginedUser, userinfo); return mapping.findForward(success); if(!password.equals(pwd) request.setAttribute(error, e_pwd); catch(Exception e) /捕获异常,若用户名获取不到,则返回登录页面; request.setAttribute(error, e_user); return mapping.findForward(failed); 2. 首页 index.jsp 详细设计及描述 提供查询表单,提交查询条件select及内容serachname到 SearchAction.java,提交请求为 search.do 提供分类查询标签,跳转不同查询结果页面 提供图片链接,如百度、卓越网等 显示最新上传的 8 本图书的信息,在打开主页前,就提交了 index.do 至 - 15 - IndexAction.java,查询结果返回显示至主页 查看图书的详细信息,点击图书图片或图书名,发出请求 book.do?id=$books.id至 BookAction.java,在弹出窗口中浏览结果;点击所 属者名字,发出请求 userinfo.do 至 UserinfoAction.java,在弹出窗口中浏览图 书所属者信息 提交 booklist.do 至 BooklistAction.java,跳转至浏览所有图书页面 booklist.jsp List booklist = bmanager.findAll(); List books = booklist.subList(0,8); /获取最新的几本图书列表 request.setAttribute(books, books);/保存图书列表 return mapping.findForward(success); 3. 用户管理详细设计及描述 用户注册 register.jsp:提交用户基本信息表单,发送请求 register.do 至 RegisterAction.java;重置所有已填信息为空;返回按钮返回主页 Userinfo userinfo = new Userinfo(); List users = manager.findUserByUsername(userForm.getUsername();/根据用户名查询对应记 录 userinfo = (Userinfo)users.get(0); request.setAttribute(error, e_user1);/返回该用户已存在 if(manager.save(user) /保存用户注册信息 request.setAttribute(result, success); return mapping.findForward(success); else request.setAttribute(error, 用户信息添加失败!); 用户登录 login.jsp:提交用户的用户名密码表单,发送请求 login.do 至 LoginAction.java;返回按钮返回首页;提供链接跳转至注册页面 List user = manager.findUserByUsername(username);/根据用 户名查询对应记录 userinfo = (Userinfo)user.get(0);/获取取得记录中的第一条,并定义为 userinfor; String pwd = userinfo.getPwd();/从userinfor中间表中获取pwd; if(password.equals(pwd) request.getSession(true).setAttribute(loginedUser, userinfo); return mapping.findForward(success); if(!password.equals(pwd) request.setAttribute(error, e_pwd); 用户信息修改 edituser.jsp:用户登录后将用户信息存入 session 中,直接从 session 中读取 logineduser 信息,显示给用户看;信息修改后,提交用户信息 - 16 - 表单,发送请求 edituser.do 至 EdituserAction.java;返回按钮返回上一步操作 页面 if(manager.update(user) /更新用户信息 request.setAttribute(result, suc); request.getSession(true).setAttribute(loginedUser, user); return mapping.findForward(success); else request.setAttribute(error, e_editu); 4. 图书管理详细设计及描述 图书浏览 booklist.jsp:返回 booklist.do 的结果,分页显示所有图书,每页最 多显示 5 本;查看图书的详细信息,点击图书图片或图书名,发出请求 book.do?id=$books.id至 BookAction.java,在弹出窗口中浏览结果;点击所 属者名字,发出请求 userinfo.do 至 UserinfoAction.java,在弹出窗口中浏览图 书所属者信息;提供查询表单,填写后提交查询条件select和查询内容 searchname,发送请求 search.do 至 SearchAction.java,返回的结果分页显示 在查询结果页面 searchlist.jsp /分析当前页码 String pageString = request.getParameter(page); if(pageString = null | pageString.length() = 0) pageString = 1; int currentPage = 0; try currentPage = Integer.parseInt(pageString);/当前页码 catch(Exception e) int pageSize = 5;/每页显示的数据数 /读取数据 List books = bmanager.findPagedAll(currentPage, pageSize); request.setAttribute(books, books);/保存用户列表 request.setAttribute(totalPage, bmanager.getTotalPage(pageSize);/保存总页数 request.setAttribute(totalCount, bmanager.getTotalCount();/保存 记录总数 request.setAttribute(currentPage, currentPage);/保存当前页码 return mapping.findForward(success); String sel = request.getParameter(select); String sn = request.getParameter(searchname); sn = new String(sn.getBytes(ISO-8859-1), UTF-8); List booklist = null; switch(sel.toCharArray()0) case w: booklist = bmanager.findByWriter(sn); break; case p: booklist = bmanager.findByPublisher(sn); - 17 - break; case o: booklist = bmanager.findByOwner(sn); break; case i: booklist = bmanager.findByIsbn(sn); break; default: booklist = bmanager.findBookByBookname(sn); break; 我的图书浏览 mybooklist.jsp:返回 mybooklist.do 的结果,分页显示我的图书, 每页最多显示 5 本;查看图书的详细信息,点击图书图片或图书名,发出请 求 book.do?id=$books.id至 BookAction.java,在弹出窗口中浏览结果;提供 添加新书的链接至 addbook.jsp;提供删除图书链接,提交 deletebook.do 及要 删除的图书 id 至 DeletebookAction.java,结果返回该页 增加图书 addbook.jsp:提交图书基本信息表单,发送请求 addbook.do 至 AddbookAction.java;点击“浏览”选择要上传的图书封面图片的路径,点击 添加发送请求至 upload.jsp,上传成功返回该页;填写完图书信息表单,提交 请求 addbook.do 至 AddbookAction.java;返回按钮返回我的图书页面 if(bmanager.save(newbook) /保存新增图书的信息 request.getSession(true).setAttribute(book, newbook); request.setAttribute(result, suc); return mapping.findForward(success); else request.setAttribute(error, e_addbook); 修改图书 editbook.jsp:由我的图书 mybooklist.jsp图书详细信息 book.jsp 页 面跳转而来,修改完后,提交表单请求 editbook.do 至 EditbookAction.java, 修改成功后返回数据至该书信息显示页面 book.jsp;返回按钮返回该书信息 显示页面 book.jsp if(bmanager.update(book) /更新图书信息 request.getSession(true).setAttribute(book, book); request.setAttribute(result, suc); return mapping.findForward(success); else request.setAttribute(error, e_editbook); 5. 图书详细信息页面 book.jsp 详细设计及描述 返回 book.do 的结果,显示前一步所要看的图书的详细信息;修改按钮跳转 至修改页面 editbook.jsp;关闭按钮关闭该窗口 Bookinfo book = new Bookinfo(); book = (Bookinfo)bmanager.findById(Integer.parseInt(request.getParameter(id) ); - 18 - if(book=null) request.setAttribute(error, e_bookid); return mapping.findForward(failed); if(re

温馨提示

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

评论

0/150

提交评论