网上购物管理系统由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“网上购物库存管理系统”。
课程实践报告
课程名称:软件工程实践II 项目名称:网上购物系统 专业班级:
姓
名: 学
号:
指导教师:
成绩:______ 报告日期:2014年12月9日
网上购物管理系统
摘要
随着计算机技术在各行各业日益广泛和深入的应用,网络的概念早已深入人心。网络在各行各页的发展战略占据了重要的位置,成为了商家不可分割的一部分。网络已经成为了商家展示自己的另一个舞台。商家建立网站,通过网站可以实现,浏览商品,网上购物,结账
本系统实现了网上购物商城的基本功能和购物流程。主要模块有:商品查询、商品管理、商品显示、购物车、订单管理、用户管理等功能。其开发主要包括:数据库的建立,前台Web页面设计,后台管理。本系统采用MySql数据库和Tomcat服务器实现,并且使用HTML、JSP等技术来编辑网页,并运用Hibernate技术把数据库和动态网页相关联。
关键字
关键词:网上商场,购物车,结账,Tomcat,Sevlet,JSP,MySql数据库
目录
摘要..............................................................................................................................................2 关键字..........................................................................................................................................2 1需求分析.......................................................................................................................................4 1.1背景.........................................................................................................................................4 1.2可行性分析.............................................................................................................................4 1.3对性能的规定.........................................................................................................................4 1.3.1时间特性要求..................................................................................................................4 1.3.2灵活性..............................................................................................................................5 1.4其他专门要求.........................................................................................................................5 1.5运行环境的规定.....................................................................................................................5 1.6设备.........................................................................................................................................5 1.7支持软件.................................................................................................................................5 2功能分析.......................................................................................................................................6 2.1功能分析的目的.....................................................................................................................6 2.2业务描述.................................................................................................................................6 2.3用例图.....................................................................................................................................8 2.4 状态图..................................................................................................................................10 3模块设计.....................................................................................................................................10 3.1系统功能模块.......................................................................................................................10 3.2模块分析...............................................................................................................................11 4数据库分析与设计.....................................................................................................................18 4.1数据库分析...........................................................................................................................18 4.2系统整体ER图的设计........................................................................................................19 4.3数据库设计...........................................................................................................................20 5编码,实现及测试.....................................................................................................................22 5.1各功能源代码.......................................................................................................................22 6 结论............................................................................................................................................29 6.1系统优点...............................................................................................................................29 6.2系统缺点...............................................................................................................................29 6.3未来发展...............................................................................................................................29 7实验小结.....................................................................................................................................30 7.1 孙佳伟实验小结..................................................................................错误!未定义书签。7.2 喻道斌实验小结..................................................................................错误!未定义书签。7.3 金龙实验小结......................................................................................错误!未定义书签。1需求分析
1.1背景
在发达国家,电子商务的发展非常迅速,通过Internet进行交易己成为一种潮流。基于电子商务所连带出的商品交易方案、电子结账方案和信息安全方案等,已逐步成为国际信息技术市场竞争的焦点。随着电子商务的日益发展,产生了网上购物、网络广告等新兴信息产业,从侧面反应了电子商务正在对社会和经济产生着深刻的影响。
在我国,网上购物从无到有也不过短短几年时间。但是就在这几年时间,网络购物已经深入千家万户,普通的购物已经不能满足人们的消费。网上购物以其诸多优势,获得人们的青睐。它以其方便,快捷,高效,高选择性等优点,迅速得到了广大网友的喜爱与青睐,现在的网上购物已经非常普及。本系统设计就是为了满足广大网友的这些需求,改变传统的交易模式,通过互联网完成查看商品,购买商品等完成网上交易。方便消费者,同时对商家的商品信息进行管理,便于商家的商品数据分析。截止2013年1月中国有网上购物的用户将近5000万人,这足以证明网上购物具有良好的群众基础,网上购物方式日趋被大家所接受。因此我们小组致力于做一个基于B/S架构的网上购物管理系统,使广大用户可以享受网上购物的种种优势。
1.2可行性分析
随着计算机的普及,Internet的发展,网购已经成为人们生活消费中一大部分。一个网上购物系统可以为消费者提供软件条件,使其可以更加快捷,方便,实惠的选择商品,而商家也可以更好的管理商品,节约成本,两全其美。所以构建一个网上购物商城在运行上是完全可行的。
此次开发使用JSP作为开发语言,采用Servlet技术,Tomcat7.0座位Web服务器,采用MySql作为数据库,这几种技术及工具的方便,快捷,免费大大的缩短了开发的时间,减少了开发的成本。并且使得开发更方便安全,更利于后期的维护。网上购物服务系统给人们带来了方便,成为一种全新的商务模式。因此,不用出门就可以在家购物的新时尚已经到来,构建一个网上购物服务系统在经济上是完全可行的。
综上所述:开发本系统是完全可行的。
1.3对性能的规定 1.3.1时间特性要求
对于商品基本信息,订单信息管理的增加删除修改必须是实时响应,与客户端的交互响应时间不超过5s 1.3.2灵活性
操作方式的变化,可以直接从UI或从数据库输入行,对初始行进行增加,删除,删除等操作。
1.4其他专门要求
文字描述必须准确,精炼,通俗易懂。安全性要得以保障,可移植性要高,为了适应不同系统,程序吞吐量必须要大,否则不能动态适应购物网站的需要。
1.5运行环境的规定 1.6设备
开发环境: 操作系统:windows 7 硬件环境:
客户终端:pc机; 服务器:Tomcat 编译环境:Jdk 1.6 1.7支持软件
操作系统:** 开发软件:MyEclipse 数据库: Mysql
2功能分析
2.1功能分析的目的从用户需求出发,对于网上购物系统做细致全面的功能分析,准确地定义网上购物系统的目标,确定系统必须做什么,再用UML建模,并以Rational Rose工具画出功能模型,以此形式分析确定此网上购物系统的功能。
2.2业务描述
用户进入网站后,可以根据价格高低确定是否进行筛选,不筛选则进入所有的商品浏览界面,筛选则得出筛选后的浏览界面。接着可以点击商品加入购物车,可以自己选择加入的数量。加入购物车以后可以查看购物车,在购物策划模块中可以选择添加或删除购物车商品,接着用户可以自行判断是否继续购物,如果继续购物则返回首页,不购物则进行结账。结账之后可以查看订单界面,这里有详细的订单信息。,否则注销退出。
下图为网上购物系统的业务流程图。
开始用户进入网站按照价格高低进行筛选筛选后的浏览界面浏览商品加入购物车查看购物车添加或删除购物车商品继续购物结账查看订单订单界面注销退出结束
图 1-1 系统业务流程图
2.3用例图
用例图
浏览商品用例,可以实现浏览商品
搜索商品用例,可以根据商品的价格进行筛选查询商品。 管理商品详情用例,可以实现对商品中所有信息的浏览。
加入购物车用例,是用户才有的功能,能在浏览商品后把商品加入购物车 管理购物车用例,在加入购物车后扩展的功能,对于购物车内的商品可以增加删除 购买商品用例,用户可以对于商品显示页面的商品进行购买 管理自身订单,用户可以对自身的订单进行搜索,删除功能。 清空购物车用例,用户对购物车中所有商品进行清空
浏览曾经的商品(历史记录)用例,用户可以在这里浏览曾经使用的商品 结账模块用例,用户可以在这里进行结账功能。
>浏览商品显示商品详情用户筛选商品加入购物车
图1-2主用例图
删除商品用户浏览购物车清空购物车继续购物结账
图 1-3 购物车用例图
结账用户事务管理查看订单信息
图 1-4 结账用例图
2.4 状态图
对于系统进行状态细节分析如下 a)b)c)d)e)f)g)h)用户首页输入网址进入首页界面 用户浏览商品进入商品展示界面
浏览完之后可选择喜欢的商品进入购物车界面 在购物车中可以添加或删除商品进入更改商品界面
更改接受后确定是否继续购物,若继续择返回商品展示界面 若不继续购物则进入结账界面
在结账界面中进行查看订单,进入订单确认状态
订单确认无误后,则系统提交,之后用户可以注销退出。
按价格筛选用户输入网址首页浏览商品商品展示界面加入购物车购物车界面结账界面发出结账请求查看订单注销继续购物确定是否购物添加或删除商品订单确认状态退出
3模块设计
3.1系统功能模块
功能模块图:
系统总体分为前台展示模块,购物车模块,结账模块。
前台展示模块包括:浏览商品模块,筛选商品模块,商品详情模块,历史纪录模块。购物车模块包括:购物车展示模块,删除商品模块,清空购物车模块,继续购物模块。
结账模块包括:订单确认模块,提交订单模块,事务处理模块。
网上购物管理系统前台展示模块购物车模块结账模块浏览商品模块筛选商品模块商品详情模块历史纪录模块购物车展示模块删除商品模块清空购物车模块继续购物模块订单确认模块提交订单模块事务处理模块
图3-1 功能模块图
3.2模块分析
1:商品展示模块
这是网站的主页面,用户不登陆也可以进入该页面,登陆成功后,页面会显示用户的信息。此页面主要是显示一些主要商品的图片、名称、价格等信息,用户可以输入商品名称,种类等进行搜索,也可以直接点击商品查看商品细节信息。
图 3-2 商品展示模块
在主界面中可以根据价格的高低排序
2:商品详情模块
当你点击一个商品的链接,可以进入商品的详情页面,这里会相识一个商品的所有具体信息,可以看到书名,作者,价格,出版日期
图3-3 商品详情模块
3:购物车模块
用户喜欢的商品可以选择放进购物车里,可以在购物车里产看用户选择的商品的名称价格以及购物车商品的总价,用户可以对购物车中的商品进行操作,修改购买数量,删除商品,清空购物车,结账等。
图3-3 购物车前台模块
图3-4购物车展示界面
清空购物车
删除购物车中的某教材
图3-5清空购物车界面
图3-6删除购物车某教材
4:回顾商品模块
当您想看曾经浏览过的商品时,可以点击查看浏览的历史记录,根据最近浏览的显示记录排序
5:结账模块
图3-7 回顾商品模块
在购物车进行结算以后,会跳转至结账界面,系统会显示当前的信用卡姓名,信用卡帐号,当您提交时就会结算成功,并且通过事务管理防止重复提交
图3-8 结账模块界面
余额不足时提示
图3-8 余额不足界面
6:订单页面模块
在购物车进行结算以后,就会生成订单,订单会显示订单号、收货人、地址、电话等信息。点击查看详情就可以进入订单详情页面
图 3-9 订单页面模块
4数据库分析与设计
4.1数据库分析
对于以上模块的划分以及分析我们建立网上购物管理系统数据库,建了5个表,分别是帐户表(account),书籍信息表(mybooks),订单表(trade),订单项目表(tradeItem),用户信息管理(usersInfo),各表的实现的功能在上述模块设计中已经指出,此刻不再赘述。
帐户表(account)中的各列分别为:帐户编号(accounted)主码,帐户余额balance 书籍信息表(mybooks)中的各列分别为:书籍(Id)主码,作者(Author),标题(Title),价格(Price),出版日期(Publishingdate),车辆类型(Salesamount),车辆规格(Storenumber),单价预算(Remark)订单表(trade)中的各列分别为:订单编号(tradeid)主码,用户编号(userid)外码,订单日期(tradetime)订单项目表(tradeItem)中的各列分别为:订单编号(itemid)主码,书籍编号(bookid)外码,(quantity),使用年限(tradeid)用户信息管理(usersInfo)中的各列分别为:用户编号(userid),用户名(username),帐户编号(accountid)
4.2系统整体ER图的设计
用户编号订单编号帐户编号帐户余额订单表订单日期帐户表用户名用户编号帐户编号生成拥有用户信息管理拥有购买订单项目表书籍信息表订单编号书籍价格作者出版日期标题书籍编号使用年限
图4-1 系统整体ER图设计
4.3数据库设计
帐户表(account)设计
书籍信息表(mybooks)设计
图4-2帐户表(account)设计
订单表(trade)设计
图4-3书籍信息表(mybooks)设计
图 4-4订单表(trade)设计
订单项目表(tradeItem)设计
用户信息表(userinfo)设计
图4-5订单项目表(tradeItem)设计
图4-6 用户信息表(userinfo)设计 5编码,实现及测试
5.1各功能源代码
5.1.1 分页的实现
public ListgetPageList(CriteriaBookcb, intpageSize,String method){
String sql=null;System.out.println(“ method------------>”+method);if(method.equals(“price”)){ sql=“SELECT id, author, title, price, publishingDate, ” +
} elseif(method.equals(“salesamount”)){
} elseif(method.equals(“publishingdate”)){
} else{
} returngetForList(sql, sql=“SELECT id, author, title, price, publishingDate, ” +
“salesAmount, storeNumber, remark FROM mybooks ” + “WHERE price >= ? AND price
”salesAmount, storeNumber, remark FROM mybooks “ + ”WHERE price >= ? AND price
“salesAmount, storeNumber, remark FROM mybooks ” + “WHERE price >= ? AND price
”salesAmount, storeNumber, remark FROM mybooks “ + ”WHERE price >= ? AND price
//ajax修改单个商品的数量
//1.获取页面中所有的text,并为其添加onclick事件 $(“:text”).change(function(){
varquantityVal = $.trim(this.value);varreg=/^d+$/g;varquantity=-1;
varflag=false;if(reg.test(quantityVal)){
} if(!flag){ alert('输入的数量不合法');$(this).val($(this).attr(“cla”));return;}
var$tr = $(this).parent().parent();vartitle = $.trim($tr.find(“td:first”).text());if(quantity==0){
} varflag = confirm(“确定要修改” + title + “的数量吗?”);if(!flag){ $(this).val($(this).attr(“cla”));} //2.请求地址为: bookServlet varurl = “Books”;
//3.请求参数为: method:updateItemQuantity, id:name属性值, varidVal = $.trim(this.name);varargs = {“method”:“updateItemQuantity”, “id”:idVal,//4.在updateItemQuantity方法中, 获取quanity, id, 再获取购物车对象, //5.传回 JSON 数据: bookNumber:xx, totalMoney return;
varflag2=confirm(“确定要删除”+title+“吗?”);if(flag2){ varserializeVal = $(“:hidden”).serialize();varhref=$tr.find(“td:last”).find(“a”).attr(“href”);window.location.href=href+ “&” + serializeVal;;return;} quantity=parseInt(quantityVal);if(quantity>=0)flag=true;
quantity:val, time:new Date()
“quantity”:quantityVal, “time”:newDate()};调用 service 的方法做修改
//6.更新当前页面的bookNumber和totalMoney $.post(url, args, function(data){
varbookNumber = data.bookNumber;vartotalMoney = data.totalMoney;$(“#totalMoney”).text(“总金额: ¥” + totalMoney);$(“#bookNumber”).text(“您的购物车中共有” + bookNumber + “本书”);},“JSON”);});5.1.3:运用ThreadLocal类实现数据库的连接与当前线程绑定,实现结账的事务操作
publicvoiddoFilter(ServletRequest request, ServletResponse response, FilterChain chain)throwsIOException, ServletException {
Connection connection = null;try {
connection = DBUtils.getConnection();
connection.setAutoCommit(false);
ConnectionContext.getInstance().bind(connection);
chain.doFilter(request, response);
connection.commit();e.printStackTrace();try {
}
HttpServletResponseresp =(HttpServletResponse)response;HttpServletRequestreq =(HttpServletRequest)request;resp.sendRedirect(req.getContextPath()+ “/error-1.jsp”);connection.rollback();e1.printStackTrace();} catch(SQLException e1){ } catch(Exception e){
}
}
ConnectionContext.getInstance().remove();DBUtils.Release(connection);
} finally{ 5.1.4:使用过滤器实现页面的编码
publicvoiddoFilter(ServletRequest request, ServletResponse response, FilterChain chain)throwsIOException, ServletException {
} String encoding = request.setCharacterEncoding(encoding);chain.doFilter(request, response);filterConfig.getServletContext().getInitParameter(“encoding”);5.1.5:数据库底层操作,运用泛型技术和反射技术
public cla BaseDao implements DAO {
private Claclazz;
publicBaseDao(){
} @Override public long insert(String sql, Object...args){
long id=0;Connection conn=ConnectionContext.getInstance().get();try {
PreparedStatement for(inti=0;i
prepareStatement.setObject(i+1, args[i]);clazz = ReflectionUtils.getSuperGenericType(getCla());System.out.println(clazz);
privateQueryRunnerqueryRunner=new QueryRunner();prepareStatement=conn.prepareStatement(sql,java.sql.Statement.RETURN_GENERATED_KEYS);
}
} { } // TODO Auto-generated catch block e.printStackTrace();id=resultSet.getLong(1);} catch(SQLException e){ return id;@Override public void update(String sql, Object...args){
} @Override public T query(String sql, Object...args){
} @SuppreWarnings(“unchecked”)@Override public V getSingleValue(String sql, Object...args){
Connection conn=ConnectionContext.getInstance().get();try {
} return(V)queryRunner.query(conn, sql, new ScalarHandler(), args);// TODO Auto-generated catch block e.printStackTrace();} catch(SQLException e){ Connection conn=ConnectionContext.getInstance().get();try {
} return null;return(T)queryRunner.query(conn, sql, new BeanHandler(clazz), args);// TODO Auto-generated catch block e.printStackTrace();} catch(SQLException e){ Connection conn=ConnectionContext.getInstance().get();try {
} queryRunner.update(conn, sql, args);// TODO Auto-generated catch block e.printStackTrace();} catch(SQLException e){
} } return null;@Override public void batch(String sql, Object[]...args){
} @Override public ListgetForList(String sql, Object...args){
} Connection conn=ConnectionContext.getInstance().get();try {
} return null;System.out.println(“sql-----------”+sql);returnqueryRunner.query(conn, sql, new BeanListHandler(clazz),args);// TODO Auto-generated catch block
e.printStackTrace();Connection conn=ConnectionContext.getInstance().get();try {
} queryRunner.batch(conn, sql, args);e.printStackTrace();} catch(SQLException e){ } catch(SQLException e){ 5.1.6:使用seion防止表单重复提交
publicvoidcash(HttpServletRequest request, HttpServletResponse response)
HttpSeion seion=request.getSeion();
Thread.sleep(5000);String username=request.getParameter(“username”);String accountId=request.getParameter(“accountId”);StringBuffer errors=validateFormField(username, accountId);if(errors.toString().equals(“”)){
errors=validateUser(username, accountId);if(errors.toString().equals(“”)){ throwsServletException, IOException, InterruptedException {
;
}
} errors=validateBookStoreNumber(request);if(errors.toString().equals(“”)){ }
errors=validateBalance(request,accountId);String code=(String)seion.getAttribute(“code”);System.out.println(code+“---------”);String codeRe=request.getParameter(“checkCode”);if(!code.equals(codeRe)){ } if(!errors.toString().equals(“”)){ request.setAttribute(“errors”, errors);errors.append(“验证码输入不正确”);request.getRequestDispatcher(“/WEB-INF/pages/cash.jsp”).forward(request,service.cash(BookStoreWebUtils.getShopCart(request),username,accountId)
request.getRequestDispatcher(“/WEB-INF/pages/error.jsp”).forward(reques
} }
} if(valS==null){ request.setAttribute(“username”, username);request.getRequestDispatcher(“/succe.jsp”).forward(request, seion.removeAttribute(“date”);}
String val=request.getParameter(“date”);
String valS=(String)seion.getAttribute(“date”);
if(valS!=null&&valS.equals(val)){ return;response);response);t, response);5.1.7:使用数据库连接池
root
123456
jdbc:mysql:///bookstore
com.mysql.jdbc.Driver
2
5
5
10
20
5
结论
6.1系统优点
系统实现了网上购物商城的基本功能,可以很好的完成网上购物的一系列流程。而且方便快捷,高效。页面也很美观,大方。对整个系统的框架设计合理,大大提升了系统的整体性与耦合性。也方便了后期的进一步开发与维护。
6.2系统缺点
系统缺乏创新性,没有自己过多的新增功能,没有特别突出的特点。可以增加一些功能,来丰富系统,提升系统的实用性。例如增加商品的销量排行榜,方便用户查看畅销商品。增加商品的交易评价,方便用户判断是否购买此商品。
6.3未来发展
这里指为了使本系统更好的适应环境的变化,有必要进行适应性维护。一方面由于计算机技术的飞速发展,原来的系统不能适应新的软硬件,另一方面,应用对象也在不断的发生变化,将导致系统不能适应新的应用环境,因此,有必要对系统进行调整,以保证系统时时都能满足用户要求。
7实验小结
网上购物系统的实现The realization of the online shopping system总计 毕业设计(论文)表 格插 图页 个幅36 7 20 摘 要本网上购物系统是一个基于Internet,采用B2C(Busin......
网上购物系统测试报告M10 计算机科学与技术(专转本) 1021413002 一、题目描述在互联网日益流行的今天,网络已经变的越来越重要,而在网络这个大家庭里,用户商城系统则是一个热......
jsp网上购物系统2008年10月11日 星期六 下午 06:03 网上购物系统设计摘 要:本网上购物系统是一个基于Internet,采用B2C(Busine to Consumers)模式,并根据现有的网上购物系统的......
《软件课程设计》项目名称:年、班级:小组成员:朱勇------项目设计书《网络购物综合平台》2012级软工二班张振宇 2014/8/161、需求分析:1.1开发背景:随着科学和网络的飞速发展,信息......
一、系统流程分析(1)普通用户分为注册会员用户和非会员用户。进入网站首页,会员用户登录成功后具有查看商品信息并订购商品、查看订购信息、查看公告信息、修改个人信息等权......