毕业设计论文JSP网上服装店系统的设计与开发.doc

上传人:sccc 文档编号:4858681 上传时间:2023-05-20 格式:DOC 页数:31 大小:660.03KB
返回 下载 相关 举报
毕业设计论文JSP网上服装店系统的设计与开发.doc_第1页
第1页 / 共31页
毕业设计论文JSP网上服装店系统的设计与开发.doc_第2页
第2页 / 共31页
毕业设计论文JSP网上服装店系统的设计与开发.doc_第3页
第3页 / 共31页
毕业设计论文JSP网上服装店系统的设计与开发.doc_第4页
第4页 / 共31页
毕业设计论文JSP网上服装店系统的设计与开发.doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《毕业设计论文JSP网上服装店系统的设计与开发.doc》由会员分享,可在线阅读,更多相关《毕业设计论文JSP网上服装店系统的设计与开发.doc(31页珍藏版)》请在三一办公上搜索。

1、网上服装店系统的设计与开发计算机科学与技术专业 摘要根据网上服装店系统的要求,运用Internet和JSP开发技术,采用B/S模式,建立一个基于Web的网上服装店系统。本系统的开发包括前台和后台两个大的模块。前台主要包括用户的注册、登录、注销、对商品的浏览、搜索、查看、添加商品到购物车、购买商品、形成订单、个人资料的修改和管理,用户可以随时查看购物车中的商品以便更新,用户购买服装后,还可对商品进行留言评价。后台主要是管理员对用户信息、管理员信息、服装信息、订单信息等的管理。管理员通过对订单的管理,还查看一天的销售情况,以及安排给用户发货。关键词网上书店系统;MVC模式;JSP;Struts2D

2、esign and Development of Online Clothing Store SystemComputer Science and Technology MajorAbstract: In view of the work service request, utilizes Internet and the JSP development technology, uses B/S the pattern, establishes online clothing store system based on the Web . The development of the syst

3、em consists of the module of foreground and background. The founctions of the foreground module mainly have relationship with the users, such as registration, loging, aborting, scanning clothes and searching clothes. Besides, users can put the clothes which they are satisfied with into their shoppin

4、g cart. As to the shopping cart, users can do kinds of operations, such as updating the numbers of the clothes, deleting clothes. Moreover, they can look up their shopping history. When the users regist, they can modify their basic information, for example, they can modify their login password. The

5、background mainly related to the managers of the system. The managers can operate on all objects, such as users information, managers information, clothings information etc. Accoding the order information, they can plan when to delivery the clothes. Key words: online clothing store system, MVC mode;

6、 JSP; Struts2目录1 引言12 需求分析22.1 开发技术的选择22.2 系统主要开发架构和开发模式22.3 基于MVC的应用开发模型22.4 系统功能42.5 前台需求分析设计42.5.1 注册功能流程52.5.2 用户登录流程图52.5.3 购物车流程图62.6后台需求分析设计72.6.1 管理员登录流程图72.6.2 管理员对服装管理的流程图73 系统设计83.1 数据库分析83.2 数据库概念设计以及创建表结构84 系统实现104.1 前台用户模块实现104.2 后台管理员模块实现214.3 系统运行环境的搭建274.4 Tomcat的环境搭建27结论及尚存在的问题27参考

7、文献28致谢29网上服装店系统的设计与开发1 引言近年来,随着Internet的迅速崛起,互联网已日益成为收集提供信息的最佳渠道并逐步进入传统的流通领域。于是电子商务开始流行起来,越来越多的商家在网上建起在线商店,向消费者展示出一种新颖的购物理念。网上购物系统作为B2B,B2C(Business to Customer,即企业对消费者),C2C(Customer to Customer,即消费者对消费者)电子商务的前端商务平台,在其商务活动全过程中起着举足轻重的作用。本文主要考虑的是如何建设B2C的网上购物系统。网上购物是一种具有交互功能的商业信息系统。它向用户提供静态和动态两类信息资源。所谓

8、静态信息是指那些比经常变动或更新的资源,如公司简介、管理规范和公司制度等等;动态信息是指随时变化的信息,如商品报价,会议安排和培训信息等。网上购物系统具有强大的交互功能,可使商家和用户方便的传递信息,完成电子贸易或EDI交易。这种全新的交易方式实现了公司间文档与资金的无纸化交换。目前在国内PHP与ASP应用最为广泛。而JSP由于是一种较新的技术,国内采用的较少。但在国外,JSP已经是比较流行的一种技术,尤其是电子商务类的网站,多采用JSP。采用PHP的网站如新浪网(sina)、中国人(Chinaren)等,但由于PHP本身存在的一些缺点,使得它不适合应用于大型电子商务站点,而更适合一些小型的商

