网上书店商务系统设计与应用毕业论文.doc_第1页
网上书店商务系统设计与应用毕业论文.doc_第2页
网上书店商务系统设计与应用毕业论文.doc_第3页
网上书店商务系统设计与应用毕业论文.doc_第4页
网上书店商务系统设计与应用毕业论文.doc_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

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

文档简介

网上书店商务系统设计与应用毕业论文网上书店商务系统设计与应用毕业论文 目 录 1 前言 1 2 开发平台简介 3 2 1 JAVA 语言简介 3 2 2 JAVA 语言在网络上的应用 3 2 3 JSP 的基础 SERVLET 技术 3 2 4 JAVABEANS技术 4 2 5 JSP 技术简介 5 2 5 1 Windows 平台下配置 JSP 运行环境 5 2 5 2 JSP ASP 和 PHP 技术之比较 7 2 5 3 JSP 语法基础 7 2 6 SQL SERVER 2000 简介 8 2 6 1 SQL SERVER 2000 的主要特点 9 2 6 2 SQL SERVER 2000 的新特性 9 3 需求分析 9 3 1 目的 10 3 2 技术需求 10 3 2 1 需求分析目标 10 3 3 软件环境 10 3 4 系统功能需求 10 3 4 1 面向顾客部分功能 10 3 4 2 后台管理功能 11 3 5 前台页面需求设计 11 3 5 1 重用的页头 11 3 5 2 重用的页尾 12 3 5 3 左侧页面样式 12 3 5 4 首页页面设计 13 3 5 5 书籍详细信息页面 14 3 5 6 购物页面 15 3 5 7 收款台页面 15 3 5 8 查看订单页面 16 3 6 后台管理页面需求设计 17 3 6 1 后台管理可重用页头样式 17 3 6 2 管理类页面大概模式 17 3 7 性能需求 18 3 8 其他需求 18 4 总体设计 18 4 1 总体设计目的 18 4 2 业务流程图 18 4 2 1 顾客购物业务流程图 18 4 2 2 系统业务处理流程图 19 4 3 系统功能模块划分与设计 20 4 3 1 网上书店的前台功能模块图 20 4 3 2 网上书店的后台台功能模块图 21 4 4 系统设计思想 21 4 4 1 页面模块化 21 4 4 2 代码的复用 22 4 4 3 页面图片处理 22 4 4 4 网页设计风格 22 4 5 文件路径和说明 22 4 5 1 文件夹设置 22 4 5 2 顾客管理文件 23 4 5 3 购物部分文件 23 4 5 4 书籍操作部分文件 24 4 5 5 前台其他页面文件 24 4 6 后台管理页面文件 25 4 7 数据库需求分析 26 4 7 1 数据库概念结构设计 27 4 7 2 DFD 图 28 4 7 3 数据库表 30 5 详细设计说明书 35 5 1 网上书店项目前台页面详细设计说明书 35 5 1 1 连接和操作数据库 35 5 1 2 中文显示处理 39 5 1 3 首页信息页面实现 41 5 1 4 新书上架功能实现 43 5 1 5 购物车功能的实现 44 5 1 6 查看购物车的实现 46 5 1 7 修改购物车图书数量功能实现 48 5 1 8 购物车中移去指定图书功能实现 49 5 1 9 清空购物车功能实现 49 5 1 10 订单生成功能实现 49 5 1 11 库存管理功能实现 52 5 1 12 定单查询功能实现 53 5 2 网上书店后台详细设计 54 5 2 1 分页页面功能详细说明 54 5 2 2 添加图书信息功能实现 55 5 2 3 修改图书信息功能实现 58 5 2 4 图书删除功能的实现 60 5 2 5 顾客帐户管理功能实现 61 5 2 6 定单管理功能实现 62 5 2 7 公告管理页面功能实现 63 5 2 8 库存管理功能实现 63 6 网上书店页面测试说明 64 6 1 测试目的 64 6 2 系统运行和调试环境 64 6 3 测试用例和结果 65 6 3 1 添加书籍测试 65 6 3 2 顾客注册测试 67 6 3 3 顾客购物测试 69 6 3 4 订单测试 71 6 4 性能测试 73 6 5 安全性测试 73 6 6 稳定性测试 73 6 7 浏览器兼容性测试 73 结 束 语 73 参 考 文 献 74 ONLINE BOOKSTORE COMMERCE SYSTEM 75 致 谢 76 0 1 前言 随着网络与计算机技术 信息技术 的发展 信息技术作为工具被引入商务活动领 域从而产生了电子商务 Electronic Commerce 简称 EC 电子商务就是利用信息技术将 商务活动的各实体 企业 消费者 政府联系起来 通过互联网络将信息流 商流 物 流 资金流完整结合从而实现商务活动过程 商流包括商业洽谈 下单 售后服务等商 务活动过程 物流包括商品物资的配送调度 资金流就是交易中的资金转移过程 信息 流包括商品信息 客户与供应企业信息 服务信息等 也就是说 涉及商务领域的咨询 洽谈 下单定购 资金付款 意见征询 交易管理 电子报关 电子纳税等都是全部通 过 Internet 进行 目前 网上书店在国际互联网上可以实现的商务已经多样化 可以完成从最基本的信 息展示 信息发布功能到在线交易 在线客户服务 在线网站管理功能等 可以说 传 统书店所具备的功能几乎都可以在互联网上进行电子化的高效动作 做为一个虚拟的商 店 网上商店具有很多新的特性 以下这些是它的优势 1 其营业成本完全有理由比传统意义上的商店低得多 不需支付昂贵的店铺租 金 花费浩大的装修 不需要将大笔的流动资金作为货物而沉积在店里 可依靠 零库 存 管理 缩速资金周转的周期 可以加速周转 2 同时 网上商店更容易开拓全场市场 国际互联网 www 顾名思义体现了全 球的一体化 实现 24 小时营业 不需要营业员 网上商店可以被设置成一个自动售货 机 可以多媒体促销 各种文字 图象和动画 声音 让受众全方位感受广告诉求 依 靠客户数据库能够提供全新的个人化服务等等 这些特性使网上商店充满生命力 很可 能成为传统商业的有力的挑战者 3 通过网上购物 购买者足不出户 可以节省很多时间 这给消费者带来了利 润和方便 要实现这样的功能 离不开后台数据库的支持 顾客验证信息 收集到的顾客点击 信息 主题层次信息 分析得出的关联规则表等大量的数据都由数据库管理系统管理 本文中数据库服务器采用了 Microsoft SQLSERVER 2000 数据库作为 JDBC Java DataBase 1 Connectivity 数据源 并以先进的分页技术和 Session 技术进行数据库显示等操作 使 Web 页面与数据库紧密联系起来 整个个性化页面生成主要由 Dreamweaver 2004 和 TOMCAT JSP 技术实现 本设计主要完成顾客管理 图书目录管理 图书信息录入管理 书店定单管理 图书的浏览和查找 书店购物结帐功能模块的设计 实现与完善整个网 站的组织建立 并进行了详细的网站功能测试工作 网上书店电子商务系统需要的关键技术 1 JDBC 数据库连接对电子商务系统来说是最为重要的部分 Java 中连接数据库的技术是 JDBC Java Database Connectivity 很多数据库系统带有 JDBC 驱动程序 Java 程序就是通 过 JDBC 驱动程序与数据库相连 执行查询 提取数据等操作 JDBC 大致被分为三个部分 即 JDBC API JDBC 驱动程序管理器和 JDBC 驱动程序 JDBC API 通过 Java sql 包来提供 在 JDBC API 上只设计为利用数据库而提供的类的接 口 而这个接口是由提供 JDBC 驱动的软件商来实际完成的 JDBC 驱动管理器的作用是 在 JDBC 运行结构上 提供最基础的指引功能 即当一个 JDBC API 程序进行数据库调用 时 它会选择一个正确的 JDBC 驱动程序进行连接 JDBC 驱动的作用是当 JDBC API 制作 的程序进行数据调用时 实际连接数据库并进行相应的处理 JDBC 驱动提供 JDBCAPI 的 接口类 2 JavaBeans JSP 程序并不直接访问数据库 而是通过 JavaBean 中间件来访问数据库 JavaBeans 是一种 Java 类 通过封装属性和方法成为具有某种功能或者处理某个业务的对象 它可 以直接被 JSP 页面或 Servlet 调用 是 JSP 扩展 Web 功能最强有力的一个方面 数据库 访问中间件用于封装常用的数据库 完成数据库连接 打开和关闭 执行查询 插入 更 新和删除等操作 将这些复杂的操作全部封装在 JavaBean 中 可以简化编程 3 数据库连接池技术 在数据库操作中 建立与数据库的连接是非常耗时的一项操作 并且数据库所能支持 的并发连接是有限的 多个并发连接将导致数据库运行效率急剧下降 使用连接池技术 Connection Pool 可充分重用消耗内存的资源 大大节省内存 提高服务器的服务效 2 率 能够支持更多的客户服务 数据库连接池技术对数据库连接的使用不是每次都要申 请 释放 这样可提高对网站请求的访问速度 可增加网站的并发请求处理能力 不会因 过多的并发请求导致网站瘫痪 4 安全技术 随着计算机网络的飞速发展和应用 网络信息安全技术也在不断地发展 现阶段已 采用了多种安全技术保护信息的安全 如 访问控制 数据加密 入侵检测 用户授权 与认证等 2 开发平台简介 2 1 JAVA 语言简介 Java 是一种简单易用 完全面向对象 具有平台无关性 安全可靠且主要面向 Internet 的开发语言 自从 1995 年正式问世以来 Java 的快速发展已经让整个 Web 世 界发生了翻天覆地的变化 在早期 Java 比较多的用在浏览器上 插入到网页中 即是 Java Applet 程序 成为最灵活 最强大的网页多媒体的载体 但由于 Java 虚拟机相对 于个人电脑而言 有占用资源大 安全性相对较差等缺点 Applet 逐渐的被后起之秀 Flash 所替代 但随着 Java Servlet 的推出 Java 在电子商务方面开始崭露头角 最新的 JSP Java Server Page 技术的推出 更是让 Java 成为基于 Web 的应用程序的首选开发工 具 目前的 Java 技术已成为所有大型电子商务项目的必然选择 2 2 JAVA 语言在网络上的应用 Java 程序可以获取网络上结点的图象 声音 HTML 文档及文本等资源 并可以对 获得的资源进行处理 例如 Java 程序可以每隔一定时间读取某结点提供的最新数据 并以图表的形式显示出来 在编程处理上 一般先生成一个 URL 类型的对象 然后用 Java 中相应的方法 method 获取该对象所代表的资源 以上仅是 Java 在客户端应用 的一些方面 目前 Java 更广泛的应用是在服务器端 这是本文研究的主要话题 下文 提及的 Servlet JSP 等技术都是 Java 在服务器端应用的具体形式 2 3 JSP 的基础 Servlet 技术 Java Servlet 是 JSP 技术的基础 JSP 本身也就是预先被编译成 Servlet 然后再运行 3 的 而且大型的 Web 应用程序的开发需要 Java Servlet 和 JSP 配合才能完成 Servlet 这 个名称大概源于 Applet 现在国内的翻译方式很多 本文为了避免误会 本文直接采用 Servlet 这个名称而不做任何翻译 读者如果愿意 可以称之为 小服务程序 Servlet 其实和传统的 CGI 程序和 ISAPI NSAPI 等 Web 程序开发工具的作用是相同的 在使 用 Java Servlet 以后 顾客不必再使用效率低下的 CGI 方式 也不必使用只能在某个固 定 Web 服务器平台运行的 API 方式来动态生成 Web 页面 许多 Web 服务器都支持 Servlet 即使不直接支持 Servlet 的 Web 服务器也可以通过附加的应用服务器和模块来 支持 Servlet 得益于 Java 的跨平台的特性 Servlet 也是平台无关的 实际上 只要符 合 Java Servlet 规范 Servlet 是完全平台无关且是 Web 服务器无关的 由于 Java Servlet 内部是以线程方式提供服务 不必对于每个请求都启动一个进程 并且利用多线程机制 可以同时为多个请求服务 因此 Java Servlet 效率非常高 但 Java Servlet 也不是没有缺 点 和传统的 CGI ISAPI NSAPI 方式相同 Java Servlet 是利用输出 HTML 语句来实 现动态网页的 如果用 Java Servlet 来开发整个网站 动态部分和静态页面的整合过程 简直就是一场噩梦 这就是为什么 SUN 还要推出 Java Server Pages 的原因 2 4 JavaBeans 技术 什么是 JavaBeans JavaBeans 就是 Java 的可重用组件技术 ASP 通过 COM 来扩充 复杂的功能 如文件上载 发送 email 以及将业务处理或复杂计算分离出来成为独立可 重复利用的模块 JSP 通过 JavaBeans 实现了同样的功能扩充 JSP 对于在 Web 应用中 集成 JavaBeans 组件提供了完善的支持 这种支持不仅能缩短开发时间 可以直接利用 经测试和可信任的已有组件 避免了重复开发 也为 JSP 应用带来了更多的可伸缩性 JavaBeans 组件可以用来执行复杂的计算任务 或负责与数据库的交互以及数据提取等 在实际的 JSP 开发过程中 读者将会发现 和传统的 ASP 或 PHP 页面相比 JSP 页面 将会是非常简洁的 由于 JavaBeans 开发起来简单 又可以利用 Java 语言的强大功能 许多动态页面处理过程实际上被封装到了 JavaBeans 中 JavaBeans 组件 是根据一系列规定设计出来的普通 Java 类 JavaBeans 是一个类 它有无参的构造函数 并且遵从 JavaBeans 的命名约定 JavaBeans 具有以下特性 4 1 内透性 指一个类的信息 都可以被另一个类获知 JavaBeans 遵循某种命名规 则 这样外部类就可以知道这个 Bean 类 2 支持自定义 属性的方法用来对 JavaBeans 进行自定义 3 支持事件 4 主持属性 5 支持永久性 JavaBeans 的命名约定 bean 的属性可以通过获取 getter 方法和设置方法 setter 来访问 这两个方法统称为 bean 的存取方法 每一个单词的首字母都要大写 除了简单的属性外 bean 还可以有多值属性 多值属性是由一个任意类型的数组组 成 在规范中这称为索引的属性 处理会话属性时 JSP 应用程序可以使用 bean 将自己 注册成能够接收和会话有关的事件 如果一个对象实现了该接口 那么当对象被放入或移出会话时 它就可以通过以下 两个方法获得通知 public void valueBound HttpSessionBindingEvent event 当有对象被加入大会 话中 调用该方法 HttpSessionBindingEvent 含有两个方法 public String getName public HttpSession getSession public void valueUnbound HttpSessionBindingEvent event 当实现了 HttpSessionBindingListener 结构的对象被添加所有会话或从中删除时 会通知 HttpSessionAttributeListener 2 5 JSP 技术简介 2 5 1 Windows 平台下配置 JSP 运行环境 为了使系统能够正常运行 JSP 和相关程序 必须先配置好能够使用 JSP 的 WEB 服 务器 各种能使用 Servlet 技术的 WEB 服务器中 运用得最多的是 Tomcat 服务器 Tomcat 的配置 1 开发环境配置 首先下载 jdk 和 tomcat 官方站 jdk 然后安装和配置 jdk 5 和 tomcat 执行 jdk 和 tomcat 的安装程序 然后按默认设置进行安装即可 1 安装 jdk 以后 在我的电脑 属性 高级 环境变量 系统变量中添加以下环境 变量 假定 j2sdk 安装在 c jdk1 5 0 JAVA HOME c jdk1 5 0 classpath JAVA HOME lib dt jar JAVA HOME lib tools jar classpath d jdk bin path JAVA HOME bin 2 安装 Tomcat 后 在我的电脑 属性 高级 环境变量 系统变量中添加以下环 境变量 假定 tomcat 安装在 c tomcat CATALINA HOME c tomcat 然后修改环境变量中的 classpath 把 tomat 安装目录下的 common lib 下的 servlet api jar 追加到 classpath 中去 修改后的 classpath 如下 classpath JAVA HOME lib dt jar JAVA HOME lib tools jar CATALI NA HOME common lib servlet api jar 2 JSP 连接各类数据库配置 本网站后台数据库为 SQLServer 2000 SQLServer2000 JDBC 驱动的完整安装及测 试 说明 1 下载 SQLSERVER2000 的 jdbc 驱动程序 2 安装 JDBC 执行 ms jdbc setup exe 可执行文件 一切只需要点击下一步 至到 出现 finish 按钮 完成安装 注 ms JDBC setup 默认安装路径为 c Program Files Microsoft SQL Server 2000 Driver for JDBC 此版本仅支持 Microsoft SQL Server 2000 Driver for JDBC 安装目录 lib 下的三个 jar 文件即是我们要的 JDBC 驱动核心 msbase jar mssqlserver jar 6 msutil jar 3 将以上三个 jar 文件加入到环境变量中去 classpath C Program Files Microsoft SQL Server 2000 Driver for JDBC lib msbase jar C Program Files Microsoft SQL Server 2000 Driver for JDBC lib mssqlserver jar C Program Files Microsoft SQL Server 2000 Driver for JDBC lib msutil jar 2 5 2 JSP ASP 和 PHP 技术之比较 JSP 与 ASP PHP 技术都是目前网上最流行的在服务器端运行的脚本技术 JSP 能 用 JavaBeans 技术封装 达到商业逻辑的目的 ASP 对应之的是 COM 组件 因此两者 都能用于开发商业逻辑 PHP 则更像于一个纯脚本 仅适合于普通的网站开发 而不能 用作商业逻辑而被冠以 Person Home Page 的名称 这是最贴切不过的了 JSP 与 ASP 相比 JSP 具有跨平台 安全 强大的可伸缩性的特点 如果硬要挑一些毛病 JSP 相对别的脚本更加难掌握 因为精通 JSP 必须精通 Java 语言 对于中小型项目 我 们要考虑开发人员 开发速度 开发成本等问题 在这方面 ASP 和 PHP 会比 JSP 更容 易胜出 值得一提的是 ASP 的最新版本 ASP NET 与原来的 ASP 性质完全是不同的 它和 JSP 一样 都是一种编译性的脚本 本身完全与强大的 Net 框架结合 完美的支持 XML 的各种应用 与昔日的 ASP 不可同日而语 但是无论是 ASP 还是 ASP NET 它 都摆脱不了 Windows 平台本身 这是 ASP 一个致命的缺点 2 5 3 JSP 语法基础 嵌入了 JAVA 语言的 HTML 文件是声明输出的文件类型为 text html 字符编码是 gb2312 在 JSP 中里的内容表示的是 JSP 编译时的一些选项或向客户端发送的头信息的 JSP 指令 里面的内容就是 Java 语言 如果有必要 更改适当设定 还可以使用 JavaScript 作为脚本 不过实际应用中很少有人这样做 1 request out import java sql 34 public class connDB Connection conn null Statement stmt null ResultSet rs null public connDB try Class forName com microsoft jdbc sqlserver SQLServerDriver Class forName sun jdbc odbc JdbcOdbcDriver catch java lang ClassNotFoundException e System err println e getMessage 执行查询操作 public ResultSet executeQuery String sql try conn DriverManager getConnection jdbc microsoft sqlserver localhost 1433 Database Name db bookmanage user sa password conn DriverManager getConnection jdbc odbc db bookmanage sa SQLserver 用户名 sa 密码为 空 stmt conn createStatement ResultSet TYPE SCROLL INSENSITIVE ResultSet CONC UR READ ONLY rs stmt executeQuery sql catch SQLException ex System err println ex getMessage 35 return rs 执行更新操作 public int executeUpdate String sql int result 0 try conn DriverManager getConnection jdbc microsoft sqlserver localhost 1433 Database Name db bookmanage user sa password conn DriverManager getConnection jdbc odbc db bookmanage sa stmt conn createStatement ResultSet TYPE SCROLL INSENSITIVE ResultSet CONC UR READ ONLY result stmt executeUpdate sql catch SQLException ex result 0 return result 执行更新操作并返回自动编号 public int executeUpdate id String sql int result 0 try conn DriverManager getConnection jdbc microsoft sqlserver localhost 1433 Database Name db bookmanage user sa password conn DriverManager getConnection jdbc odbc db bookmanage sa stmt conn createStatement ResultSet TYPE SCROLL INSENSITIVE ResultSet CO 36 NCUR READ ONLY result stmt executeUpdate sql String ID select IDENTITY as id rs stmt executeQuery ID if rs next int autoID rs getInt id result autoID catch SQLException ex result 0 return result 关闭数据库链接 public void close try if rs null rs close catch Exception e e printStackTrace System err try if stmt null stmt close catch Exception e e printStackTrace System err try 37 if conn null conn close catch Exception e e printStackTrace System err 转换 coding to Char 1 public String chStr In String str if str null str else try str new String str getBytes iso 8859 1 GB2312 trim str str replace char 1 catch Exception e e printStackTrace System err return str method name chStr Out public String chStr Out String str if str null str 38 else try str str replace char 1 catch Exception e e printStackTrace System err return str 5 1 2 中文显示处理 考虑中文乱码问题 过滤一些特殊字符和显示文本中的回车换行 空格 同样编写 一个独立的 JavaBean chStr java 完成 package beans public class chStr 解决输出中文乱码问题 public String chStr String str if str null str else try str new String str getBytes iso 8859 1 GB2312 trim catch Exception e e printStackTrace System err 39 return str 显示文本中的回车换行 空格 public String convertStr String str1 if str1 null str1 else try str1 str1 replaceAll str1 str1 replaceAll r n catch Exception e e printStackTrace System err return str1 replaceAll String str1 str2 方法为 JDK1 4 X 的新方法 使用 str2 替换字符串中的所有 str2 字符串 5 1 3 首页信息页面实现 首页的外观直接影响顾客的购买欲望 让顾客第一时间掌握书店推出的优惠活动 网上公告等 还可以查看推荐图书 上架新书 销售排行等如图 22 40 图 22 首页效果图 1 首页代码及说明 定义 jsp 字符编码和页面响应的被传输的数据类型 脚本语言引入的包和类 定义生成和使用 Bean 的环境和范围 网上书店 通知浏览器查 看此网页应该使用的字符 设置网页风格 加载可重用左侧页面 设置分隔图片 rs book last int RecordCount rs book getRow 获取记录总数 rs book first for int i 1 i 42 省略其他 HTML 语言 2 添加背景音乐目的是带给顾客一种美丽的心情 并刺激其购买欲望 该代码是通 过添加 mxp 插件形成 添加可重用页尾 增加背景音乐 5 1 4 新书上架功能实现 为达到向顾客推荐当前新书目的 促进销售 特设置新书上架功能 ResultSet rs newbook connDB executeQuery select from tb bookinfo where newbook 1 order by INTime desc 5 1 5 购物车功能的实现 由于要求暂时保存所选图书信息 要求建立一 JavaBean bookelement java package beans public class bookelement public int orderID public String ISBN public float price public int number 43 购物车是一个虚拟现实的名称 采用 Vector 类型的变量 cart 来存储购物数据 被保 存在 Session 中 购物车效果图如图 23 所示 图 23 购物车效果图 并根据情况采用如下两种情况 1 当 cart 为空时 要求新建一个 cart 来保存图书信息 2 当 cart 不为空时 只要求修改 cart 的图书数量 String ISBN chStr chStr request getParameter ISBN 获取客户端传给服务端的参 44 数 String sql select from tb bookinfo where ISBN ISBN ResultSet rs connDB executeQuery sql float price 0 if rs next price rs getInt price bookelement mybookelement new bookelement mybookelement ISBN ISBN mybookelement price price mybookelement number 1 boolean Flag true Vector cart Vector session getAttribute cart 返回 session 对象中存储的每个对 象 if cart null cart new Vector else for int i 0 i 省略部分代码 5 1 6 查看购物车的实现 为方便随时查看购物情况 通过它可以将用户放入购物车的图书信息显示出来 先判断购物车是否为空 为空就跳转到 cart null jsp 否则显示购 物车信息 限制用户输入非法数据 插入 javascript 代码实现 Vector cart Vector session getAttribute cart if cart null cart size 0 response sendRedirect cart null jsp else float sum 0 float pric 0 String ISBN String bookname String publisher for int i 0 i 计算图书价格 5 1 7 修改购物车图书数量功能实现 为方便用户指定购物数量 并将图书信息保存于数据库 Vector cart Vector session getAttribute cart Vector newcart new Vector for int i 0 i cart size i String number request getParameter num i if number equals 0 out println alert 数量不能为 0 请重新输入 history back return if number equals out println alert 数量不能为空 请输入大于 0 的值 history back return bookelement mybookelement bookelement cart elementAt i String num request getParameter num i int newnum Integer parseInt num 47 mybookelement number newnum if newnum 0 newcart addElement mybookelement session setAttribute cart newcart response sendRedirect cart see jsp 省略部分代码 5 1 8 购物车中移去指定图书功能实现 顾客想退回已经放入购物车中的图书 要求添加图书退回功能 这将用到 Vector 类 中的 removeElementAt int index 方法实现 Vector cart Vector session getAttribute cart try String ID request getParameter ID int id Integer parseInt ID cart removeElementAt id 移去指定图书 session setAttribute cart cart response sendRedirect cart see jsp catch Exception e 省略部分代码 5 1 9 清空购物车功能实现 为满足顾客对自己刚才放入购物车的书籍不满意 想全部退回书架的要求 省略部分代码 5 1 10 订单生成功能实现 订单管理也是书店管理中非常重要的内容 订单的管理包括 生成订单 当顾客购 物完毕 可以从购物车页面跳转到订单页面 选择完收货人 和付款方式后 便生成订 单 未付款 编辑未确认订单 顾客可以取消和修改 这些功能与购物车类似 不同的 是顾客可以修改订单 因为除了修改书籍数量 还要修改收货人信息 代码如下 1 对顾客的会员等级进行优惠活动 计算打折 float rebate 1 ResultSet rs rebate connDB executeQuery select rebate from V Member where username username if rs rebate next rebate rs rebate getFloat rebate 省略部分代码 3 给定单主表进行添加信息项 插入订单主表数据 float bnumber cart size String sql insert into tb Order bnumber username truename address postcode tel email pay carry rebate bz values bnumber username truename address postcode tel e mail pay carry rebate bz temp connDB executeUpdate id sql if temp 0 flag false 49 else orderID temp 显示 out println alert String valueOf orderID ID 号 3 对定单明细表进行数据的添加 并判断是否添加成功 插入订单明细表数据 for int i 0 i cart size i bookelement mybookelement bookelement cart elementAt i String ISBN mybookelement ISBN price mybookelement price rebate number mybookelement number sum price number String str insert into tb order Detail orderID ISBN price number values orderID ISBN price number temp connDB executeUpdate str if flag equals false out println alert 订单无效 history back else session removeAttribute cart out println alert 订单生成 请等待发货 orderID window location href index jsp connDB close 50 省略部分代码 4 由于顾客买了图书 所以要对其的会员等级和会员信息进行更新 String sql up update tb Member set Amount Amount Totalsum where username username 更新会员信息 temp connDB executeUpdate sql up if temp 0 flag false 更新会员等级 ResultSet rs Amount connDB executeQuery select Amount from tb Member where username username if rs Amount next int Amount 0 Amount rs Amount getInt Amount ResultSet rs grade connDB executeQuery select Top 1 grade Amount from tb rebate where Amount 5 1 11 库存管理功能实现 为了对仓库的库存进行调查和统计 设计库存管理是非常重要的 首先要求显示库 51 存的数目 然后要对库存不足的图书给予警告处理 最后要对出库图书进行统计 并统 计当日 当月 当年的销售进行统计 Totalsum Totalsum sum 更新库存 String sql amount update tb bookinfo set amount amount number where ISBN ISBN int ret 0 ret connDB executeUpdate sql amount ResultSet sql kc connDB executeQuery select amount from tb bookinfo where ISBN ISBN if sql kc next 检查库存 out println alert 库存不足 history back if temp 0 flag false 5 1 12 定单查询功能实现 为方便顾客对自己所提交的定单进行追踪 而实现的查询功能 ResultSet rs connDB executeQuery select from tb order where username String session getAttribute UserName 5 1 13 销售排行功能实现 为起到促销目的和向顾客展示当前热门图书 特选出 10 本销售数量最多的图书排 序 ResultSet rs sort connDB executeQuery select from select top 10 from select sum number as amount ISBN from tb Order detail group by ISBN as tab order by amount desc o inner join tb bookinfo b on o ISBN b ISBN order by o amount desc 省略部分代码 5 2 网上书店后台详细设计 5 2 1 分页页面功能详细说明 分页显示功能主要是将数据表中的图书信息以列表方式显示 并为之添加修改和 删除的超级链接 方便后面对图书信息进行修改和删除 对网页中的数据进行分页显示的实现方法 1 确定记录跨度 2 确定记录总条数 通过结果集的 getRow 方法获得 3 根据公式 总页数 总记录数 跨度 计算总页数 4 获取传递的当前页数参数取整 5 计算当前记录数 当前记录数 获取的页数 1 跨度 1 6 通过 for 循环显示 String str String request getParameter Page 53 if str null str 0 int pagesize 10 设置跨度 rs last int RecordCount rs getRow 取得记录条数 out println String valueOf RecordCount int maxPage 0 maxPage RecordCount pagesize 0 RecordCount pagesize RecordCount pa gesize 1 求得最大页面数 int Page Integer parseInt str if PagemaxPage Page maxPage rs absolute Page 1 pagesize 1 for int i 1 i 54 省略部分代码 5 2 2 添加图书信息功能实现 添加图书信息主要用于向数据库中添加新的图书信息 1 添加书籍基本信息 并判断是否已经添加过 if request getParameter ISBN String ISBN chStr chStr request getParameter ISBN String bookname chStr chStr request getParameter bookname String writer chStr chStr request getParameter writer String type chStr chStr request getParameter type String TPI chStr chStr request getParameter TPI String pDate chStr chStr request getParameter pDate String cover chStr chStr request getParameter cover float price Float valueOf request getParameter price floatValue int commend Integer parseInt request getParameter commend int newbook Integer parseInt request getParameter newbook String introduce chStr chStr request getParameter introduce int amount Integer parseInt request getParameter amount if introduce equals introduce 暂无 ResultSet rs connDB executeQuery select from tb bookinfo where ISBN ISBN

温馨提示

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

评论

0/150

提交评论