




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Web系统开发与设计期末报告班 级 10金融信息 学 号 姓 名 褚腾燕 指导教师 张琼妮 浙江财经学院东方学院教务部制Web论文摘要:本文基于Web技术下,研究并实现了网上购物功能以及后台管理功能。并对购物车系统进行设计的总体规划,同时详细地分析了基于 Web平台的购物车的系统结构及功能划分 ,进而对各子系统进行了具体设计 。关键词:购物车;Web ;数据库一、需求分析网络购物车是现在广泛用于网上购物的工具之一。购物车主要提供了基本的用户注册,用户登录,增删物品,统计价格等功能。用户在使用购物车时,可以方便的使用这些简易的功能。1.功能需求从部署的位置来看,本项目可以分为服务器端和客户端。服
2、务器端的应用主要是起管理作用,用户端发送的所有消息都将被发送到服务器端,经过服务器端的出来后,服务器端可以选择将消息丢弃或者转发。用户端的应用分成三种。第一种是提供基本的登录界面,在登录界面中应该有服务器地址选择、服务器端口选择以及用户登录昵称等信息;第二种是想服务器发送消息,比如用户注册,用户登录、用户退出、添加物品,删除物品,统计价格等消息;第三种是响应服务器的消息,即当接收到服务器端方式的消息后,采取响应的动作。比如当用户端收到服务器端发送的添加物品的消息后,用户端应该从消息中提取添加物品的信息,并将信息按要求添加到适当的位置。综上所述,本系统需要提供一下的界面和功能:(1)用户注册。当
3、用户第一次使用购物车时,提供用户注册界面,以便后期进行各种购物车功能(2)在用户端提供登录界面,支持服务器的选择,并提供所选择服务器的端口号,以及基本的登录昵称的输入。(3)提供一个完整的网络消息协议的设计以及实现。该消息协议应包括登录消息、添加物品、删除物品、统计价格等。每一种网络消息都应该有响应处理以及回复的方法。(4)在客户端提供购物车页面。用户在购物车页面可以进行添加、删除等操作,并可以实时统计价格。(5)在服务器端提供消息出来机制。对客户端发送的各种消息,服务器端应该在进行分析后,进行响应的处理。2.系统结构设计系统结构图如下所示:网上购物一般用户网站布局管理员进入一般用户登录用户注
4、册用户注销商品管理用户管理商品搜索添加到购物车我的购物车进入结算3用户信息查维护系统的后台程序会自动记录每个用户在登录网站后进行的所有操作,包括查询和订购信息。这些信息对以系统的管理员都是珍贵的数据,系统分析程序可以根据用户的查询记录判断该客户的喜好,可以根据用户的购买情况判断该用户的经济情况。系统后台程序可以根据分析的结果自动得出给该用户的推荐商品,在用户登录时显示在醒目的位置。4.开发及运行环境 (1) 硬件平台CPU: Pentium 4 2.0GHz以上内存:512MB以上容量显卡:32MB或以上显存之AGP接口显卡 (2) 软件要求操作系统:Microsoft Windows XP运
5、行环境:Tomcat/ jdk1.6开发工具:MyEclipse ,MySQL-Front二、数据流程图显示所有商品: 将某商品添加到购物车:生成订单: 图片的上传和显示:3. 管理员1. 一般用户2. 网上购物系统下单(查询、修改订)订单反馈订单管理系统管理付款发货 2.1.1 网上购物系统顶层图1.1未登录1.3登录验证1.2已登录验证成功验证失败登录1.4注册验证注册注册失败注册成功 一般用户信息记录文件注册成功1.5个人信息查询、修改下订单查询、修改订单订单反馈2.1.2 网上购物系统(会员)2.1 订单管理系统订单查询、修改订单2.2 界面管理系统2.3 注册用户管理系统管理员2.1
6、.3 网上购物系统图(购物系统)2.3.1 浏览、修改用户信息 用户信息记录文件2.3.2 浏览、修改普通管理员信息 管理员信息记录文件2.1.4 网上购物系统图(注册会员管理系统)3.1管理员订单管理系统已无库存3.2 管理员注册会员管理系统3.2 个人信息修改 管理员信息记录文件 订单记录文件 2.15 网上购物系统图(管理员系统)三、ER图3.1 用户ER图3.2 商品ER图3.3 用户和商品、订单之间的局部ER图图3.3 用户和商品、订单之间的局部ER图3.4 各实体之间总体ER图图3.2 各实体之间总体ER图四数据库模块设计根据需求分析以及功能需求,我们得出我们的购物网站的总体框架以
7、及程序的实际运用流程.4.1基于MVC的应用开发模型在传统的基于Web的应用系统中,例如ASP,CGI等,通常开发者将业务逻辑,数据逻辑、展示逻辑等混杂在一起,在同一个界面面里既进行后台数据库的访问和操作,同时还包含业务流程和页面表示。这样编写出来的程序,既不利于程序员对业务代码的调试,同时也不利于编辑人员进行交互页面的设计。同时系统也不具备可扩展性,当我们要在现有业务上进行扩展的时候,通常无法借助于现有的资源和应用,而只能够重新编写,大大增加了投资,延长了系统上线的时间,失去了竞争市场的优势。在本网上购物系统中,将采用通行的MVC模式来构建应用。这种结构解决了前面所述的所有问题,在我们的应用
8、集成网络中,通过企业级高端J2EE应用服务器实现MVC开发模型。Control服务控制View显示方式Model业务逻辑模型输入请求输出Html其他通过这种方案,我们可以迅速地实现整个业务,其优势和特点如下:Model(模型)层:由JavaBean组件来实现,JavaBean将具体的业务封装在组件内部,具备安全、高性能、可重用等优秀的特征。View(视图)层:由JSP组成。这一层次的特点是能够真实地展示和客户交互的界面,具备可描绘的功能。同时能够嵌套动态数据,可以进行动态页面的展示。同时可以方便地进行客户端的个性化定制。根据每个客户的需求来展示不同风格的界面。Controller(控制器)层:
9、是非常重要的一层,这一层是连接View和Model的纽带,同时也是将这两层进行最大限度分离的工具。通常由Servlet来实现,Servlet和JSP虽然同样都属于页面展示工具,但分属两层。主要在于JSP以脚本语言的形式存在, 它的主要优势是进行动态数据的Web展示,而Servlet是一个完整的Java程序,进行业务的调用和流程的处理是它的长处。4.2平台功能模块的设计分析平台功能的分析基础上,我认为购物车应该有两个平台的设计,即前台用户设计与后台的管理者设计,由此得到本平台的功能模块图如图3-1所示:网上购物系统后台功能用户管理订单管理购物车管理商品管理用户信息管理管理员身份验证前台功能前台设
10、计:用户进入网上购物平台,用户可以注册,然后登录后可以进行个人信息修改与注销,用户可以通过商品搜索,找到自己想要产品,然后添加到购物车,后台设计:管理员可以通过后台登录进去进行用户管理,商品管理,在用户管理中,可以对用户进行添加删除,在商品管理中可以对商品进行添加修改。五数据库表结构设计5.1manage(管理员表)功能字段名字段类型用户ididvarchar用户名usernamevarchar性别genderchar生日birthdaydate籍贯nativeplacevarchar用户类型typechar5.2 Goods(商品表)功能字段名字段类型商品idcidvarchar商品名称cn
11、amevarchar商品价格cpricefloat商品数量cnumberint商品介绍cintrotext图片存储位置cimagevarchar商品图片cpicblob5.3 orderstable(订单表)功能字段名字段类型收货人姓名receivenamevarchar电话号码telechar邮编zipcodechar付款方式paymodechar功能字段名字段类型订单idorderidvarchar用户名usernamevarchar订单日期orderdatedate订单状态orderstatechar地址addressvarchar5.4 orderlist(订单信息表)功能字段名字段类
12、型订单idorderidvarchar商品idcidvarchar数量quantityint5.5 users(用户信息表)功能字段名字段类型用户iduserridint 用户姓名Usernamevarchar密码Userpassvarchar性别Genderchar出生日期BirthdateDate籍贯Nativeplacevarchar六各模块的运行界面与实现代码6.1注册设计如果用户还不是会员则提示用户进行注册,用户提交信息之后,系统开始判断用户的注册信息是否有效,首先是用户名是否为空,(该处存在用户名命名规则的问题,后面问题中会详细解决)用户输入的两次密码是否一致,然后依次往后判断用户
13、所填写的各项信息是否符合要求,直到所有信息均正确无误,系统将该用户注册信息写入用户表即user并提示用户注册成功,2秒跳转到个人主页,就可以进行有效的购物了。注册页面的效果图如下图5-1所示:系统对用户的注册详细代码实现如下: 用户注册 用户名 密码 重置密码 性别 男 女 出生日期 籍贯 浙江 江苏 安徽 北京 上海 S 返回首页这一请求通过regservlet进行接收,并对信息验证,对用户进行响应:public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletE
14、xception, IOException String username=Tools.CodeToString(request.getParameter(username);System.out.println(username);String userpass=request.getParameter(userpass);String gender=Tools.CodeToString(request.getParameter(gender);String birthdate=request.getParameter(birthdate);String nativeplace=Tools.
15、CodeToString(request.getParameter(nativeplace);String url=jdbc:mysql:/localhost:3306/mytest;String user=root;String password=;String sql=select * from users where username=+username+; /省略号表示要输入具体的sql语句/创建各个对象Connection conn=null; /建立数据库连接的对象Statement stmt=null; /创建用于执行SQL语句的Statement对象ResultSet rs=n
16、ull; /创建结果集对象HttpSession session=request.getSession();try /建立连接并执行语句conn=DriverManager.getConnection(url, user, password);stmt=conn.createStatement();rs=stmt.executeQuery(sql);/其它操作if(rs.next()session.setAttribute(reg_msg, 用户已经存在,请重新注册!);response.sendRedirect(reg.jsp);elseStringBuffer newsql=new Str
17、ingBuffer();newsql.append(insert into users (username, userpass, gender,birthdate,nativeplace) values ();newsql.append(username);newsql.append(,);newsql.append(userpass);newsql.append(,);newsql.append(gender);newsql.append(,);newsql.append(birthdate);newsql.append(,);newsql.append(nativeplace);newsq
18、l.append();stmt.executeUpdate(newsql.toString();session.setAttribute(msg, 用户注册成功!);session.setAttribute(username,username);response.sendRedirect(regMsg.jsp);catch(SQLException se)throw new ServletException(se);finallytryrs.close();catch(SQLException se)trystmt.close();catch(SQLException se)tryconn.c
19、lose();catch(SQLException se)6.2登陆设计用户登陆模块是防止非法用户登陆的第一道防线,通过它可以保护后台数据库的安全性,当用户要进行定购时,首先要进入的就是身份验证界面,只有在密码正确的情况下才能进行以后的购物,如果输入的密码不正确,则不能进入购物界面。如果用户以浏览者的身份进入网站,则只能进行一般的商品浏览,而不能进行选购,在点击任一按钮后,系统会判断该用户是否是登陆用户,如果不是则弹出提示页面,提示用户必须先登陆才能购物。 登陆的具体实现要通过一个全程变量,即Session变量来实现,在系统中则单独的一个loginservlet页面来放置该session。用户
20、登录的界面login.jsp,从user表查得用户提交的帐户名和密码正确后,用一个全局变量,即Session变量保存这一消息(该变量名称为Session(“username”))。示意图如图5-2所示由于首页中包含了不止登陆界面一个模块,便于理解期间,就显示登陆的具体代码如下: 用户名: 密 码: 注册注销管理员登录 而loginservlet响应信息代码为:if(rs.next()session.setAttribute(username,username);session.setAttribute(msg,登录成功!
21、);elsesession.setAttribute(msg,用户名或密码错误!);response.sendRedirect(regMsg.jsp);catch(SQLException se)throw new ServletException(se);finallytryrs.close();catch(SQLException se)trystmt.close();catch(SQLException se)tryconn.close();catch(SQLException se)6.3购物车设计6.3.1 商品显示实现当用户登陆成功以后,如果想进入购物,就进入所有商品界面,在点击物
22、品右边的添加到购物车,系统会弹出一个新的页面,显示该物品已经添加进购物车,然后用户需要选择定购的数量。其中所有商品页面效果如图5-3所示:主要代码如下: 所有商品 第一页 上一页 下一页 最后一页 物品编号 物品名称 物品价格 商品图片 操作 GetallGoods显示商品信息主要代码如下:public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException String pageNo=request.getParameter(pageNo)
23、;int iPageNo=1;if(pageNo!=null)iPageNo=Integer.parseInt(pageNo);Goods g=new Goods();ArrayList goods=null;goods=g.getGoodsByPage(iPageNo);int pageCount=g.getPageCount();request.setAttribute(goods,goods);request.setAttribute(pageNo,new Integer(iPageNo);request.setAttribute(pageCount,new Integer(pageCo
24、unt);String forward=goodslist.jsp;RequestDispatcher rd=request.getRequestDispatcher(forward);rd.forward(request,response);对于在数据库中添加购物车,通过addtocart来实现:tryString cid=request.getParameter(cid);CartManager cartManager=new CartManager();HttpSession session=request.getSession(true);ArrayList cart=(ArrayLi
25、st)session.getAttribute(cart);cartManager.setCart(cart);Goods g=new Goods();g=g.findGoodsById(cid);cartManager.addToCart(g,1);session.setAttribute(cart,cartManager.getCart();catch(Exception e)response.sendRedirect(cart.jsp);6.3.2 购物车实现点击添加到购物车后,页面跳转到购物车,该物品信息被后台添加到购物车表即goods表中,如果用户需要继续购物,可以继续选择,不断添加
26、,系统会自动将所有信息写入goods表,同时显示用户所购买的物品列表,及价格。如下图5-4: 购物车中的信息 清空购物车 继续购物 进入结算 物品编号物品名称价格数量操作 修改购物车商品数量与删除商品则由processcart来实现:public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException tryString cid=request.getParameter(cid);String action=request.getParame
27、ter(action);action=new String(action.getBytes(8859_1);String quantity=null;if(action.equals(修改)quantity=request.getParameter(quantity);CartManager cartManager=new CartManager();HttpSession session=request.getSession(true);ArrayList cart=(ArrayList)session.getAttribute(cart);cartManager.setCart(cart)
28、;if(action.equals(修改)cartManager.update(cid,Integer.parseInt(quantity);elsecartManager.delete(cid);session.setAttribute(cart,cartManager.getCart();catch(Exception e)response.sendRedirect(cart.jsp);6.3.3 订单生成与结算实现当用户选择进入结算后,系统会自动跳转到生产订单界面,包括姓名、地址、邮编、电话、付款方式在这个界面对收货人信息进行输入。如下图5-5:添加用户订单信息 收货人姓名: 电话号码:
29、 地 址: 邮 编: 付款方式: 货到付款 网上付款 处理收货人信息是用buyservlet来对用户响应如图5-6:public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException response.setContentType(text/html);OrderBean ob=new OrderBean();ob.set
30、Username(Tools.CodeToString(request.getParameter(username);ob.setAddress(Tools.CodeToString(request.getParameter(address);ob.setReceivename(Tools.CodeToString(request.getParameter(receivename);ob.setTele(request.getParameter(tele);ob.setZipcode(request.getParameter(zipcode);ob.setPaymode(Tools.CodeT
31、oString(request.getParameter(paymode);java.util.Date day=new java.util.Date();SimpleDateFormat format=new SimpleDateFormat(yyyyMMdd);String orderdate=format.format(day);String now=(String)(day.toLocaleString();String sql=select count (*) from ordertable where orderdate=+orderdate+;DB db=new DB();Res
32、ultSet rs=null;int i=0;tryrs=db.executeQuery(sql);if(rs.next()i=Integer.parseInt(rs.getString(1);i+;catch(Exception e)e.printStackTrace(); finallydb.close(); String str_i=String.valueOf(i); while(str_i.length()3) str_i=0+str_i; String orderid=now+str_i; orderid=orderid.replace(-,); orderid=orderid.r
33、eplace( ,); orderid=orderid.replace(:,); PreparedStatement pstmt=null; Connection conn=null; int mark1=0; int mark2=0; String sql1=insert into ordertable values(?,?,?,?,?,?,?,?,?); String sql2=insert into orderlist values(?,?,?); try conn=DriverManager.getConnection6.4后台管理模块的实现网上购物系统除了能够让用户实现前台的浏览和购
34、物等操作之外,还必须能够使管理人员能够对系统的各种信息进行维护,比如商品的增加、删除、修改,用户的管理等等。管理功能是网上购物系统相当重要的一部分功能。管理员可以通过主页面的“后台管理”进入系统后台进行维护,点击之后,首要的就是进行身份验证,输入正确的帐号,密码之后,方能进入。由于涉及到交易,出于安全性考虑,管理员帐号应尽量少分配,密码也要尽量复杂,经常更换。这个过程中,点击登录后,将用户名和密码框中的值传递到mlogin.jsp中进行验证,如果用户名和密码同数据库中的一致,那么登录成功,转到c_manage.jsp页面中。具体实现关键代码如下:tryString cid=request.ge
35、tParameter(cid);CartManager cartManager=new CartManager();HttpSession session=request.getSession(true);ArrayList cart=(ArrayList)session.getAttribute(cart);cartManager.setCart(cart);Goods g=new Goods();g=g.findGoodsById(cid);cartManager.addToCart(g,1);session.setAttribute(cart,cartManager.getCart();
36、catch(Exception e)response.sendRedirect(cart.jsp);若管理员需要对用户进行管理,则会跳转到showuser.Jsp来显示所有用户,若想对商品进行管理,可以添加商品到c_add.jsp,如图5-7:由AddGoodsServlet对这一界面进行处理信息,并响应信息:public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException PreparedStatement pstmt=null;Con
37、nection conn=null;String ext=,info=,forword=, url=upload/;SmartUpload su=new SmartUpload(); /创建新的上传对象long maxsize=200*1024; /设置每个上传文件最大为200KBString forward;try su.initialize(this.getServletConfig(), request, response); /初始化 su.setMaxFileSize(maxsize); /限制上传文件的大小 su.setAllowedFilesList(jpg,JPG,gif,GIF); /设定允许上传的格式 su.upload(); /上传文件 Request req=su.getRequest(); /创建Request对象 String cid=req.getParameter(cid); String cname=req.getParameter(cname); String number=req.getParameter(cnumber); String price=re
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024德州学院辅导员招聘笔试真题
- 2024成都艺术职业大学辅导员招聘笔试真题
- 法律科技系统运维员考试试卷及答案
- 潜水装备检测师笔试试题及答案
- 旅游文创设计师笔试试题及答案
- 锻造车间设备点检员考试试卷及答案
- 2024年杭州拱墅区武林街道招聘真题
- 指向培养学生高阶思维的小学英语学习单设计的案例研究
- 大单元教学:为语文教学添色增香
- 培养学生课堂感受力的实践与探索
- 山东畜牧兽医单招考试题及答案
- 商户安全生产培训课件
- 2025年西安高新区管委会招聘考试试卷
- 四川省广元市2024-2025学年第二学期八年级期末考试数学试卷(无答案)
- 2024-2025学年成都市青羊区七年级下英语期末考试题(含答案)
- 死亡病例讨论制度落实与质控优化
- 2018-2024年中国西瓜行业市场趋势分析及投资潜力研究报告
- DB32∕T 5048-2025 全域土地综合整治项目验收规范
- 2025届河北中考道德与法治真题试卷【含答案】
- 《产科危急重症早期识别中国专家共识(2024年版)》解读课件
- 中医外科一般护理常规
评论
0/150
提交评论