9、业站点。首先,PHP缺乏规模支持。其次,缺乏多层结构支持。对于大负荷站点,解决方法只有一个:分布计算。数据库、应用逻辑层、表示逻辑层彼此分开,而且同层也可以根据流量分开,组成二维阵列。而PHP则缺乏这种支持。还有上面提到过的一点,PHP提供的数据库接口支持不统一,这就使得它不适合运用在电子商务中。ASP和JSP则没有以上缺陷,ASP可以通过Microsoft Windowsd的COM/DCOM获得ActiveX规模支持,通过DCOM和Transcation Server获得结构支持;JSP可以通过SUN Java的Java Class和EJB获得规模支持,通过EJB/CORBA以及众多厂商的A

10、pplication Server获得结构支持。三者中,JSP应该是未来发展的趋势。世界上一些大的电子商务解决方案提供商都采用JSP/Servlet。比较出名的如IBM的Ebusiness,它的核心是采用JSP/Servlet的WebSphere;西方另外一个非常著名的电子商务软件提供商,Intershop。它原来的产品Intershop1 2, 3, 4占据了主要的电子商务软件份额。它们都是通过CGI来提供支持 的。但去年10月后它推出了Enfinity,一个采用JSP/Servlet的电子商务Application Server,而且声言不再开发传统软件。总的来说,ASP,PHP,JSP三

11、者都有相当数量的支持者,而这三者也各有所长,在开发过程中,我们应该根据实际的需要来使用最合适的技术,本系统则采用较新的jsp技术,一方面jsp的安全性和跨平台性比较好,另一方面,我也希望能从开发该系统的过程中,深入学习一下这门编程语言。2 需求分析2.1 开发技术的选择合理的选择开发技术,对于网站开发的完成情况有着非常重要的影响。要开发一个网站,首先要选择一个动态网页开发技术。当前比较流行的动态网页开发技术有JSP、ASP、PHP。它们的特性比较如表2-1所示:表2-1 asp/jsp/php比较表技术名称ASPJSPPHP对数据库的支持好好好开发难易度容易容易较难使用平台Windows9X/

12、NTWindows/UNIXUNIX安全性不好好不好对组件的支持支持支持不支持执行方式解释执行编译之后执行解释执行跨平台不好好好这三种都是在传统的HTML代码中,利用HTML标签的扩展,构成页面。不难看出,JSP的综合实力是最强的,尤其是在安全性和跨平台性两个方面,比其他的两种技术都要好,因此,最后我们选择基于Java的JSP技术作为动态网页的开发技术。2.2 系统主要开发架构和开发模式系统的建设关键在于其所使用的架构,而网上购物这种基于web的系统,传统的c/s架构已经不能满足大量用户的访问和操作,b/s基于浏览器的架构则是目前网络系统应用的主流,它将大量的数据处理工作交给服务器端来处理,客

13、户端只用通过普通的IE浏览器即可访问系统,方便快捷而且利于系统的更新和维护,java语言在该方面更是得天独厚,j2ee规范的出现则使系统的开发更加规范,层次更加清楚,更利于对复杂事务的处理,而且在安全性方面也做的更好。基于mvc的开发流程则使开发过程更加清晰明了,利于做一些复杂的逻辑实现,从而节省了开发周期和开发成本。2.3 基于MVC的应用开发模型在传统的基于Web的应用系统中,例如ASP,CGI等,通常开发者将业务逻辑,数据逻辑、展示逻辑等混杂在一起,在同一个界面面里既进行后台数据库的访问和操作,同时还包含业务流程和页面表示。这样编写出来的程序,既不利于程序员对业务代码的调试,同时也不利于

14、编辑人员进行交互页面的设计。同时系统也不具备可扩展性,当我们要在现有业务上进行扩展的时候,通常无法借助于现有的资源和应用,而只能够重新编写,大大增加了投资,延长了系统上线的时间,失去了竞争市场的优势。在本网上购物系统中,将采用通行的MVC模式来构建应用。这种结构解决了前面所述的所有问题,在我们的应用集成网络中,通过企业级高端J2EE应用服务器实现MVC开发模型。MVC的逻辑图如图2-2所示:应用服务器EJB容器业务组件数据库Web服务器浏览器JspServerlet控制器图2-1应用服务器之上采用MVC开发的逻辑示意图Control服务控制View显示方式Model业务逻辑模型输入请求输出Ht

