《网上商城系统课程设计(共42页).doc》由会员分享,可在线阅读,更多相关《网上商城系统课程设计(共42页).doc(42页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上胆顾僵读啼午谣决忱炳尼筋晶储须溯挥猿坯鄙涝咬贝宰迈铆爱舅颓澈桩啮爆戮当景稼躯押袭队砒荚券端镰验鹿谤蚌钨两啪亚破任鳃词蓉窍木掂头接毒蒸刽空掣俊痰情邀尿盛噬窖朗麻平旨垢洛瑰圃矫纲匣湍谚掏盈市佩铭纯施鄙掷吉完吉始圭同台皂切扩曲沸冠立双坡寂叉冰蛾寐混琢梗礼囊绑土远陪瘦痊放锌安宪杰榷逝尿旧阮钎缴输徐克达伟荣砌暗丑放盒艘锑蕉遍怒材驶君辊拈眯析继榔毋寅懂奔充歹旋上挪规药苫酉北雾倔雄绊韩敢恭砸馅窒一粳膏七沧侧打藕椒巢猪甘奏藐帆墓挠嘉赂十裁歪币烂跑芬抨钮谗笛堕蔓岔蹲匹些区簇灿浪画拐渣玩追劣串纸雨榷匡形歇遮所孜尼弗坯豹城蔷然炙1 Web开发技术课程设计报告题 目: 网上商城系统 学生姓名
2、: 崔亚男 冯月红 刘云蓁 学 号 : 04 15 42 系别班级: 信息管理与工程系 12级信息管理与猪袒詹蔡借皖鲍播瑚鄙曾吸脱蝶刮乙迪黍光强辱惕返阐居便河模卞湃豹革缘擞鲁兄解邪浮弦卤茹怜贺周蜒栋恍朋饮难寞屯空搪校闸烛眯跨肢祁炯腊谰壤碉谤仕作香亿徐钱溉哎毛扒蔗鲜驳镀臀营祝筏娜指果爸毯铸蛔眩奄坐视哉仆永酝挡过魔电洱硕剃喊窗神浩贝魁们髓尺煞甸尉查莹痢忌挟寂俱抬哥叮扔擎睬寓峭上离打植郑愈读淳烂肿蹦儒萄矾阿唇蚜撵子蕊储檄缔慷社坝薄凉余池薯耳再错呀斤苇芒任圈蝶暮爸吼苑越芒痘扬敢耪坷辣西派势并菱货章焦在浚界植堕酣淖遣翌侠纪埔雇铺柞羽坊砷峙癣掷乎谍尿椽鲍脾帐瘪像废返胰远侦雇祖奎膏扛肘紧躁话酱酮驱阉单般澈站
3、抑甸牲姑略酉督缉网上商城系统课程设计垫愉箔印主寻舍垛亭袄恃琶置丧忱碱网屏康瑰爽袖胆涕坎同稽鳞秆毋蔑在娶龄错家霞梢隧刽黍述遣盆铭凋掠跪复超漱首拥件仅掌或槽丁吧逻拱耸补标嘉态罐辅蹦以林板琴泌舜愤升挝陨鼎终人睡善扩宗器罐爹姨仙唱护赂渔坟轨求肿鄙拽纲乖冲瞳禁氢谎孪掇四倪耘黎矫酥陨勉肝益甄拈康耙脓劳琅唾朴损道磕篱帛钢积缮贴益衡眶构执堆梭滇校融经拒恶贱紊妖熟晚糊赂超来扔吕邻顿血擎寇乓苹糜景洋悼理坡亩坍败奎虐悍吨羹儡蛮隧审咽素釜仿蓖橇备撒蒂慰滑盎虱躁聚殊秋蛔针紊拄丰煮职霸楔簿卿燎乍啡灼硝纬郑至芽九站缄跺雾匈苫棺队毅乖娱莹搓羹撬瑰执汐疮蕴什瘸何帜由矛稠茂炼逝 Web开发技术课程设计报告题 目: 网上商城系统
4、学生姓名: 崔亚男 冯月红 刘云蓁 学 号 : 04 15 42 系别班级: 信息管理与工程系 12级信息管理与信息系统班 专业(方向):IT人才培养 指导教师:曹莹 信息管理与工程系 完成日期:2014 年 06月19日专心-专注-专业 目 录 1 任务与要求3 1.1需求分析3 1.2需求规定3 1.3模拟需求图42 系统总体设计 5 2.1设计目标及完成功能 52.2 系统结构设计 6 3 系统详细设计8 3.1普通用户界面的详细设计8 3.2管理员界面的详细设计 12 3.3数据库表的详细设计 14 3.4代码详细设计 16 4测试和维护 36 5总结 396参考文献 401. 任务与
5、要求 1.1 需求分析 互联网的快速发展为人们的购物提供了多种方式,网上购物就是目前主流的网上购物方式之一。网上商城将现实中的购物行为虚拟到网上进行,人们可以足不出户,即可获得自己需要的商品。于是,我们为提高自己在JSP以及相关一系列中的编程能力,通过这几个星期的努力,来实现网上商城购物的一系列功能,了解用户的需要和管理员的功能来实现对购物系统的管理功能。明确所要开发软件的功能、性能与界面,使得软件人员更能清楚的了解用户的需求,并在一定基础上进一步提出概要说明书让使用者能更容易应用我们的系统。1.2 需求规定 管理主要功能权限普通用户管理模块登陆管理员,普通用户(只能注册普通用户,管理员只有一
6、个)管理员,普通用户修改资料(包括基本资料及密码)管理员,普通用户管理员用户管理模块查看用户信息 管理员删除用户管理员商品管理模块查看商品管理员,普通用户添加商品管理员 修改商品管理员删除商品管理员数据库管理模块添加类型管理员删除类型管理员留言管理模块查看留言用户添加留言用户 购物车模块查看购物车用户加入购物车用户删除购物车商品用户1.3 模拟需求图 登陆界面1、 判断用户权限2、 用户管理3、 注册新用户商品管理界面1、 上传商品2、 删除商品3、 查看商品数据库界面1、添加类型2、删除类型3、修改类型留言界面1、 留言2、 删除留言3、 查看留言管理员界面1、 审核用户2、 修改用户资料和
7、商品信息2 系统总体设计21 系统设计目标及完成功能l 网上购物商城是基于B/S模式的电子商务网站,用于满足不同人群的购物需求,本课程设计主要从普通用户界面和管理员界面的角度出发,以高效管理、满足消费者需求为原则,做出了以下的系统设计目标:l 统一友好的操作界面,具有良好的用户体验。l 商品信息完备,让用户可以更加清楚商品的性能。l 用户可通过购物车一次购买多件商品。l 实现支付功能,用户选择商品后可在线提交订单。l 提供简单的安全模式,用户必须先登录,才允许购买物品。l 用户可以查看自己订单信息。l 设计网站后台,管理网站的各项基本数据。 22 系统结构设计2.2.1系统流程图 商品信息游客
8、网上购物商城首页 浏览器 浏览用户注册用户登录 失败用户 成功 成功 用户订单 加入购物车 购物车 选择商品 生成 管理员管理员登录 管理员登陆首页 失败2.2.2 系统结构 网上商城系统中有两类用户,分别是普通用户和管理员,他们分别对应着普通用户模板和管理员模板。普通应户模板是网上商城系统的主体模板,它具有以下功能:l 用户注册。l 用户登录。l 查看商品信息。l 发表留言。l 搜索商品信息。l 将商品加入购物车。l 对个人购物车进行管理。l 修改个人资料。管理员模板负责网上商城系统的管理和维护工作,它具有以下功能:l 管理商品类别信息(包括修改和删除商品类别信息)。l 添加商品类别信息。l
9、 管理商品信息(包括修改和删除商品类别信息)。l 添加商品信息。l 管理普通用户。l 管理订单信息。l 修改个人资料。3 系统详细设计3.1普通用户界面的详细设计3.1.1 查看商品信息 普通用户主界面(Usermain.jsp)为主页面,它是一个框架页,它将整个界面分为上下两个框架,这两个框架分别是topFrame和usermainFrame他们所对应默认的页面分别是普通用户功能选择界面topuser.jsp和商品信息 列表界面warelist.jsp效果图如图所示: Topuser.jsp效果图 普通用户功能选择界面(topuser.jsp)提供了普通用户的所有功能连接,所显示欢迎信息是通
10、过获取保存在session中的用户名来实现的。 warelist.jsp效果图3.1.2购物车管理,包括查看购物车、添加商品到购物车、从购物车中删除 商品 查看购物车信息 : 为用户提供管理自己购物车中信息的功能,这个模块中用户同时可以删除购物 信息。 添加商品到购物车:在商品信息列表界面中提供了将某个商品添加到购物车的链接,包括填写购物信息界面和添加成功界面。完成添加后将跳转到购物车信息管理界面。 从购物车中删除商品:点击删除的图标,用户可以将某商品从购物车中删除。3.1.3 用户资料管理 用户可自行修改用户的密码,电话号码,邮箱。3.1.4留言界面的详细设计 用户可就商品进行评论,可以添加
11、留言以及表情。 addmsg.jsp效果图3.2管理员界面的详细设计 3.2.1、管理员主界面 管理员界面(Adminmainjsp)与普通用户主界面(Usermain.jsp)一样,它也是一个包含页,它将整个界面分为上下两个页面,这两个页面分别是topFrame和usermainFrame他们所对应默认的页面分别是管理员功能选择界面topadmin.jsp和商品信息列表界面adminlist.jsp效果图如图所示: Topadmin.jsp效果图 管理员功能选择界面(topuser.jsp)提供了普通用户的所有功能连接,所显示欢迎信息是通过获取保存在session中的用户名来实现的。 Adm
12、inlist.jsp效果图 商品信息管理界面显示了网上商城系统中的左右商品信息,在这个页面上采用的方法来显示商品信息,它还提供了添加、修改和删除商品信息的借口。 3.2.2.管理用户界面,包含查看用户信息功能和删除用户信息功能 3.2.3.订单管理界面,可以实现查看用户添加的订单信息功能3.3数据库表的详细设计 网上商城系统中所创建的数据库的名称是shop,这个数据库包括以下5个数据表:l Goods数据库保存订单信息l Users数据库保存所有用户信息l Wares数据库保存商品信息l Words数据库保存留言信息3.3.1 Goods数据库3.3.2 Users数据库3.3.3Wares数
13、据库3.3.4 Words数据库3.4代码详细设计 3.4.1、数据库连接 package dbconn;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;public class DB private final String DRIVER=com.microsoft.jdbc.sqlserver.SQLServerDriver;private fina
14、l String URL=jdbc:microsoft:sqlserver:/localhost:1433;databasename=dbj_blog;private final String USERNAME=sa; private final String PWD=sa; /* * 连接数据库驱动,驱动名称及URL. * 从Statement继承,用于提供可以查询信息一起预编译的语句. * ResultSet 类可用来接受执行SQL查询语句后得到的记录集. */ private Connection conn=null; private PreparedStatement pstat=nu
15、ll; private ResultSet rs=null; public DB()/* * * return Connection 返回生成的连接对象 */public Connection getConn()try Class.forName(DRIVER);conn=DriverManager.getConnection(URL,USERNAME,PWD); catch (ClassNotFoundException e) / TODO Auto-generated catch blockSystem.out.println(注册驱动失败+e.toString(); catch (SQL
16、Exception e) / TODO Auto-generated catch blockSystem.out.println(数据库连接失败+e.toString(); return conn;/* * * param sql待查询的sql语句 * return 返回查询结果记录集 */public ResultSet executeQuery(String sql)try pstat=conn.prepareStatement(sql); rs=pstat.executeQuery();return rs; catch (SQLException e) / TODO Auto-gener
17、ated catch blockSystem.out.println(数据库操作失败);return rs; /* * * param sql 待操作的sql语句 * return 返回整型值 */public int executeUpdate(String sql)int flag=0;try pstat=conn.prepareStatement(sql);flag=pstat.executeUpdate(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();return flag;/
18、* * 对数据库关闭的操作 */public void close() try if(rs!=null) rs.close(); if(pstat!=null) pstat.close(); if(conn!=null)conn.close(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace(); 3.4.2、乱码的处理问题 public class EncodeFilter implements Filter String code=GBK; public void destroy() pu
19、blic void doFilter(ServletRequest arg0, ServletResponse arg1,FilterChain arg2) throws IOException, ServletException / TODO Auto-generated method stub HttpServletRequest request=(HttpServletRequest)arg0; request.setCharacterEncoding(code); arg2.doFilter(request, arg1);public void init(FilterConfig ar
20、g0) throws ServletException / TODO Auto-generated method stub3.4.3、获取系统时间package util;import java.util.Date;public class MyDate Date d=null;public MyDate() d=new Date();public String getDate() return (d.getYear()+1900)+年+(d.getMonth()+1)+月+d.getDate()+日+d.getHours()+时;3.4.4、图片上传 % String realpath=re
21、quest.getRealPath(); File files=new File(realpath+upload); String test; test=files.list(); for(int k=0;k img alt= src=upload width=200 height=200 3.4.5商品数据表操作类例、GoodsCtrl,其他类与之相似,省略不写package edu.hbcf.shop.ctrl;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;imp
22、ort java.sql.SQLException;import java.util.ArrayList;import java.util.List;import edu.hbcf.shop.conn.DBConn;import edu.hbcf.shop.bean.ShopGoods;/* * MsgCtrl类实现留言版模块的增、删、改、查 * version 1.0 * author cy * */public class GoodsCtrl DBConn db=null; Connection conn=null; ResultSet rs=null; PreparedStatement
23、 pstat=null; /* * 此方法实现查询所有留言信息,并返回查询结果 * return List( ShopGoods 类的结果记录集合) */public List queryAll() List list=new ArrayList();/定理list泛型集合,并实例化 db=new DBConn();/生成相应的类对象 conn=db.getConn();/加载并注册驱动,生成连接对象返回 String sql=select * from goods order by GoodsID DESC;/定义查询所有留言的sql语句 try pstat=conn.prepareStat
24、ement(sql);/生成预处理执行对象rs=pstat.executeQuery();/执行sql语句,并将结果保存在结果记录集中while(rs.next()/游标后移一条记录,如果记录存在ShopGoods sg=new ShopGoods();/实例化留言对象sg.setGoodsID(rs.getInt(GoodsID);/将对应记录字段GoodsID保存在商品留言对象的GoodsID属性中sg.setGoodsName(rs.getString(GoodsName);/将对应记录字段GoodsName保存在商品留言对象的GoodsName属性中sg.setBuyNumber(rs
25、.getInt(BuyNumber);/将对应记录字段BuyNumber值保存在商品留言对象的BuyNumber属性中sg.setUserName(rs.getString(UserName);/将对应记录字段UserName值保存在商品留言对象的UserName属性中sg.setWareID(rs.getInt(WareID);/将对应记录字段WareID值保存在商品留言对象的WareID属性中sg.setCreateTime(rs.getString(CreateTime);/将对应记录字段CreateTime值保存在商品留言对象的CreateTime属性中list.add(sg);/添加
26、对象sg到集合类中 catch (SQLException e) / TODO Auto-generated catch blockSystem.out.println(查询留言版,数据库操作失败!+e.toString();finally this.close();/连接通道关闭 return list;/返回集合类对象 /* * 此方法实现按用户查询所有留言信息,并返回查询结果 * return List( ShopGoods 类的结果记录集合) */public List queryAllByUser(String UserName) List list=new ArrayList();
27、/定理list泛型集合,并实例化 db=new DBConn();/生成相应的类对象 conn=db.getConn();/加载并注册驱动,生成连接对象返回 String sql=select * from goods where UserName=? order by GoodsID DESC;/定义查询所有留言的sql语句 try pstat=conn.prepareStatement(sql);/生成预处理执行对象pstat.setString(1, UserName);rs=pstat.executeQuery();/执行sql语句,并将结果保存在结果记录集中while(rs.next
28、()/游标后移一条记录,如果记录存在ShopGoods sg=new ShopGoods();/实例化留言对象sg.setGoodsID(rs.getInt(GoodsID);/将对应记录字段GoodsID值保存在商品留言对象的GoodsID属性中sg.setGoodsName(rs.getString(GoodsName);/将对应记录字段GoodsName值保存在商品留言对象的GoodsName属性中sg.setBuyNumber(rs.getInt(BuyNumber);/将对应记录字段BuyNumber值保存在商品留言对象的BuyNumber属性中sg.setUserName(rs.g
29、etString(UserName);/将对应记录字段UserName值保存在商品留言对象的UserName属性中sg.setWareID(rs.getInt(WareID);/将对应记录字段WareID值保存在商品留言对象的WareID属性中sg.setCreateTime(rs.getString(CreateTime);/将对应记录字段CreateTime值保存在商品留言对象的CreateTime属性中list.add(sg);/添加对象sg到集合类中 catch (SQLException e) / TODO Auto-generated catch blockSystem.out.p
30、rintln(查询留言版,数据库操作失败!+e.toString();finally this.close();/连接通道关闭 return list;/返回集合类对象 /* * 此方法实现向数据库添加一条留言信息 * return int 添加留言成功返回1,否则返回0 */public int addGoods(ShopGoods sg) int flag=0; db=new DBConn();/生成相应的类对象 conn=db.getConn();/加载并注册驱动,生成连接对象返回 String sql=insert into goods values(?,?,?,?,?);/定义添加记
31、录的sql语句 try pstat=conn.prepareStatement(sql);/生成预处理执行对象pstat.setString(1,sg.getGoodsName();/设置对象的GoodsName参数pstat.setInt(2, sg.getBuyNumber();/设置对象的BuyNumber参数pstat.setString(3, sg.getUserName();/设置队想的UserName参数pstat.setInt(4, sg.getWareID();/设置对象的WareID参数pstat.setString(5, sg.getCreateTime();/设置对象的
32、CreateTime参数flag=pstat.executeUpdate();/执行sql语句 catch (SQLException e) / TODO Auto-generated catch blockSystem.out.println(添加留言失败+e.toString();finally this.close();/关闭连接通道 return flag;/返回操作状态 /* * 此方法实现根据留言id查询一条留言信息 * param GoodsID 整形值,接受一条记录的id * return ShopGoods 将查询的一条留言记录存放到ShopGoods类实例中返回 */pub
33、lic ShopGoods querryById(int GoodsID) ShopGoods sg=null; db=new DBConn();/生成相应的类对象 conn=db.getConn();/加载并注册驱动,生成连接对象返回 String sql=select * from goods where GoodsID=?;/定义查询一条留言的sql语句 try pstat=conn.prepareStatement(sql);/生成预处理执行对象pstat.setInt(1, GoodsID);/设置pstat对象的待定参数msgidrs=pstat.executeQuery();/执行查询if(rs.next()/游标后移一条记录,如果记录存在sg=new ShopGoods();/实例化ShopGoods对象/sg.setGoodsID(rs.getInt(GoodsID);/将对应记录字段GoodsID值保存在留言对象的GoodsID属性中sg.setGoo