《基于Java技术的网上交易系统的开发毕业论文.doc》由会员分享,可在线阅读,更多相关《基于Java技术的网上交易系统的开发毕业论文.doc(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、河南师范大学本科毕业设计基于Java技术的网上交易系统的开发毕业论文(设计)原创性声明本人所呈交的毕业论文(设计)是我在导师的指导下进行的研究工作及取得的研究成果。据我所知,除文中已经注明引用的内容外,本论文(设计)不包含其他个人已经发表或撰写过的研究成果。对本论文(设计)的研究做出重要贡献的个人和集体,均已在文中作了明确说明并表示谢意。 作者签名: 日期: 毕业论文(设计)授权使用说明本论文(设计)作者完全了解*学院有关保留、使用毕业论文(设计)的规定,学校有权保留论文(设计)并向相关部门送交论文(设计)的电子版和纸质版。有权将论文(设计)用于非赢利目的的少量复制并允许论文(设计)进入学校图
2、书馆被查阅。学校可以公布论文(设计)的全部或部分内容。保密的论文(设计)在解密后适用本规定。 作者签名: 指导教师签名: 日期: 日期: 注 意 事 项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词 5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。4.
3、文字、图表要求:1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画3)毕业论文须用A4单面打印,论文50页以上的双面打印4)图表应绘制于无格子的页面上5)软件工程类课题应有程序清单,并提供电子文档5.装订顺序1)设计(论文)2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订3)其它基于Java技术的网上交易系统的开发摘要 随着信息高速公路的建立,Internt的普及,网络技术的迅猛发展,
4、人类社会已经进入了一个信息化社会。电子商务利用简单、快捷、低成本的电子通讯方式,买卖双方通过网络进行各种商贸活动的一种商业交易模式。随着互联网的发展,以及人们消费观念和生活方式的改变,这种新型的商业模式逐渐融入了人们的生活中。通过企业的门户网站,人们可以足不出户的寻找自己所需要的物品。通过对不同虚拟商城的访问,“顾客”可以找出性价比最高的商品,自己有极大的选择空间;通过下订单,你可以很快得到自己想要的物品,这给顾客节省很多时间和精力;对于厂家来说,可以极大地降低库存风险,可根据客户需要,按需采购和生产,大大地提高了效益。本毕业设计的内容是设计并且实现一个基于web技术的在线交易系统。系统主要以
5、j2EE作为开发基础,使用了struts+spring+hibernate等多种协议或技术,用eclipse作为开发工具,以Macromedia公司的Dreamweaver作为界面美化工具。基本实现了网上交易系统应有的主要功能模块,包括:管理员的登录,管理和维护;用户注册、登录、注销,个人信息的查询、修改;商品管理,购物车管理,订单管理。该系统界面简单、操作方便,容易维护。关键词:电子商务 j2EE struts + spring +hibernateDevelopment of an Online Trading System Based on Java TechnologyAbstract
6、 With the establishment of high way of information,the popularization of Internet and the rapid development of network technology,human society has entered society of information. E-commerce is a new business transaction, through which both buyers and sellers can use a simple, fast and low-cost mean
7、s of electronic and communication. With the development of the Internet, and peoples consumption idea and the way of life changing, this new business model has gradually integrated into peoples lives. Through the portal site of enterprise, people can look up the goods which they required without goi
8、ng out; through the different virtual mall visit, people can find the most cost-effective products, and they have much self-choice; through orders, people can find the things which they need, and quickly get the products which they ordered. This new business modle can save a lot of time and energy f
9、or custormers, and greatly reduce inventory risk of manufaturers. The manufactures can procure and produce according to customer needs, this was called on-demand procurement and production, which greatly improved the efficiency.The subject of this graduation project is designing a web-based online t
10、rading system. This system mainly uses j2EE as the basis of development, and also use the struts + spring + hibernate technologies and other orders. This project use eclipse as the development tools, and Macromedias Dreamweaver as the interfaces landscaping tools. The basic functions of an online tr
11、ading system have been implemented, which include administrator login, management and maintenance; user registration, login, write-offs personal information enquiries and amendments; commodity management, cart management, order management. Interface of the system is simple, it can be used and mainta
12、ined easily. Keyword: E-commerce j2EE struts + spring +hibernate 前 言 随着当今世界进入信息时代,Internet的飞速发展和在全球的普及给人类生活带来革命性的改变。Internet将传统意义上的物理空间转变成电子空间,把人们带入了一个网络社会中。网络时代的到来,带给人们的不只是快捷、方便,它带来的是划时代的进步。在网络大家族中,电子商务则是一个热点,它的发展速度之快远远超过我们的想象,普及速度之快令人难以置信。我们完全有理由相信,全球性的电子商务热潮必将一浪高于一浪1。电子商务一个最基本体现就是电子购物网站,从一定程度上讲它就
13、是网上超市,也就是一种网上交易。“网”字意味着它具有信息时代的快捷方便等特征。事实上电子商务的出现,给消费者的地位,消费观念带来了重要的变化。网上交易系统正是应这种变化而悄然崛起,并以惊人的速度发展着。通过网上交易系统,人们可以足不出户的寻找自己所需的物品,通过对不同虚拟商城的访问,“顾客”可以找出性价比最高的商品,自己有极大地选择空间,通过下订单,你可以很快得到自己想要的物品,这给顾客节省很多时间和精力,对于厂家来说,可以极大的降低库存风险,根据客户需要,按需生产和采购,大大的提高了效益。1.系统需求分析和总体设计1.1 系统功能需求在本系统中主要阐述用户管理、购物车管理、订单管理、产品展示
14、四个模块。(1)购物车管理:实现添加商品、取消一个商品、数量修改、清空购物车功能。(2)订单管理:实现提交订单、删除订单、查询订单功能。(3)产品展示:实现产品列表、产品明细功能。(4)用户管理:实现用户注册、用户信息修改、用户删除、用户查询功能。1.2 系统角色及其功能分析 系统的3个角色: (1)注册用户 (2)管理员 (3)普通的网站浏览者(即游客) 系统角色的功能 (1)普通用户 网站的普通浏览者(即游客)只能浏览商品。 (2)注册用户 普通浏览者只要注册为网站用户后,获得自己的帐号,设置自己的密码就具有以下功能: 登录,登出,向购物车中添加商品,生成并提交订单。添加或修改个人明细资料
15、。 (3)管理员拥有注册用户的所有功能,还可以对用户进行管理,包括添加新用户、修改用户密码、删除用户。1.3 总体设计思想概述 本系统是基于B/S架构下的多层结构应用系统。B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)15。 在软件体
16、系架构设计中,分层式结构是最常见,也是最重要的一种结构。推荐的分层式结构一般分为三层,从下至上分别为:数据访问(持久)层、业务逻辑层(或称为领域层)、表示层16,如图3-2:总的来说,采用分层结构的设计思想,可以让每个层由一组相关的类或组件构成,共同完成特定的功能。层与层之间存在自上而下的依赖关系,上层组件会依赖下层组件的API,而下层组件则不依赖于上层组件。例如:表述层依赖于业务逻辑层,而业务逻辑层依赖于数据库层。并且每个层对对上层公开API,但具体的实现细节对外透明。当某一层发生变化,只要API不变,不会影响其他层的实现。在本系统中,使用开源的mysql数据库,持久层用到spring所集成
17、的Hibernate技术,业务逻辑层用普通javabean实现,表述层运用基于struts的MVC设计模式(struts用来做C层,spring实现V层与C层的解耦以及C层与M层的解耦)。1.4 数据库设计 数据表的设计下面列出了设计过程中所用到的数据库表及其结构:1.orders表用来保存客户的订单信息,如表:列名类型长度描述orderidint11订单IDtotalpriceNUMBER16总价钱orderstateNUMBER1订单状态payinfoDATE付款方式CreatetimeDATE创建日期useridVARCHAR220用户IDUser_item_idNUMBER8用户明细I
18、D2.orderline表用来保存客户订单中的订单项信息,如表:列名类型长度描述User_item_idNUMBER16订单条目IDProductidNUMBER16商品对象IDOrderidVARCHAR220订单对象IDqualityNUMBER8数量numNUMBER8商品数量3.orderstatus表用来保存订单状态,如表:列名类型长度描述statusidint11状态IDnamevarchar30状态名descriptionvarchar100描述4. users表用来保存用户个人信息,如表:列名类型长度描述User_idint11用户IDpasswordvarchar15用户密码
19、5. contactinfo表用来保存用户个人明细,如表:列名类型长度描述Contact_idint11User_idvarchar30用户IDStreet1varchar64住址1Street2varchar64住址2cityvarchar32城市provincevarchar32省份Countyvarchar32国家zipvarchar20邮编officephonevarchar50办公室电话cellphonevarchar20手机emailvarchar20电邮homephonevarchar12家庭电话6. product表用来保存商品,如表:列名类型长度描述productidint1
20、1产品modlevarchar30产品型号namevarchar15品牌名companyvarchar20出品公司weightdouble50产品重量pricedouble20价格statevarchar20产品状态createtimedate出厂日期CategoryidInt10产品类型descriptionvarchar1000产品描述7. category表用来保存商品类型,如表:列名类型长度描述categoryidint11类型IDnamevarchar30类型名descriptionvarchar100描述8. payway表用来保存权限信息,如表:列名类型长度描述paywayidi
21、nt11IDpayStylevarchar30名1.5 系统的类设计 DAO类,DAO 进行数据库操作。 POJO类,这些实体类将通过hibernate映射到数据库中 过滤器类,编码过滤器类,通过他可保证页面不出现乱码问题。 登陆安全过滤器类,通过它来达到控制访问权限的功能。 监听器类设计,“CartSessionListener”启动时把购物车信息初始化到内存中,提高系统性能。“ProductContextListener”启动时把商品信息初始化到内存中,提高系统性能。 1.6系统的用例总体用例分析总体用例:用户管理、购物车管理、订单管理、产品展示四个模块构成了本网上交易系统。User是指系
22、统用户,包括注册用户和匿名用户两种,匿名用户只可以浏览商品,匿名用户通过用户管理模块注册后就可以使用购物车和下订单。用户管理用例分析用户管理模块主要包括:用户登陆、用户注册、用户信息修改、用户删除、用户信息查询五个功能组成。购物车管理用例分析购物车管理模块主要包括:添加商品、取消一个商品、数量修改、清空购物车四个功能组成。订单管理用例分析订单管理模块主要包括:订单提交、删除订单、订单明细三个功能组成。产品展示用例分析产品展示用例,商品展示模块主要包括:产品列表、产品明细两个功能组成。2.系统的详细设计2.1数据库与POJO映射的实现Hibernate可以通过一个XML的mapping文件把一个
23、POJO(Plain old java object)和数据库中的表对应起来,在这个XML文件(一般命名为*.hbm.xml)中,我们可以配置好Object和数据库中表的映射关系,然后把这个mapping加入到hibernate.cfg.xml中,这样Hibernate在启动时就可以加载这些mapping,并可以根据配置文件对对象实现自动的加载,并且可以对这些Object实习自动的维护。由于Spring提供了对Hibernate的集成,所以我们可以不配置hibernate.cfg.xml文件,而通过在applicationContext.xml文件中进行相关配置来达到同样的目的。1、user.
24、hbm.xml文件配置了user类的相关信息。2、mappingResources属性中囊括了所有我们需要的mapping文件。2.2 主要模块的设计说明用户管理模块用户管理模块主要包括用户注册,登录,退出3个部分.(1)用户注册当用户第一次登录时首先要注册,成为会员后,才可以购买物品.用户可以通过单击首页的注册按键来打开注册页面进行会员注册操作.如果用户的注册信息不符合要求,系统会提示用户校验用户注册信息是是否正确的javaScript部分代码如下17:if(form1.username.value=) alert(“请输入用户名); form1.username.focus(); retu
25、rn false; if(form1.pasa.value=) alert(请输入确认密码); form1.pasa.focus(); return false; if(form1.password.value!=form1.pasa.value) alert(你输入的两次密码不一致); return false; if(form1.email.value=) alert(请输入你的Email址); form1.email.focus(); return false; -当用户确认所提按信息无误后,单击“注册“按钮,系统会执行以下流程: request 请求将页面上的信息传递到控制层的stru
26、ts中的Action类中,执行以下代码/* * 注册一个新用户 */public ActionForward register(ActionMapping mapping, ActionForm form,HttpServletRequest req, HttpServletResponse res) throws Exception ActionForward forward = null; RegisterActionForm registerForm = (RegisterActionForm) form; User user = registerForm.getUser(); Cont
27、actInfo contactInfo = registerForm.getContactInfo(); if (userBiz.getUserById(user.getUserid() != null) user.setContactinfo(contactInfo); req.setAttribute(user, user); forward = mapping.findForward(refresh); else try log.debug(begin save user info . . .); userBiz.userRegister(user, contactInfo); req.
28、setAttribute(TIP_KEY, 恭喜您!注册成功!); forward = mapping.findForward(success); catch (ECPortException be) forward = mapping.findForward(fail); be.printStackTrace(); log.error(save user info error. . ., be); return forward; 在UserService中调用dao中的addUser方法,代码如下:public void addUser(User user) throws StoreExce
29、ption . try session = HibernateSessionFactory.getSession(); tx = session.beginTransaction(); session.save(user); mit(); . 在注册成功后,会跳转到注册成功界面 (2)用户登录网站首页在用户第一次访问时会判断用户是否登录,未登录则显示用户登录窗口,提示用户登录或注册.对于已经登录的用户,在用户登录窗口将显示用户的相关信息.首页主要是根据保存用户名信息的Session参数来判断用户是否已经登录的,关键代码如下:在会员登录窗口中单击登录按纽后,系统将对用户名和密码进行验证,判断用户
30、是否是已注册用户,如果已注册,则更新用户在网站中的状态,如果没有注册,则拒绝用户的登录操作,登录数据验证的程序代码如下:/* * 用户登录方法 */ public ActionForward login(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception String username = request.getParamete(userid); String password = request.getParamet
31、er(password); if (userService.isLoginCorrect(username, password) User user = userService.getUserByName(username); /* * 只有在用户登录的时候才创建一个session,并且把用户的信息存放到session中; * 同时sessionListener也会把car同时也放到session中,这样能保证为每一个来 * 网站需要购物的用户分配一个session,一个购物车,并且也可以利用session来 跟踪用户. */ HttpSession session = (HttpServle
32、tRequest) request).getSession(true); session.setAttribute(user, user); return mapping.findForward(loginsuccess); else String message = 用户名或者密码错误!; request.setAttribute(message, message); return mapping.findForward(loginfailed); public User getUserByName(String name) throws StoreException Session ses
33、sion = null; try session = HibernateSessionFactory.getSession(); User user = (User) session.createQuery( from User u where u.username = + name + ) .uniqueResult(); return user; . (3)用户退出 当用户决定退出网站时,只要点击当前页面上的“退出”按钮,就会回到首页。实现代码如下:/* * 用户退出系统并做一些清理工作; */ public ActionForward logout(ActionMapping mappi
34、ng, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception HttpSession session = request.getSession(); session.removeAttribute(user); session.removeAttribute(cart); return mapping.findForward(logout); (4)管理员登录系统设置了一个默认的管理员admin,只要通过此用户名登录就可进入管理员界面,主要代码如下: public
35、ActionForward toModify(ActionMapping mapping, ActionForm form, HttpServletRequest req, HttpServletResponse res) throws Exception HttpSession cur_session = req.getSession(false); User user = (User) cur_session.getAttribute(USER); String userid = user.getUserid(); String reqUserid = req.getParameter(u
36、serid); if (reqUserid = null) List userList = userBiz.findAllUsers(); cur_session.setAttribute(userList, userList); if (userid.equals(admin) return mapping.findForward(adminInfo); else User p_user = userBiz.getUserById(userid); req.setAttribute(user, p_user); if (reqUserid != null) User p_user = use
37、rBiz.getUserById(reqUserid); req.setAttribute(user, p_user); return mapping.findForward(modify); 2.3购物车管理模块 购物车管理模块主要功能有如下几个部分:(1)创建购物车 当客户登录后,系统会给客户创建一个购物车放入服务器的Session会话中。使客户在整个会话中都拥有一个相同的购物车。这里主要运用了Http协议中的会话机制,将购物车保存在客户的会话中,这样在整个客户游览不同页面商品的过程中,都会使用同一个购物车对象。 具体执行步骤:(1)从客户的请求对象中获取Session会话对象(2)从会话
38、对象中获取购物车对象(3)判断是购物车对象是不是空的,如果是空就创建一个 /* * 在监听到session被创建之后,就立即向session中添加一个购物车Car; */ public void sessionCreated(HttpSessionEvent arg0) HttpSession session = arg0.getSession(); Cart cart=new Cart(); session.setAttribute(cart, cart); /* * 从session中获得购物车 */ Cart cart = (Cart) session.getAttribute(cart); if (cart = null) cart = new Cart(); (2)向购物车中添加一个商品项 客户在查看网页上的一