15、ml其他图2-2 MVC业务流程示意图通过这种方案,我们可以迅速地实现整个业务,其优势和特点如下:Model(模型)层:由EJB组件来实现,EJB将具体的业务封装在组件内部,具备安全、高性能、可重用等优秀的特征。View(视图)层:由JSP、HTML组成。这一层次的特点是能够真实地展示和客户交互的界面,具备可描绘的功能。同时能够嵌套动态数据,可以进行动态页面的展示。同时可以方便地进行客户端的个性化定制。根据每个客户的需求来展示不同风格的界面。Controller(控制器)层:是非常重要的一层,这一层是连接View和Model的纽带,同时也是将这两层进行最大限度分离的工具。通常由Servlet来

16、实现,Servlet和JSP虽然同样都属于页面展示工具,但分属两层。主要在于JSP以脚本语言的形式存在, 它的主要优势是进行动态数据的Web展示,而Servlet是一个完整的Java程序,进行业务的调用和流程的处理是它的长处。通过这种模型的建立,我们的应用系统具备了非常好的性能和可扩展性。将业务组件和展示页面进行分离,并通过Controller来描述调用关系,一方面可以提高效率,另一方面也可以增加系统扩充的能力,使我们的系统可以进行最快速度的业务扩展,以满足不同用户、不同阶段、各种各样的业务需求。2.4 系统功能前台功能:用户注册、登录、注销; 浏览、搜索商品;查看商品详细信息、向购物车中添加

17、商品、查看购物车、购买服装、生成订单; 修改个人资料、查看个人购买记录;如下图2-3所示:浏览服装选择服装订购服装去购物车确定购买提交订单未注册用户已登录注册用户未登录注册用户注册登录图2-3 前台购物流程图后台功能:管理员管理-能够完成管理员对网站的商品信息管理(商品添加、商品审查),以及常规设置(广告添加,友情链接)的功能。搜索功能-能过电子商品的名称进行搜索。查询功能-能够通过查看购物车对所选商品进行确定、挑选。如图2-4所示: 图2-4 后台管理员流程图2.5 前台需求分析设计按前台功能初步分为以下三大模块,详细的需求分析如下几节。2.5.1 注册功能流程用户注册时只需注册用户名、密码

18、、email、要求输入验证码,增强了安全性。用户注册后还可以对自己的信息进行修改,如用户妮称。用户注册功能的流程图如图2-5所示。注册入口必选项为空用户名有效?2次输入密码是否一致?密码长度符合要求?Emai地址有效效?其他信息有效注册成功图2-5 用户注册流程图2.5.2 用户登录流程图用户登录需要输入用户名、密码及验证码,用户登录后在系统所有页面的右上角显示欢迎信息。在用户未登录时,显示“请登录”;登录后,显示(xxx,欢迎您 退出登录)登录流程如图2-6所示。登录入口取得用户名和密码将username存入session中核对验证码是否正确核对用户名和密码是否正确登录成功是是否否图2-6

19、用户登录流程图2.5.3 购物车流程图用户浏览服装后如果感觉满意,可以将其添加至购物车,可以向购物车中添加很多商品,然后继续浏览服装,然后就可以批量地对购物车中的商品下订单。用户还可以对其购物历史进行查看,可以查看已下订单和未下订单的商品信息,购物车流程如图2-7所示。购物车查看商品满意吗下订单调整商品是d图2-7 购物车流程图2.6后台需求分析设计2.6.1 管理员登录流程图管理员登录后,可以对普通用户、服装信息、订单信息进行管理。管理员登录流程如图2-8所示:管理员登录入口取得用户名和密码将username存入session中核对验证码是否正确核对用户名和密码是否正确登录成功是是否否图2-

20、8管理员登陆流程图2.6.2 管理员对服装管理的流程图服装管理查询商品修改删除满意否返回添加服装是否管理员登录后可以对服装店的服装进行增、删、改、查,服装管理的流程如图2-9所示图2-9商品管理流程图3 系统设计3.1 数据库分析针对一般网上服装店系统的需求通过对网上购物过程的内容和数据流程分析,设计如下面所示的数据项和数据结构。1.服装信息:包括的数据项有:服装编号、品牌名称、品牌型号、颜色、尺码、类型、上市时间、进价、售价、厂家信息等。2.用户信息:包括的数据项有:用户编号、用户名、email、用户密码、妮称、性别、角色、注册时间等。3.服装类型信息:包括的数据项有:类型编号、类型名称、父

