jsp课程设计在线购物系统说明

上传人:无*** 文档编号:193646336 上传时间:2023-03-11 格式:DOCX 页数:54 大小:54.58KB
返回 下载 相关 举报
jsp课程设计在线购物系统说明_第1页
第1页 / 共54页
jsp课程设计在线购物系统说明_第2页
第2页 / 共54页
jsp课程设计在线购物系统说明_第3页
第3页 / 共54页
点击查看更多>>
资源描述
jsp课程设计在线购物系统说明 目录 前言 . 1 正文 . 2 2.1 系统概述 . 2 2.2 需求分析 . 2 2.3 系统功能预览 . 2 2.3.1 个人信息查询及显示功能 . 3 2.3.2 用户订单查询及显示功能 . 3 2.3.3 用户充值记录查询及显示功能 . 3 2.3.4 用户消费记录的查询及显示功能 . 3 2.4 系统分析 . 4 2.4.1 系统功能模块划分 . 4 2.4.2 系统流程分析 . 4 2.5 系统设计 . 5 2.5.1 数据库逻辑结构设计 . 5 2.5.2 创建数据库 . 5 2.5.3 创建表的脚本文件 . 6 2.5.4 目录和包结构 . 7 2.5.5 定义DBConnect . 7 2.6 基本信息查询功能 . 9 2.6.1 定义UsercoinSelectBean . 9 2.6.2 定义ConsumeSelectBean类 . 10 2.6.3 创建usercoin.jsp用户信息显示页面 . 11 2.6.4 创建left.jsp座左侧导航栏显示页 . 14 2.7 订单查询功能 . 15 2.7.1 创建OrderSelectBean类 . 15 2.7.2 创建order.jsp用户订单显示页面 . 18 2.8 充值记录查询功能 . 22 2.8.1 创建AddcoinSelectBean类 . 22 2.8.2 创建addcoinrecord.jsp页面 . 25 2.9 消费记录查询功能 . 29 2.9.1创建ConsumeSelectBean类 . 29 2.9.2 创建consumerecord.jsp . 32 2.10 运行工程 . 35 2.10.1 开发平台 . 35 2.10.2 创建工程 . 35 2.10.3 运行工程 . 36 总结 . 36 致谢 . 37 参考文献:. 37 山东信院计算机系课程设计 前言 JSP是基于Java语言的服务器端脚本技术,是由Sun公司倡导的一种动态网页技术,通过JSP的标记在HTML静态内容中加入动态数据,制作动态网页。HTML代码可以由网页设计人员负责,而动态数据则由程序开发人员负责完成,有利于网页设计者和程序员发挥各自特长,设计出专业的网站。JSP成功的一个很重要的原因就是在JSP中采用了Java程序片段,因此,我们在学习JSP之前,一定要对Java语言的基本语法要有所了解,这样才能达到一个比较好的学习效果。 随着社会科技的发展,计算机已经普及到每个家庭当中,计算机给人们带来了无比的便利,同时在交流、贸易等各个方面都有其突出的作用。人们不管是交流、贸易好事其他,都是通过网页实现的,可以说深刻了解网页是每个计算机爱好着必须掌握的。目前,各种各样的线订购系统琳琅满目,各式各样的在线订购服务应有尽有,凡是在日常生活中所能见到的交易活动,都可以在互联网上找到对应的网站。可见网络给人们带来了什么样的便利条件。JSP是基于Java语言的服务器端脚本技术,是由Sun公司倡导的一种动态网页技术,通过JSP的标记在HTML静态内容中加入动态数据,制作动态网页。HTML代码可以由网页设计人员负责,而动态数据则由程序开发人员负责完成,有利于网页设计者和程序员发挥各自特长,设计出专业的网站。JSP成功的一个很重要的原因就是在JSP中采用了Java程序片段,因此,我们在学习JSP之前,一定要对Java语言的基本语法要有所了解,这样才能达到一个比较好的学习效果。通过JSP动态网页的制作,我们将从中可以学到很多知识,不仅对我们身边的琐碎小事能进一步的了解,同时也可以给我们带来丰富的知识,可以让我们学习到很多,这为我们以后的发展也提供了很好的机会。 第 1 页 共 38 页 1 山东信院计算机系课程设计 正文 本次课程设计将要实现的是一个在线订购子系统,它是网上订购系统的一部分,实现了用户信息显示,用户订购显示、查询,用户消费记录显示、查询和用户充值记录显示、查询等功能。这是一个在线订购系统的一部分,实现起来比较容易。比较适合从基础开始掌握jsp开发的这样一个开发流程。 2.1 系统概述 目前互联网上大大小小的在但不论是各种样式的在线订购系统,还是经销何种商品的在线订购系统,都必不可少的会有用户订单级消费记录查询子系统,作为消费或即将消费的用户,了解自己在网上的消费情况是十分重要的。 这个子系统需要实现的功能总体来说包括一下4部分: 基本信息插询 订单查询功能 消费查询功能 充值记录查询 图2-1中,用户可以在在线订购子系统的首页上,直接看到用户个人的信息,用户可以通过页面上的连接来浏览自己的消费记录、订单和充值记录等信息。 图2-1 用户个人信息查询系统首页 2.2 需求分析 本次中在线订购子系统的设计目的是:实现一个注册用户个人信息的查询系统,任何用户都可以通过这个平台来了自己在网上购买的具体情况。将系统需求加以总结,得出系统需求如下: 系统可以运行在windows操作系统平台上,并提供友好的用户界面 用户登录后可以直接浏览个人消费记录 用户登录后可以直接浏览个人订单记录 用户登录后可以直接浏览个人充值记录 用户可以根据条件分别对消费记录、订单记录和充值记录进行查询。 2.3 系统功能预览 第 2 页 共 38 页 2 山东信院计算机系课程设计 通过前面的分析已经明确本系统的用户只有一类,即注册用户。由于用户登录属于用户登陆系统,所以不在本系统中实现,读者可自行完成此功能。用户登陆系统后便可查看各种详细信息,并进行商品的订购。下面给出系统需要实现的具体功能。 2.3.1 个人信息查询及显示功能 普通用户登录后,即可浏览自己的信息。其中包括用户的类型和用户电子货币的详细记录情况,如图2.2所示: 图2.2 用户基本信息的显示 2.3.2 用户订单查询及显示功能 用户可以根据订单号、订单类型和订单生成日期作为查询条件来进行查询,如图2.3所示: 图2.3用户订单查询 2.3.3 用户充值记录查询及显示功能 用户可以根据充值类型和生成日期作为查询条件来进行查询,如图2.4所示: 图2.4 用户充值记录的查询 2.3.4 用户消费记录的查询及显示功能 用户可以根据消费时间作为查询条件进行查询。页面如图所示: 第 3 页 共 38 页 3 山东信院计算机系课程设计 图2.5 用户消费记录的查询 2.4 系统分析 需求确定之后需要对系统进行整体分析和设计。这包括系统功能的描述,对功能模块的划分和对系统流程的分析。下面首先对系统功能进行描述。 2.4.1 系统功能模块划分 模块分析是描述系统需求的一个过程,需要将需求分析中的感性描述进行抽象,其取出要实现的功能,这是整个系统开发的一个关键过程。分析的根本目的是在开发者和提出需求的人之间建立一种理解和沟通的机制。需求分析的第一步是描述系统的功能,以此确定系统的功能需求。 根据以上的用户操作需求,将系统划分如下,并对模块的划分和功能进行描述。 整个系统的模块结构如图2.6所示: 网上购物子系统 显 示 查 询 用用用 用用用户用户户 户户户电户消充 的的的子的费值 订消充货订记记 单费值币单录录 查查查显显显显 询 询 询 示 示 示 示 图2.6 系统模块系统图 用户信息显示 2.4.2 系统流程分析 本系统中的用户是注册用户。根据以上的模块划分和功能分析可知,该系统的流程主要是注第 4 页 共 38 页 4 山东信院计算机系课程设计 册用户对个人详细的信息进行的各种查询。图2.7所示为操作流程: 用户登录 显示信息 查询操作 图2.7 系统流程图 2.5 系统设计 系统分析完成后,进入系统设计阶段,这是整个系统实现过程中非常重要的一个阶段。良好的系统设计将会使开发顺利的进行。 2.5.1 数据库逻辑结构设计 数据库设计是系统设计中非常重要的环节。数据是一切系统设计的基础,通俗的说,数据库设计就像高楼大厦的根基一样,如果设计不合理、不完整,将在系统开发过程中,甚至到后期的系统维护、功能变更和功能扩充时引起较多问题,严重时甚至要重新设计项目,重做大量已完成的工作。 根据功能模块划分的结果可知,本系统的用户只有一类 :注册用户。注册用户在使用此平台时无需登录,因此在本系统中需要创建注册用户的数据实体用于记录用户信息。除此之外由于系统还要显示和查询用户的详细信息,这包括用户的电子货币信息,用户的订单信息、用户的向消费记录信息和用户的充值记录信息,所以需要创建他们各自相应的实体。 l 用户数据实体:需要记录用户的登录名和密码,还有该用户的电子邮件地址信息,登录名和密码也是登录系统时验证所必需的。 l 订单数据实体:包括订单的添加时间、订单号、订单名称、商品名称和目前状态等属性。 l 消费记录数据实体:包括消费时间、消费的商品名等属性。 l 充值记录数据实体:包括用户充值的时间、充值的金额等信息。 以上4个实体是基本的数据实体。这4个实体之间并没有直接的关联关系,这意味着开发将必将简单。下面将要设计数据库表。在设计数据库表的过程中,一般要遵循以下几个原则。 l 数据库的一个表最好只存储一个实体或对象的相关信息,不同的实体最好存储在不同的数据表中,如果实体还可以在划分,要掌握实体的划分原则是最好能够比当前系统要开发的实体的复杂度小。 l 数据表的信息结构一定要适合,表的字段的数量一般不要过多。 l 扩充信息和动态变化的信息一定要分别放在不同的表里。 2.5.2 创建数据库 首先要创建一个数据库,可以使用MySQL的辅助图形化界面工具Navicat for MySQL。 接下来要在这个数据库中创建数据表,由前面的分析得知这个系统中需要建立4张数据表,他们分别如下: 1. 用户信息表:用于存放用户个人信息和电子货币的数据记录。 2. 用户订单表:用于存放用户订单饿数据记录信息。 3. 用户消费记录表:用于存放用户的消费记录信息。 4. 用户充值记录表:用于存放用户的充值记录信息。 这4张数据表的字段说明如表2.12.4所示: 第 5 页 共 38 页 5 山东信院计算机系课程设计 表2.1 User用户表 序 号 1 2 3 4 5 6 序 号 1 2 3 4 5 6 序 号 1 2 3 4 5 序 号 1 2 3 4 5 字 段 Id Name Password Price Consume Type 字 段 Order Type Price Datetime Userid ProductName 字 段 ConsumeId Price Datetime Userid ProductName 字 段 AddId Type Coin Datetime Userid 含 义 用户id 用户名 密码 电子货币余额 消费的电子货币 用户类型 含 义 定单编号 订单类型 订单金额 添加时间 用户id 商品名称 含 义 消费记录id 消费金额 消费时间 用户di 商品名称 含 义 充值记录id 充值类型 充值金额 充值日期 用户id 类 型 Int Varchar Varchar Double Int Varchar 类 型 Int Varchar Int DtaeTime Int Varchar 类 型 Int Int DtaeTime Int Varchar 类 型 Int Varchar I DtaeTime nt 表2.2 order订单表 表2.3 consume消费记录表 表2.4 add充值记录表 2.5.3 创建表的脚本文件 据数据库字段设计,编写的创建数据库表的SQL语句如下。 创建数据表user的SQL语句: CREATE TABLE user( ID int(11) NOT NULL NAME varchar(20) default NULL, PASSWORD varchar(10) default NULL, COIN Int(11) default NULL, CONSUME Int(11) default NULL, TYPE varchar(5) default NULL, PRIMARY KEY (ID) ) 创建数据表order的SQL语句: 6 第 6 页 共 38 页 山东信院计算机系课程设计 CREATE TABLE order( ORDERRID int(11) NOT NULL TYPE varchar(10) default NULL, PRICE Int(11) default NULL, COIN Int(11) default NULL, DATATIME datetime default NULL, USERID Int(11) default NULL, PRODUCTNAME varchar(20) default NULL, PRIMARY KEY (ID) ) 创建数据表consume的SQL语句: CREATE TABLE consume( CONSUMEID int(11) NOT NULL PRICE Int(11) default NULL, DATATIME datetime default NULL, USERID Int(11) default NULL, PRODUCTNAME varchar(50) default NULL, PRIMARY KEY (CONSUMEID) ) 2.5.4 目录和包结构 在进行程序设计和开发之前,要设计目录和包结构。良好的结构会使代码逻辑清除且容易阅读。一般一个设计良好的结构都有其共同的特点,就是逻辑清楚。本系统的目录结构如图2.8所示: :图2.8 目录及包结构 在这个目录结构中,Buy是个项目的根目录也是项目的名称。其下src目录由于存放原文件所有的java类都定义在这个文件夹下。WebRoot目录是发布时网站的根目录,其下放置JSP网页,这个平台的页面放在COIN文件夹下,WEB-INF目录下存放系统的配置文件,如web.xml等。 这个目录结构是通用的目录结构,读者可以根据需要进行相应的修改。 2.5.5 定义DBConnect 第 7 页 共 38 页 7 山东信院计算机系课程设计 本系统采用JSP+JavaBean技术进行开发,为了更好的进行数据库的相关操作,这里定义一个DBConnect类负责数据库的连接、SQL语句的执行等工作。 本系统采用数据库连接池进行数据库的统一管理,同时在数据库的操作上进行了封装,方便系统开发时与数据库的交互。接下来进行相信介绍。 在实现某一个功能时,首先要连接数据库。那么,如果在每一次需要用到操作数据库的时候,都需要进行一系列相同的重复操作。如,加载驱动,创建连接。其实这些操作可以封装在一个数据库操作类中。这样做的好处是:一旦系统移植,数据库参数改变,则不需要重新修改所有的连接代码并重新编译,只要在这个封装类中改变其参数值即可。 首先在文件config.properties中配置数据库连接参数,即数据库的驱动、连接地址、用户名、密码。在整个系统中只有这么一个入口,所以在移植数据库或者改变系统环境时,只需要修改这个地方即可,十分方便。具体代码如下: conn_type= conn_url=jdbc:mysql:/localhost:3306/buy?useUnicode=true&characterEncoding=UTF-8 conn_user=root conn_pwd=root conn_driver=com.mysql.jdbc.Driver 采用了如下代码的一个类,来统一管理数据库的连接: package m.database; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; public class DBConnect public static Connection getConnection Connection conn = null; try Class.forName(Config.CONNECTION_DRIVER).newInstance; conn = DriverManager.getConnection(Config.CONNECTION_URL, Config.CONNECTION_USER, Config.CONNECTION_PWD); catch (Exception e) e.printStackTrace; if (conn = null) System.out.println(no get connection!throws Exception); return conn; 还有一个Config类用来配置文件中的各个参数值。代码如下: package m.database; import java.io.IOException; import java.util.Properties; public class Config private static Properties prop = new Properties; 第 8 页 共 38 页 8 山东信院计算机系课程设计 static try prop.load(Config.class.getResourceAsStream(config.properties); catch (IOException e) e.printStackTrace; public static String CONNECTION_TYPE = prop.getProperty(conn_type); public static String CONNECTION_URL = prop.getProperty(conn_url); public static String CONNECTION_USER = prop.getProperty(conn_user); public static String CONNECTION_PWD = prop.getProperty(conn_pwd); public static String CONNECTION_DRIVER = prop.getProperty(conn_driver); 2.6 基本信息查询功能 用户基本信息包括用户的个人电子货币的余额、用户已消费电子货币等信息。还包括自己消费信息的统计情况,如购买了几个相同的商品,都买这几个商品总共花了多少电子货币等。 2.6.1 定义UsercoinSelectBean 用户登录后首先看到的会是个人的电子货币信息,如已消费电子货币、剩余电子货币等信息。这时就需要在JSP页面中调用JavaBean来对数据库进行查询,并且将查询结果返回到页面中来。代码如下: package com.buy.bean.coin; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import m.database.DBConnect; public class UsercoinSelectBean public String selectUsercoin(String ID,int i) String condition; if(i=0) condition = select coin from user where id = +ID+; else if(i=1) condition = select consume from user where id = +ID+; else if(i=2) condition = select consume + coin from user where id = +ID+; else if(i=3) condition = select name from user where id = +ID+; else condition = select type from user where id = +ID+; ResultSet rs = null; Statement sql = null; 第 9 页 共 38 页 9 山东信院计算机系课程设计 2.6.2 定义ConsumeSelectBean类 用户登录后除了看到个人的电子货币信息以外,还可以看到自己消费信息的统计情况,如购买了几个相同的商品,购买这几种商品总共花了多少电子货币。这时就需要在JSP页面中调用JavaBean来对数据库进行查询,并且将查询结果返回到页面中来。代码如下: package com.buy.bean.coin; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import m.database.DBConnect; public class ConsumeSelectBean1 public ConsumeSelectBean1 public StringBuffer selectConsume(String userID) String condition; condition = select count(userid) as num, productname , sum(price) as total from consume where userid = +userID+ group by productname; ResultSet rs = null; String name, coin, num; Statement sql = null; StringBuffer buffer = new StringBuffer; try Connection conn = DBConnect.getConnection; sql = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); 第 10 页 共 38 页 10 String str = new String; try Connection conn = DBConnect.getConnection; sql = conn.createStatement; rs = sql.executeQuery(condition); while (rs.next) str = rs.getString(1); rs.close; sql.close; conn.close; catch (SQLException ex) System.out.println(TradeDB SQLException: + ex.getMessage); return new String(can not select); return str; 山东信院计算机系课程设计 rs = sql.executeQuery(condition); while (rs.next) num = rs.getString(1); name = rs.getString(2); coin = rs.getString(3); buffer.append( num + 个 +name+ , +金额:+coin+); rs.close; sql.close; conn.close; catch (SQLException ex) System.out.println(TradeDB SQLException: + ex.getMessage); return new StringBuffer(查询错误); return buffer; 2.6.3 创建usercoin.jsp用户信息显示页面 接下来是用来显示用户信息的JSP页面,其代码如下: base href= 第 11 页 共 38 页 11 山东信院计算机系课程设计 导航     您好!您的用户状态:   第 12 页 共 38 页 12 山东信院计算机系课程设计 累计冲值: 电子货币币 累计消费: 电子货币币 帐户余额: 电子货币币 您的消费情况如下: 目前您的总消费金额为: 电子货币 记录如下:     2.6.4 创建left.jsp座左侧导航栏显示页 左侧导航栏的代码如下: 电子货币   我的电子货币首页 第 14 页 共 38 页 14 山东信院计算机系课程设计   帐户管理
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!