21、类型编号。4.收货人信息:包括的数据项有:收货人编号、用户编号、收货人名称、住址、邮编、电话等。5.栏目信息:包括的数据项有:栏目编号、栏目名称。6.订单信息:包括的数据项有:订单编号、订单状态、用户编号。7.购物车信息:包括的数据项有:购物车编号、用户编号、收货人编号、服装编号、服装品牌型号、订单号等。3.2 数据库概念设计以及创建表结构根据上节的数据项和数据结构,可以设计出能够满足用户需求的各种实体以及它们之间的关系,为后面的逻辑结构设计打下基础。这些实体包含各种具体信息,通过相互之间的作用形成数据的流动。根据上面的设计规划出的实体有:部门信息实体、文档信息实体、员工信息实体、论坛信息实体

22、、短信信息实体、新闻信息实体和登录信息实体。根据实体信息创建如下表结构和存储过程。1. 服装信息clothing,如图3-1所示:图3-1服装信息2. 用户信息user,如图3-2所示。图3-2用户信息3. 服装类型信息clothingtype,如图3-3所示。图3-3服装类型信息4. 收货人信息consignee,如图3-4所示。图3-4收货人信息5. 栏目信息itemname,如图3-5所示。图3-5栏目信息6. 订单信息orderform,如如图3-6所示。图3-6订单信息7. 购物车信息shoppingcart,如图3-7所示。图3.7购物车信息4 系统实现4.1 前台用户模块实现网店

23、注册用户登录之用:如4-1所示:图4-1用户登录界面如果登录身份验证成功,则进入主界面如图4-2所示:图4-2 首页面如果用户名或密码错误则会提示用户名或者密码错误,需要重新输入。主要代码实现如下:public String execute()/获取参数tryuserName = new String(userName.getBytes(ISO8859-1),gb2312);catch(Exception e)System.out.println(e.toString();/创建一个欢迎的字符串String welcomeStr = ;/获取Session对象中的验证码String sessi

24、onCode = String.valueOf(ActionContext.getContext().getSession().get(code);if(validNumber.equals(sessionCode)/验证用户名和密码User user = new User();UserDaoImp userImp = new UserDaoImp();user = userImp.getByNameAndPass(userName, userPassword);if(user.getUserId()!=0)ActionContext.getContext().getSession().put

25、(user, user);welcomeStr = + user.getUserName() + ,欢迎您!  退出登录;ActionContext.getContext().getSession().put(welcomeStr, welcomeStr);return success;else/用户名或密码输入错误ActionContext.getContext().getSession().put(welcomeStr, welcomeStr);return error;else/验证码输入错误ActionContext.getContext().getSession(

26、).put(welcomeStr, welcomeStr);return error;用户查看服装详细信息页面如图4-3所示:图4-3 服装详细信息页面用户将商品加入购物车时,系统要判断用户是否已登录,如果登录,则加入该用户的购物车中;如果未登录,则转入登录页面(如图4-4所示)。用户购物车页面如图4-5所示:图4-4 转入登录页面图4-5 用户购物车页面主要代码如下:public String execute()/判断用户是否登录if(ActionContext.getContext().getSession().get(user) = null)tips = 您还没有登录,请先登录.;re

27、turn login;elseUser user = (User)ActionContext.getContext().getSession().get(user);/查询该服装的相关信息Clothing book = new Clothing();ClothingDaoImp bookImp = new ClothingDaoImp();book = bookImp.getById(clothingId);/向购物车中添加记录ShoppingCar item = new ShoppingCar();ShoppingCarDaoImp itemImp = new ShoppingCarDaoI

28、mp();item.setClothingId(clothingId);item.setClothingNumber(1);item.setUserId(user.getUserId();item.setIsBuy(-1);item.setOrderId(0);int row = itemImp.addCarBookItem(item);if(row != 0)/查询该用户购物车中的所有商品carBookItemListY = itemImp.getByUserIdStatus(user.getUserId(),1);/已下订单carBookItemListN = itemImp.getByU

29、serIdStatus(user.getUserId(),-1);/未下订单carBookListY = new ArrayList();/用于传递参数的(已下订单)carBookListN = new ArrayList();/用于传递参数的(未下订单)for(int i = 0;icarBookItemListY.size();i+)int id_book = carBookItemListY.get(i).getClothingId();Clothing bookItem = new Clothing();ClothingDaoImp carBookImp = new ClothingD

30、aoImp();bookItem = carBookImp.getById(id_book);carBookListY.add(bookItem);for(int j = 0;jcarBookItemListN.size();j+)int id_book = carBookItemListN.get(j).getClothingId();Clothing bookItem2 = new Clothing();ClothingDaoImp carBookImp2 = new ClothingDaoImp();bookItem2 = carBookImp2.getById(id_book);car

31、BookListN.add(bookItem2);return success;else/跳转到出错页面System.out.println(向购物车中添加商品时出错!);return null;在购物车中,用户可以对其中的商品进行修改(修改个数、删除商品等操作)。还可以先选择购物车中想购买的商品,然后,点击“购买所有选中的商品”则转到收货人信息编辑页面,该页面用javascript对收货人信息进行验证,用到了正则表达式(对电话号码、邮箱地址等格式进行校验)。填写收货人信息页面如图4-6所示:图4-6 填写收货人信息页面对收货人信息验证的javascript代码如下所示: !- /验证表单 f

32、unction validate(obj) var objName = obj.name; var objValue = obj.value; /收货人姓名 if(objName = consigneeName) var objSpan = document.getElementById(span_consigneeName); if(objValue = ) objSpan.style.color = red; objSpan.innerText = 收货人姓名不能为空; else objSpan.style.color=gray; objSpan.innerText = ; /街道地址 i

33、f(objName = consigneeAddress) var objSpan = document.getElementById(span_consigneeAddress); if(objValue = ) objSpan.style.color = red; objSpan.innerText = 收货人街道不能为空n(也可以是镇、乡、村、组); else objSpan.style.color=gray; objSpan.innerText = ; /邮政编码 if(objName = postCode) var objSpan = document.getElementById(

34、span_postCode); var regExp = /d6$/; if(objValue = ) objSpan.style.color = red; objSpan.innerText = 邮政编码不能为空; else if(regExp.test(objValue) objSpan.style.color=gray; objSpan.innerText = ; else objSpan.style.color = red; objSpan.innerText = 邮政编码格式不正确; /手机 if(objName = mobilePhone) var objSpan = docume

35、nt.getElementById(span_mobilePhone); var regExp = /d11$/; if(objValue = & document.addConsigneeForm.phone.value = ) objSpan.style.color = red; objSpan.innerText = 收货人手机和固定电话不能都为空; else if(objValue != ) if(regExp.test(objValue) objSpan.style.color=gray; objSpan.innerText = ; else objSpan.style.color

36、= red; objSpan.innerText = 手机号码格式不正确; else objSpan.style.color=gray; objSpan.innerText = ; /固定电话 if(objName = phone) var objSpan = document.getElementById(span_phone); var regExp = /d11,13$/; if(objValue = & document.addConsigneeForm.mobilePhone.value = ) objSpan.style.color = red; objSpan.innerText

37、 = 收货人手机和固定电话不能都为空; else if(objValue != ) if(regExp.test(objValue) objSpan.style.color=gray; objSpan.innerText = ; else objSpan.style.color = red; objSpan.innerText = 电话号码格式不正确; else objSpan.style.color=gray; objSpan.innerText = ; 收货人信息如果格式填写正确,则会生成订单,写入数据库,并显示出来,订单显示页面如图4-7所示:图4-7 用户购物车页面该页面包括用户信息、

38、收货人信息、本次购买的商品信息,代码如下:public String execute()/获取要购买的商品序号List itemNumbers = (List)ActionContext.getContext().getSession().get(itemNumbers);/添加收货人信息到数据库tryconsigneeName = new String(consigneeName.getBytes(ISO8859-1),gb2312);/ 避免乱码consigneeProvince = new String(consigneeProvince.getBytes(ISO8859-1),gb23

39、12);consigneeCity = new String(consigneeCity.getBytes(ISO8859-1),gb2312);consigneeAddress = new String(consigneeAddress.getBytes(ISO8859-1),gb2312);catch(Exception e)System.out.println(e.toString();Consignee consignee = new Consignee();/创建收货人对象ConsigneeDaoImp consigneeImp = new ConsigneeDaoImp();/创建

40、收货人操作对象consignee.setAddress(consigneeAddress);consignee.setArea(consigneeProvince+consigneeCity);consignee.setConsigneeName(consigneeName);consignee.setMobilePhone(mobilePhone);consignee.setPhone(phone);consignee.setPostcode(postCode);User user = (User)ActionContext.getContext().getSession().get(user);/创建用户对象以便获得用户IDconsignee.setUserId(user.getUserId();int row = consigneeImp.addConsignee(consignee);/添加收货人,并获取对数据库的影响的行数if(row = 0)/跳转至错误页面System.out.println(出错:向数据库中添加收货人信息时出错!);return null;/修改购物车记录(是否已下单以及收货人ID)Sh

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号