基于mvc设计模式的购物网站毕业论文

更新时间:2023-12-31 01:43:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

沈阳理工大学学士学位论文

摘要

网上购物作为电子商务中的重要组成部分,正以一个惊人的速度发展着。但是,正是由于网上购物形式的特定性,必然导致它在交易安全的保证上存在着一定的漏洞。因此,想要更好的解析网上购物以使其更加顺利地发展,必须对网上购物的安全性做一个透彻的剖析。

本文首先介绍了什么是网上购物,网上购物的特点,接着从商家和消费者各自的角度分析当前所面临的安全问题,然后从信息、信用、法律和支付等方面分析了网上购物的安全性现状。经过前面的讨论基本涵盖了网上购物可能会出现的安全问题,本文就针对这些问题从信息安全、网络安全、法律保障、客户注意事项等方面提出解决方案。然后,用一个具体实例讲解了网上购物和网上支付的流程,以及对以后的网上购物安全方面提出一些建议。

网上购物虽然已经取得了一定的成绩,但随着网上购物的发展,会出现更多与之有关的安全问题,要使网上购物真正成为一种主导的商务模式,还必须在安全技术、法律、社会各个方面来不断完善,那么这种方便的购物方式才能被人们真正接受和使用。

关键词: 网上商城;MVC

I

沈阳理工大学学士学位论文

Abstract

Online shopping in E-commerce as an important part of being a developing at an alarming rate. However, it is due to specific forms of online shopping, it will inevitably lead to the security guarantee that the transaction there are certain loopholes. Therefore, to better analytical online shopping to make it more smooth development, the need for the security of online shopping to do a thorough analysis.

This paper first introduces what is online shopping, online shopping features, and then from their own businesses, and consumers by the point of view of the current security problems faced, and then information, credit, legal and other aspects of paid online shopping security situation.The preceding discussion covers the basic shopping online may be security issues, this paper to address these problems from the information security, network security, legal protection, electronic payment security, the attention of customers and other matters put forward solutions. Then, with a concrete example on the online shopping and online payment process, and the future security of online shopping offer some suggestions.

Although online shopping security technology has achieved certain results, but with the development of online shopping, there will be more concerned with security issues, to make purchases on the Internet truly become a dominant business model, it is also necessary in security technology, law, all aspects of society to continuously improve, then this convenient shopping means people can be truly accept and use.

Keywords: Online shopping,MVC

II

沈阳理工大学学士学位论文

目录

摘要 ........................................................... I 引言 ........................................................... 1 1系统概述 ...................................................... 2

1.1网上商城介绍 ............................................ 2 1.2网上商城研究的意义 ...................................... 2 1.3我国电子商务的现状 ...................................... 2 1.4系统可行性分析 .......................................... 3 1.4.1经济可行性 ............................................ 3

1.4.2技术可行性 ........................................ 3 1.4.3操作可行性 ........................................ 4 1.5开发工具介绍 ............................................ 4

1.5.1JSP ............................................... 4 1.5.2servlet ........................................... 5 1.5.3javabean .......................................... 6 1.5.4mysql介绍 ......................................... 8

2需求分析 ...................................................... 9

2.1.1前台操作主要需求: ................................ 9

3系统分析 ..................................................... 10

3.1系统模块功能分析 ....................................... 11 3.2系统流程图 ............................................. 12 4系统总体设计 ................................................. 13

4.1系统模块的总体设计 ..................................... 14 4.2系统功能结构图 ......................................... 14 4.3数据库设计 ............................................. 15

4.3.1数据库设计概述 ................................... 15 4.3.2数据分析 ......................................... 15 4.3.3数据库概念结构设计 ............................... 16 4.3.4数据库逻辑结构设计 ............................... 19 4.3.5数据库的详细设计 ................................. 20

5详细设计 ..................................................... 20

5.1数据库的连接 ........................................... 21 5.2商品浏览模块 ........................................... 21

5.2.1 功能模块说明 .................................... 21 5.2.2模块设计过程 ..................................... 22 5.3商品评论模块 ........................................... 23

5.3.1模块功能说明 ..................................... 23 5.3.2模块设计过程 ..................................... 23 5.4商品购物车模块 ......................................... 23

5.4.1功能模块说明 ..................................... 23 5.4.2模块设计过程 ..................................... 24 5.4用户验证模块 ........................................... 25

III

沈阳理工大学学士学位论文

5.4.1功能模块说明 ..................................... 25 5.4.2功能设计过程 ..................................... 26 5.5订单处理模块 ........................................... 27

5.5.1功能模块说明 ..................................... 27 5.5.2功能设计过程 ..................................... 27 5.6商品管理模块 ........................................... 28

5.6.1功能模块说明 ..................................... 28 5.6.2功能设计过程 ..................................... 29 5.7用户管理模块 ........................................... 29

5.7.1功能模块说明 ..................................... 29 5.7.2功能设计过程: ................................... 30 5.8员工管理模块 ........................................... 31

5.8.1功能模块说明 ..................................... 31 5.8.2功能设计过程: ................................... 31

6系统测试 ..................................................... 32

6.1软件测试的目的与原则 ................................... 32 6.2 软件测试常用测试技术 ................................. 32

6.2.1黑盒测试 ......................................... 32 6.2.2白盒测试 ......................................... 33 6.3本系统测试步骤 ......................................... 33 结束语 ........................................................ 35 致 谢..................................................... 36 参 考 文 献 ................................................... 37 附录A ......................................................... 38

A.1 中文翻译 ............................................. 44 附录B 数据表 ................................................ 50

IV

沈阳理工大学学士学位论文

引言

随着计算机的技术的高速发展,计算机网络的普及,以及人们生活水平的不断的提高,电子商务已悄然地走进我们的生活中来,在创造时代价值的同时也改变着我们传统的生活方式。

其中最具代表性的要数网上商城,其简单的购物方式,更合理的价格,更广泛的商品种类,更迅捷的商品更新,更时尚的购物理念;一经推出就得到了大众的广泛接受和认可,其创造的巨大的商业价值以及跨时代的历史意义都是我们传统的商品买卖模式所无法比拟的。

如今网上商城依旧像他刚出现时一样,不断创造着越来越多的商业价值,永远为我们提供丰富多彩的商品,用自己近乎完美的社会影响力诠释着电子商务应用领域的传奇。

网上商城的设计为了满足人们通互联网实现随时随地查看购买商品的需求,从而改变传统的购物模式,通过互联网完成商品交易,省去繁琐的中间环节,从而降低商品价格,提高购物效率,在方便消费者的同时也为商家创造了更高的经济利益。同时网上商城对所有商品的销售情况进行实时管理,跟踪调查,这样也可以对商品的销售情况进行系统的分析,从而随时掌握消费动向。

本商城设计涵盖MVC设计模式,java方向程序编程,数据库设计,网络技术等涵盖多方面技术知识,锻炼开发者正确的设计思想,独立的思维方式,善于解决问题的能力,以及多方面技术的综合掌握和使用能力。

1

沈阳理工大学学士学位论文

1系统概述

1.1网上商城介绍

随着电子商务在我国广泛的应用,其主要的的EDI(电子数据交换)和Internet应用被大家所亲睐,其以因特网为基础的网络环境,在今天的跨国界的实际市场环境中具有得天独厚的优势。而以计算机网站为基本单元,虚拟实际市场的商场进行商务事物处理信息化,信息处理电子化,通过丰富的网络技术增强网站交互感,网上商城的基本技术理念正源于此处。 网上商城包涵从商品查看到付款的全过程,包括商品浏览,商品细节显示及评论,商品购物车,用户登录权限控制,订单显示,商品管理,用户管理,人员管理等多个子模块,为网上商城提供个性、美观、实际应用价值高、用户交互感强的多功能完善购物系统。

如今网上商城融入我们生活中,京东,淘宝等大型网上商城家喻户晓,其创造的技术、经济、商业价值不可估量,完美的网上商城也是最高级的电子商务中最具代表性的,其利用因特网能够进行全部的传统的贸易活动,也就是说从查找商品开始,到在线洽谈,订货,付款等各个复杂过程都被网上商城简单、安全、便捷地实现并加以应用,其效率性、安全性、商业价值、市场前景等各个方面都是传统购物模式所无法启及的。

随着jquery,flex等各种富客户端技术的不断应用与创新,网上商城在界面展示,用户体验等方面取得了前所未有的进步,更丰富绚丽的画面展示已成为网上商城一个越来越明显的优势。

网上商城发展至今,其时代影响力,经济创造力都是前所未有的,随着人们对网络的不断依赖于广泛使用,网上商城注定焕发出更赋生命力的未来。

1.2网上商城研究的意义

网上商城已与我们生活紧密相关,对其进行研究与实现有着重要的学习和应用价值。我们通过网上商城来进行基于互联网的商品交易,在提高买卖效率的同时,也方便的对商品和人员的管理,以便进行系统全面的分析与研究。

其采用的mvc设计模式,基于java语言的开发,mysql数据库的应用,丰富前台技术的展现等等对本科阶段的学习和进步有着积极的作用。

1.3我国电子商务的现状

虽然近几年来电子电子商务在我国得到了飞速的发展,但与国际发达国际发达国家相比仍存在不小的差距。目前我国企业普遍存在缺乏核心竞争

2

沈阳理工大学学士学位论文

力的问题。经营观念陈旧、管理基础薄弱等问题仍然存在。

面对这些问题,电子商务正式登上历史舞台,且大有作为之势。

企业直接开展电子商务活动,可以带动企业内部网络建设,人员统计、市场贸易等各个方面,便于企业对日常效益、运营情况进行24小时跟中调查。也正因为如此,B2B电子商务在各大企业中逐渐成为主流,并得到的前所未有的空前进步和拓展。

中小型企业通过建立行业性网站提供专业化的信息服务是近些年来电子商务的又一个发展趋势。通过参加第三方电子商务平台或自建网站在链接专业平台等途径拓展业务,从而有效解决中小型企业缺乏信息和销售渠道少的疑难问题;大型企业按照供应链式关系建立企业B2B电子商务体系,带动中小企业B2B电子商务的应用与发展,同时绝大部分大型企业可以建立自己的网站,与专业B2B平台链接或者进入电子交易联盟,从使企业绝对利益走向更高层次的发展轨道。

十几年来,我国的电子商务的发展得到了最大化的提高与进步,首先企业紧密围绕商品交易计划,在国家总体规划改革的大背景下,通过与国际先进技术的交流与学习,大力发展电子商务相关项目,是我国在这领域从无到有,从简单到复杂,从模仿到创新取得了令世界瞩目的业绩。其次组件电子交易联盟,多家大型企业重点联盟,从点到线,再从线到网,极大的丰富了电子商务我国应用的领域,提高其使用效率、扩大其市场影响力,为其今后更蓬勃的发展打下良好的基础。

随着企业服务模式的改变,拓展服务范围,加强企业互补,增加国际交流合作,电子商务注定在我们的日常生活中取得未来越大的影响力,其研究价值和发展前期也是不可估量的,值得我们所有人期待。

1.4系统可行性分析 1.4.1经济可行性

网上商城的所有软件都采用免费或破解版本,数据采集基于网落上的各大网站信息,方便廉价,且简单易行,所以经济要求对我们项目建设几乎不存在影响,经济可行。

1.4.2技术可行性

网上商城是通过javabean,jsp,servlet来实现MVC设计模式,使用mysql数据库来进行数据存储实现的。整体设计为B/S形式,后台使用Java语言进行开发,java开源的优势使许多复杂的代码变得简单易懂,有资料可寻,有理有据,开发起来更加方便简洁。前台基本使用jsp结合jquery,flex来达到丰富客户端的目的,绚丽的画面给人以更加优美的视觉感;使用div,css来实现工整且复杂的布局,布局模式模仿现有的商城,

3

沈阳理工大学学士学位论文

尽量做到贴切实际,逼真。

虽然oracle目前应用广泛、功能强大,是一个安全、可靠的企业级应用开发数据库,但考虑其对设备的要求,结合项目本身大小,决定使用更符合实际需要的mysql数据库,其功能足够符合项目要求, 且其对设备要求低,更符合我们要求。

综上所诉,采用这些方面技术,该项目可以完成·。

1.4.3操作可行性

网上商城的商品数据可以在网上进行采集,模仿现有购物网站进行相关项目的设计与流程实现,日常对商城的使用广泛也使得我们对商城开发有了更高的要求和理解,更有利于优秀项目的开发与完成。

1.5开发工具介绍 1.5.1JSP

JSP是由Sun公司倡导、许多公司参与一起建立的一种动态技术标准。在传统的网页HTML文件中加入Java程序片段和JSP标签,就构成了JSP网页。Java程序片段可以操纵数据库、重新定向网页,实现建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,这样大 大降低了对客户浏览器的要求,即使客户浏览器端不支持Java,也可以访问JSP网页。

JSP全名为Java Server Pages,其根本是一个简化的Servlet设计,他实现了Html语法中的java扩张(以 <%, %>形式)。JSP与Servlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户端。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。通常JSP页面很少进行数据处理,只是用来实现网页的静态化页面,只是用来提取数据,不会进行业务处理。

JSP是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。JSP重要功能:JSP的一个主要功能是JSP fragment,它的基本特点是可以使处理JSP的容器推迟评估JSP标记属性。我们知道一般JSP是首先评估JSP标记的属性,然后在处理JSP标记时使用这些属性,而JSP fragment提供了动态的属性。也就是说,这些属性在JSPJSP需要将这样的属处理其标记体。当JSP标记设置成这种形式时,这种标记属性实际上的处理方法类似于标记体。在实现标记的程序中,标记属性可以被反复评估多次。这种用法称为JSP fragment。JSP fragment还可以定义在一个SimpleTag处理程序中使用的自制标记动作。像前面例子说明的,

4

沈阳理工大学学士学位论文

getJspBody返回一个 JspFragment对象并可以在doTag方法中多次使用。 JSP优势:

(1)一次编写,到处运行。除了系统之外,代码不用做任何更改。

(2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP的局限性JSP的优势是显而易见的。[3] (3)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。 (4)多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。

(5)支持服务器端组件。web应用需要强大的服务器端组件来支持,开发人员需要利用其他工具设计实现复杂功能的组件供web页面调用,以增强系统性能。JSP可以使用成熟的JAVA BEANS 组件来实现复杂商务功能。 JSP缺点:

(1) 与ASP也一样,Java的一些优势正是它致命的问题所在。正是由于为了跨平台的功能,为了极度的伸缩能力,所以极大的增加了产品的复杂性。

(2) Java的运行速度是用class常驻内存来完成的,所以它在一些情况下所使用的内存比起用户数量来说确实是“最低性能价格比”了。

1.5.2servlet

servlet是在服务器上运行的小程序。这个词是在Java applet的环境中创造的,Java applet是一种当作单独文件跟网页一起发送的小程序,它通常用于在客户端运行,结果得到为用户进行运算或者根据用户互作用定位图形等服务。服务器上需要一些程序,常常是根据用户输入访问数据库的程序。这些通常是使用公共网关接(CGI(Common Gateway Interface))应用程序完成的。然而,在服务器上运行Java,这种程序可使用Java编程语言实现。在通信量大的服务器上,Javaservlet的优点在于它们的执行速度更快于CGI程序。各个用户请求被激活成单个程序中的一个线程,而无需创建单独的进程,这意味着服务器端处理请求的系统开销将明显降低。最早支持Servlet技术的是JavaSoft的Java Web Server。此后,一些其它的基于Java的WebServer开始支持标准的ServletAPI。 Servlet的主要功能在于交互式地浏览和修改数据,生成动态Web内容。Servlet看起来像是通常的Java程序。Servlet导入特定的属于Java ServletAPI的包。因为是对象字节码,可动态地从网络加载,可以说Servlet对Server就如同Applet对Client一样,但是,

由于Servlet运行于Server中,它们并不需要一个图形用户界面。从这个角度讲,Servlet也被称为FacelessObject。一个servlet就是Java编程语言中的一个类,它被用来扩展服务器的性能,

5

沈阳理工大学学士学位论文

服务器上驻留着可以通过“请求-响应”编程模型来访问的应用程序。虽然servlet可以对任何类型的请求产生响应,但通常只用来扩展Web服务器的应用程序。加载和实例化Servlet。这项操作一般是动态执行的。然而,Server通常会提供一个管理的选项,用于在Server启动时强制装载和初始化特定的Servlet。Server创建一个Servlet的实例第一个客户端的请求到达ServerServer调用Servlet的init()方法(可配置为Server创建servlet实例时调用,在web.xml中标签下配置标签,配置的值为整型,值越小servlet的启动优先级越高)一个客户端的请求到达Server,Server创建一个请求对象,处理客户端请求Server创建一个响应对象,响应客户端请求,Server激活Servlet的service()方法,传递请求和响应对象作为参数,service()方法获得关于请求对象的信息,处理请求,访问其他资源,获得需要的信息,service()方法使用响应对象的方法,将响应传回Server,最终到达客户端。service()方法可能激活其它方法以处理请求,如doGet()或doPost()或程序员自己开发的新的方法。对于更多的客户端请求,Server创建新的请求和响应对象,仍然激活此Servlet的service()方法,将这两个对象作为参数传递给它。如此重复以上的循环,但无需再次调用init()方法。一般Servlet只初始化一次(只有一个对象),当Server不再需要Servlet时(一般当Server关闭时),Server调用Servlet的Destroy()方法。与传统的CGI和许多其他类似CGI的技术相比,Java Servlet具有更高的效率,更容易使用,功能更强大,具有更好的可移植性,更节省投资。在未来的技术发展过程中,Servlet有可能彻底取代CGI。在传统的CGI中,每个请求都要启动一个新的进程,如果CGI程序本身的执行时间较短,启动进程所需要的开销很可能反而超过实际执行时间。而在Servlet中,每个请求由一个轻量级的Java线程处理(而不是重量级的操作系统进程)。 Servlet提供了大量的实用工具例程,例如自动地解析和解码HTML表单数据、读取和设置HTTP头、处理Cookie、跟踪会话状态等。在Servlet中,许多使用传统CGI程序很难完成的任务都可以轻松地完成。例如,Servlet能够直接和Web服务器交互,而普通的CGI程序不能。Servlet还能够在各个程序之间共享数据,使得数据库连接池之类的功能很容易实现。Servlet用Java编写,ServletAPI具有完善的标准。因此,为IPlanet Enterprise Server写的Servlet无需任何实质上的改动即可移植到Apache、MicrosoftIIS或者WebStar。几乎所有的主流服务器都直接或通过插件支持Servlet。不仅有许多廉价甚至免费的Web服务器可供个人或小规模网站使用,而且对于现有的服务器,如果它不支持Servlet的话,要加上这部分功能也往往是免费的(或只需要极少的投资)。

1.5.3javabean

用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean、applet程序或者应用来使用这些对象。

6

沈阳理工大学学士学位论文

用户可以认为JavaBean提供了一种随时随地的复制和粘贴的功能,而不用关心任何改变。

JavaBean可分为两种:一种是有用户界面(UI,User Interface)的JavaBean;还有一种是没有用户界面,主要负责处理事务(如数据运算,操纵数据库)的JavaBean。JSP通常访问的是后一种JavaBean。

JavaBean是可复用的平台独立的软件组件,开发者可以在软件构造器工具中对其直接进行可视化操作。软件构造器工具可以是Web页面构造器、可视化应用程序构造器、GUI设计构造器或服务器应用程序构造器。有时,构造器工具也可以是一个包含了一些bean的复合文档的文档编辑器。

JavaBean可以是简单的GUI要素,如按钮或滚动条;也可以是复杂的可视化软件组件,如数据库视图,有些JavaBean是没有GUI表现形式的,但这些JavaBean仍然可以使用应用程序构造器可视化地进行组合。 一个JavaBean由3部分组成: (1) 属性(properties)

JavaBean提供了高层次的属性概念,属性在JavaBean中不只是传统的面向对象的概念里的属性,它同时还得到了属性读取和属性写入的API的支持。属性值可以通过调用适当的bean方法进行。比如,可能bean有一个名字属性,这个属性的值可能需要调用String getName()方法读取,而写入属性值可能要需要调用void setName(String str)的方法。每个JavaBean属性通常都应该遵循简单的方法命名规则,这样应用程序构造器工具和最终用户才能找到JavaBean提供的属性,然后查询或修改属性值,对bean进行操作。JavaBean还可以对属性值的改变作出及时的反应。比如一个显示当前时间的JavaBean,如果改变时钟的时区属性,则时钟会立即重画,显示当前指定时区的时间。 (2) 方法(method)

JavaBean中的方法就是通常的Java方法,它可以从其他组件或在脚本环境中调用。默认情况下,所有bean的公有方法都可以被外部调用,但bean一般只会引出其公有方法的一个子集。

由于JavaBean本身是Java对象,调用这个对象的方法是与其交互作用的唯一途径。JavaBean严格遵守面向对象的类设计逻辑,不让外部世界访问其任何字段(没有public字段)。这样,方法调用是接触Bean的唯一途径。但是和普通类不同的是,对有些Bean来说,采用调用实例方法的低级机制并不是操作和使用Bean的主要途径。公开Bean方法在Bean操作中降为辅助地位,因为两个高级Bean特性--属性和事件是与Bean交互作用的更好方式。因此Bean可以提供要让客户使用的public方法,但应当认识到,Bean设计人员希望看到绝大部分Bean的功能反映在属性和事件中,而不是在人工调用和各个方法中。 (3) 事件(event)

Bean与其他软件组件交流信息的主要方式是发送和接受事件。我们可以将bean的事件支持功能看作是集成电路中的输入输出引脚:工程师将引脚连接在一起组成系统,让组件进行通讯。有些引脚用于输入,有些引脚用于输出,相当于事件模型中的发送事件和接收事件。

事件为JavaBean组件提供了一种发送通知给其他组件的方法。在AWT事件

7

沈阳理工大学学士学位论文

模型中,一个事件源可以注册事件监听器对象。当事件源检测到发生了某种事件时,它将调用事件监听器对象中的一个适当的事件处理方法来处理这个事件。

由此可见,JavaBean确实也是普通的Java对象,只不过它遵循了一些特别的约定而已。

1.5.4mysql介绍

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。系统特性编辑

1.使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性。

2.支持AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统。

3.为多种编程语言提供了API。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。 4.支持多线程,充分利用CPU资源。

5.优化的SQL查询算法,有效地提高查询速度。

6.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。 7.提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。

8.提供TCP/IP、ODBC和JDBC等多种数据库连接途径。 9.提供用于管理、检查、优化数据库操作的管理工具。

10.支持大型的数据库。可以处理拥有上千万条记录的大型数据库。

MyISAMMysql5.5之前的默认数据库引擎,最为常用。拥有较高的插入,查询速度,但不支持事务InnoDB事务型数据库的首选引擎,支持ACID事务,支持行级锁定,MySQL5.5起成为默认数据库引擎BDB源自Berkeley DB,事务型数据库的另一种选择,支持COMMIT和ROLLBACK等其他事务特性Memory所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在Mysql重新启动时丢失Merge将一定数量的MyISAM表联合而成一个整体,在超大规模数据存储时很有用Archive非常适合存储大量的独立的,作为历史记录的数据。

8

沈阳理工大学学士学位论文

因为它们不经常被读取。Archive拥有高效的插入速度,但其对查询的支持相对较差

Federated将不同的Mysql服务器联合起来,逻辑上组成一个完整的数据库。非常适合分布式应用Cluster/NDB高冗余的存储引擎,用多台数据机器联合提供服务以提高整体性能和安全性。适合数据量大,安全和性能要求高的应用CSV: 逻辑上由逗号分割数据的存储引擎。它会在数据库子目录里为每个数据表创建一个.CSV文件。这是一种普通文本文件,每个数据行占用一个文本行。CSV存储引擎不支持索引。BlackHole :黑洞引擎,写入的任何数据都会消失,一般用于记录binlog做复制的中继EXAMPLE存储引擎是一个不做任何事情的存根引擎。它的目的是作为MySQL源代码中的一个例子,用来演示如何开始编写一个新存储引擎。同样,它的主要兴趣是对开发者。EXAMPLE存储引擎不支持编索引。另外,Mysql的存储引擎接口定义良好。有兴趣的开发者可以通过阅读文档编写自己的存储引擎。

2需求分析

网上商城的实际应用前景广阔,随着电子商务的迅猛发展,人们渴望追求更方便快捷的购物理念和方式,网上商城提供简单的流程,方便的购物,丰富的产品,正符合人们的需求。网上商城关键是提供给用户丰富的界面交互感,简单的流程,容易的操作,安全的购物环境,合理的商品、用户信息管理。2.1系统综合需求:

2.1.1前台操作主要需求:

1.商品浏览功能

用户应能查看所有商品的信息,包括商品名称,价格,现有库存量,详细信息,图片等。也可以根据商品类别进行商品分类查找。

2. 购物车功能

用户将要购买的商品添加到购物车中,并能更新每种商品的数量。购物车能够记录所有添加进来的商品的单价,数量,并计算出总钱数,方便用户选择。用户可以从购物车中删除不需要的商品,并且商品总价随之修改,同时提供清空购物车的功能。

3. 用户登录和注册

当用户要购买商品必须先进行,然后由系统验证登录信息是否正确,正确方可进行下一步骤继续进行购买,如果是新用户则必须先进行注册,注册成功后,方可进行登录进行下一步。

4. 用户下单:

9

沈阳理工大学学士学位论文

用户登录后,系统能够对当前购物车中的商品信息,结合用户的相关信息进行下单,显示台显示用户商品订单,商城支持货到付款。 2.1.2后台操作主要需求: 1.商品管理:

普通员工登录内部网站后,可以对商城商品进行查看,跟新新进商品,删除下架商品,查询已有的商品信息,查看各个商品销售情况。

2.用户管理:

普通员工登录内部网站后,可以对用户信息进行相关查询,但没有添加新用户的权限,添加新用户由外部网站开放给用户进行注册, 拥有注销违法用户信息权限。

3.员工管理:

人力资源员工登录后访问普通员工管理界面,其拥有对员工相关信息的修改权限、增填新进员工权限、注销离职员工信息,查询现有全部员工相关信息。

2.2分析系统数据要求

此网上商城包括公共网站的商品详细信息的展示,买卖,并能够显示每种商品的评论,拥有用户的登入功能,并将用户信息和和商品买卖信息结合生成订单;内部网站包括商品信息的管理,用户信息的管理,以及员工信息的管理。

所以商品信息表应该包括商品号(其中商品号是商品评论表的外键),商品名称,商品价格,商品库存量,商品细节,商品照片号(其中找照片号是照片表的的外键),商品详细照片号,商品卖出量。用户信息表应该包括用户id号,账号,密码,用户真实姓名,默认电话,默认送货地址,常用邮箱,不良记录。商品照片表因包括商品id号,和对应的15张照片属性。商品评论表应该包括商品号,对应评论的用户名,商品评论信息。员工信息表应该包括员工id号,员工姓名,员工权限,员工工作电话,员工基本工资,员工性别。

3系统分析

网上商城系统分析的主要任务是将在项目前期调查与设计中所得到的文档资料与数据信息集中到一起,对网上商城程序运行状况、数据交互量、信息处理过程,系统稳定性进等行详细综合地分析。这是我们研究的最基本的方法,把一个复杂的网上商城,通过系统目标分析分解成各个具体问题分析解决,可以准确地诊断问题,分析其原因,更有效地提出解决方案,有利于及时解决问题,提高开发效率

网上商城的系统分析先是对要研究的问题进行限定,然后确定去模仿现有的网络平台业务模式进行逻辑设定并确定开发目标,搜集整理开发数据包

10

沈阳理工大学学士学位论文

括数据库基本表的建立以及其之间的相互关系。以上完成后,为商城制定开发标准和评价准则,从而尽可能多的提出备选方案,再根据实际需要与现实技术实现的可能性进行最适合的开发选择。

3.1系统模块功能分析

网上商城实现的多个模块有:商品浏览模块,商品细节显示模块、商品

评论模块,商品购物车实现模块,用户权限验证模块,商品管理模块,用户管理模块,员工管理模块。各个模块间数据共享,相互交互,并通过丰富的前台展现技术进行数据的处理与显示,从而达到网上商城的实际运行效果要求。在网上商城中需要实现的主要功能:

(1)相关商品的浏览,包括商品库存量,价格的显示,商品细节的显示,并可以选择购买数量,购买数量会与现有库存量进行验证比对,用户下单购买后商品数量随之自动改变,商城员工可以通过内部网站对商品相关信息进行更改,为顾客服务的网站上商品信息进行相应的变化。商城可以提供商品细节发大功能,可以方便用户进行细节检查。

(2)用户可以对相关的商品进行匿名品论,用户可以对商品的评论进行滚动查看,加以对比。

(3)可以将商品添加到购物车,在购物车中商品用户可以对商品进行数量更改,删除购物车中的商品,清空购物车中的商品等操作,购物车提供自动计算功能,可以进行小计、总计等。用户对商品数量进行更改后,购物车可以计算出相应的总价格。

(4)用户确认下单后,网上商城显示用户登录界面,用户必须先登录,验证成功后方可进行下一步,如果用户名不存在,系统提示注册用户,注册成功后方可登录。

(5)网上商城将当前的购车信息与用户信息进行结合汇总显示用户检查信息是否正确,如果确认无误后填写送货地址,确认下单,控制台进行订单显示。

(6)网上商城普通员工合法登录后,进入商品管理界面,拥有对商品管理的权限,能够添加新上架商品,可以对商品的相关信息进行维护,更新网上商城下架的商品信息,查询所有商品的信息。

(7)网上商城普通员工合法登录后,进入用户管理界面,拥有对用户管理的权限,能够查询用户信息,并对其进行维护,对黑名単用户进行封号操作。

(8)网上商城人力资源运功合法登录后,进入员工员工管理界面,拥有员工管理权限,能够查询员工的全部信息,添加新近员工的相关工作信息,拥有用户信息的维护权限,可以对离职员工进行更新操作。

11

沈阳理工大学学士学位论文

3.2系统流程图

网上商城外部网站可以供大众进行商品的浏览,匿名评论,用户可将自己的商品都临时添加到购物车中,当用户决定购买商品时,进行登入验证,验证成功后进行商品信息和用户信息的综合显示,用户确认无误后进行下单,控制台进行订单的信息显示,其系统流程如图3.1所示。

网上商城内部网站考虑到权限、安全等问题,内部网站需要先进行身份验证,普通员工成功登陆后拥有对商品信息维护权限,用户维护权限;商城的人力资源人员可以对商城的员工进行信息的维护,其系统流程如图3.2所示。

商品浏览

商品细节 显示 添加到购 物车

N 登录验证

Y

订单显示界面

商品信息用户信息

确认 确认

生成订单

图3.1 外部网站系统流程图 12

沈阳理工大学学士学位论文

启动系统 N 登录验证

Y 内部网站

商品管理 员工管理 用户管理

退出网站 图3.2 内部网站系统流程图

4系统总体设计

总体设计过程要寻找实现目标系统的各种不同的方案,需求分析阶段得到的数据流图式设想各种可能方案的基础。然后对这些预备方案加以对比,选择最为合理方案进行开发,然后进行必要的数据库设计,1再确定软件开发中对软键的测试标准。

通常在详细设计之前先进行总体设计是必需的,因为此时往往需要高级开发人员站在全局高度上对整个软件开发进行设计评估,在更为抽象的层次上分析衡量软件结构,软件功能,软件性能,软件开发标准,软件测试标

13

沈阳理工大学学士学位论文

准,想做到这些绝非一日之功力。

4.1系统模块的总体设计

网上商城是一个典型的B/S应用程序,其中通过javabean,servlet,jsp实现MVC的设计模式需求,其主要包括商品细节显示模块,用户匿名评论,购物车管理模块,用户权限验证模块,订单管理模块,商品管理模块,用户管理模块,员工管理模块等组成。规划功能模块如下:

(1)商品细节显示模块:此模块主要实现商品信息的细节显示,包括商品库存,价格等相关信息;提供商品放大显示功能,方便用户查看选择。、 (2)用户匿名评论模块:此模块主要提供给用户匿名评论权限,用户可以对商品进行相应评价,用户可以查看相关产品的评论作为购买参考。 (3)购物车模块:主要对用户添加进来的商品进行汇总管理,用户可以对自己已经添加到购物车中的商品进行相应的数量修改,修改后购物车中的商品小计,商品花费总计进行对应的变化,以供用户进行选择。

(4)用户权限验证模块:用户对购物车确认更改完毕后,商城将进行用户的权限验证,登录成功后方可进行最后订单的显示。如果是新用户,则要求进行用户信息的注册,注册成功后方可成功登入。

(5)订单管理模块:用户成功验证后,商城将用户基本信息与商品信息进行联合处理,生成订单,用户对订单进行相关更改,确认无误后进行订单提交,控制台对对应的订单信息进行相关显示。

(6)商品管理模块:网上商城内部网站提供商品信息管理功能,商城普通员工成功登入后,登入商品管理界面,可以增添新上架的商品,处理下架商品,查看商品相关信息,维护商品。

(7)用户管理功能:网上商城内部网站提供用户信息管理功能,商城普通员工成功登入后,登入用户管理界面,可以查看用户信息,对黑名单用户进行相关的拉黑注销处理。

(8)员工管理管理模块:网上商城内部网站提供员工管理功能,

商城人力资源员工成功登入后,拥有编辑新增员工相关信息以及维护员工相关信息的权限,可以查看所有员工的信息,处理离职员工信息。

4.2系统功能结构图

网上商城是基于mvc设计模式的研究,其主要功能包括:商品细节显示,商品评论,购物车管理,用户验证,订单管理,商品管理,用户管理,员工管理8个子模块,其系统功能结构图如图4.1所示:

14

沈阳理工大学学士学位论文

网上商城

用商户品匿细 节 名 评显论 示 购物车管理 用户权限验证 订单处理 商品管理 用户管理 员工管理 图4.1系统功能图

4.3数据库设计 4.3.1数据库设计概述

数据库设计是建立数据库及其应用系统的技术,是软件开发和使用中的关键技术,他是一个给定的相应的环境,构造信息要求和处理要求。这个问题是软件开发中的主要研究方向。

数据库设计和应用系统设计是相辅相成的,换句话说,我们在开发中既要考虑代码开发的性能,也要考虑到数据库的设计和使用的合理性。由于数据结构复杂,内容的庞大,使用环境千变万化,是数据库设计具备极其的复杂性,往往一个项目的初期数据库的设计就很大程度上决定了其结果的走向性。所有数据库的设计成为了项目开发中的重中之重,网上商城也对数据库的设计进行了系统地分析与研究。

4.3.2数据分析

网上商城的外部网站需要实现网上购物的全部过程,其基本数据信息要包含商品表,商品详细信息表,商品评论表,用户信息表,为满足数据的关联功能,各个表之间应该具有对应的关系,其中商品表要与商品详细信息表通过商品号进行关联,以便进行商品详细信息的的显示。商品表要与商品评论表通过商品号进行关联,以便进行商品相关评论的显示。

15

沈阳理工大学学士学位论文

网上商城内部网站满足商城日常对商品管理、用户管理、员工管理的需要,为满足上诉需求,数据库中应该再增加员工信息表的相关信息,支持网上商城的数据管理。

4.3.3数据库概念结构设计

结合数据分析数据库进行简单结构设计,用E-R展示为商品属性 图,用户实体属性图,员工实体属性图,商品评论实体属性图,商品 照片细节显示图及实体键E-R图,如图4.1-4.8所示: 商品商品价格 名 商品id 库存量 照片号 销售情况 商品 详细信息 图4.1商品实体属性图 账号 姓名 用户号 用户

地址 Email

电话

图4.2用户实体属性图

16

沈阳理工大学学士学位论文

密码 姓 名 员工号 员工

电话

工资 性别 图4.3员工实体属性图

商品评论

商品号

评论 用户名

图4.4商品评论实体属性图

商品照片

商品号 照片号

图4.5商品照片实体属性图

17

权限 沈阳理工大学学士学位论文

商 品 信息 浏览 用户 户 注 用 信息 册 填写 购物车、订单信 息 图4.6实体属性E-R图 商品信息 维护

HR员工

图4.7实体属性E-R图

18

沈阳理工大学学士学位论文

商品信息

维护

普通员工

管理

用户信息

图4.7实体属性E-R图

4.3.4数据库逻辑结构设计

数据库逻辑结构的设计要注意实体转化为数据库中与之相对应的实体关系表,注意实体属性和表格中列对应的关系,实体转化是联系的转化为数据库中的各个表,转化是不能破坏实体间的依赖关系。 网上商城数据库要求具有以下方面的特点:

(1)结构合理,对一个商品表,商品详细信息表,员工表,用 户表的建立多条记录。

(2)建立的数据冗余度小,独立性强,可用性强。 (3)数据量吩咐,贴切实际应用。

(4)稳定性强,可靠性好,具备一定的保密条件。

19

沈阳理工大学学士学位论文

4.3.5数据库的详细设计

设计网上商城数据库时,应注意一下事项:

网上商城的实际用途,数据库设计好贴切实际,符合实际使用要求。 数据库设计要规范化,合理化,逻辑性缜密,防止出现错误。

建立明确的表与表之间的实体完整性关系,确保数据库的运行安全。 在软件设计中尽量选择Mysql的高性能语句,提高数据库性能。 注意数据库的管理和维护。

网上商城的数据库建立要满足项目的基本运行要求,为项目的运行在持久层提供坚实的运行保障。网上商城共建立5张表,分别为Products(商品基本信息表),Buyers(用户基本信息表),Photos(商品详细信息表),Products_Evalute(商品评论表),Users(用户基本信息表)。

商品基本信息表:包含的字段有商品号,商品名称,商品价格,商品库存量,商品细节信息,商品状态,商品销售量(见附录B表B.1)

商品细节信息表:包含的字段有商品号,细节1,细节2,细节3,细节4,细节 5,细节6,细节7,细节8,细节9,细节10,细节11, 细节 12,细节13,细节14,细节15,细节16,细节17,细节18,细节 19,细节 20,细节21(见附录B表B.2)

商品评论信息表:包含的字段有商品号,评论姓名,评论信息。(见附录B表B.3)

用户基本信息表:包含的字段有用户号,账号名称,账号密码,用户姓名,电话,Email,不良记录,消费总量(见附录B表B.4)

员工基本信息表:包含的字段有员工号,员工姓名,登录密码,员工权限,员工电话, 员工工资,员工性别(见附录B表B.5)

5详细设计

详细设计本质就是怎样实现系统的过程,系统的每个模块都应精确描述,冲界面设计到后台代码的实现都应该的到具体细致的展示。

但详细设计并不是简单的图片代码堆砌,其应该是基于前面几步骤而得来的具体的设计,能够展示设计者的逻辑思想,展现软件功能,体现产品优势、性能,提供核心代码的概念编写,这样再开发之前主要功能实现开发者已经胸有成竹,开发时事半功倍。

详细设计的更重要的是简明、精炼,语言不用过于复杂,毕竟不是具体的开发,但要求能够瞒住基本的设计开发需求,系统模块化,模块具体化,这也是网上商城详细设计的遵守的基本准则。

20

沈阳理工大学学士学位论文

5.1数据库的连接

网上商城通过jdbc连接mysql数据库,通过在项目中Bean包中建立一个DBtool类来实现数据库的连接,这样如果以后的程序代码需要访问数据库时,直接调用DBtool数据库连接工具类即可,既方便使用,有去除了代码的冗余,增强了项目的可移植性。

商品信息管理模块,用户信息管理模块,员工信息管理等等都需要访问数据库,创建DBtool类大大提高了这些模块的使用性能,提高程序利用率,DBtool类其代码如图5.1所示。

图5.1连接数据库的工具类

5.2商品浏览模块 5.2.1 功能模块说明

网上商城浏览模块,用户可以对商品按种类进行查找,用户在输入栏中输入要查找得商品种类,点击【查询】就可以跳转到相对应的商品种类界面。

用户点击商品,进入商品细节显示界面,该界面中显示商品的基本信息,库存状态,库存量,商品价格等信息,用户点击商品后,可以对商品进行放大查看,方便用户对比商品,用户向下查看,可以查看商品更详细的相关信息,点击【添加到购物车】后,进入购物车管理模块。商品浏览运行界面如图5.2所示:

21

沈阳理工大学学士学位论文

图5.2商品细节信息

5.2.2模块设计过程

网上商城Logol使用左侧漂浮显示,利用实现导航栏的实现,在导航栏下添加文本框,用来输入要查询的商品种类,在输入框右侧添加button按钮,用来商品查找的触发,利用jquery来进行实现图片的动态变化,利用标签将商品区分为手机,女装,男装,皮包,鞋子5大种类,右侧用div加图片实现网站的公告栏。利用div、css、table实现商品分类具体商品信息的显示。

在商品细节显示界面中,使用table表格实现商品的左右布局,左侧利用jequery来实现商品切换功能显示,放大功能显示,右侧进行商品详细信息,商品库存状态,商品库存量,商品价格的显示。 主要功能代码如下: ??

    ${product.id} id=\>${product.location}

    剩购

    余买

    库数

    存量

    :

    id=\>${product.number}

    type=\ id=\ value=\ style=\width:41px\/>

    :

    ??

    22

    沈阳理工大学学士学位论文

    5.3商品评论模块 5.3.1模块功能说明

    网上商城评论模块,用户可以填写任意名称,添加对商品的品论,点击查看评论,查看商品的相关评论,用户点击评论按钮,发布对商品的评论。商品评论运行界面如图5.4所示:

    图5.4商品评论界面

    5.3.2模块设计过程

    使用标签循环输出数据库中对用的商品评论表,使用textarea用来进行评论内容的输入,使用text原来进行用户名输入, 使用【我要评论】,【查看品论】两张图片进行与javascript相关的的评论提交,评论显示,其功能代码如下: ??

    ${item.user_name}:${item.evaluate}

    ??

    5.4商品购物车模块 5.4.1功能模块说明

    网上商城购物城模块,用户可以对添加到购物车中的商品进行管理。用户可以对商品进行数量修改,对不满意的商品进行删除操作,购物车提供清空购物车功能,点击清空购物车按钮后,购物城清空。购物车具备智能结算功能,用户对自己的购物车进行相应的修改后,点击确认修改按钮,

    23

    沈阳理工大学学士学位论文

    购物车中对应的商品小计,商品总计中付款金额随之做出相应的改变,点击购物购物车下的购物返回连接,可以返回商品主界面继续进行购买,购物车运行界面如图5.5所示:

    图5.5商品购物车运行界面

    5.4.2模块设计过程

    商品购物车模块上半部利用div、css相关技术布置成一个导航界面进行商品的种类显示。下半部分利用table布局代表购物车,将table分为商品,单价,数量,小计,删除五列,最后一行使用文本框显示总价,在其后分别添加【确认更改】,【下一步】,【清空购物车】三个按钮,该三个按钮通过与javascript的关联来达到和后台控制器访问相互的目的。 在后台在用户第一次将商品添加到购物车中是,程序为其创建一个HashMap集合代表购物车,HashMap是一个key,value一一对应的容器,相对应key值就是product对象,value值就是商品数量,将HashMap添加到Session中,这样就是得HashMap具有了和汇话相同级别的生命周期,用户对购物车的操作实际上就是对后台HashMap的操作,HashMap的size属性就决定了购物车中商品的数量,综上就基本实现了购物车功能,其主要功能代码如下: ??

    function countPrice() {

    }

    var m = document.getElementsByName(\); var e = document.getElementsByName(\); var p = document.getElementsByName(\); for(var i = 0;i < m.length;i++) { var number = e[i].value; var p1 = p[i].value; var p2 =p1.substr(1);

    m[i].value = parseFloat(number)*parseFloat(p2); }

    24

    沈阳理工大学学士学位论文

    function total() { }

    function confirmUpdateCar() { } ??

    var e = document.getElementsByName(\); //声明一个全局数组 num = new Array();

    for(var i=0; i

    location.href=\+num;

    num[i] = e[i].value;

    var t = document.getElementsByName(\); var l = t.length;

    var total = document.getElementById(\); var count =0;

    for(var i=0;i

    total.value = count;

    count += parseFloat(t[i].value);

    5.4用户验证模块 5.4.1功能模块说明

    用户进入到登入验证模块后,输入用户名和相对应的密码,验证成功后方可进行订单的处理,登入失败提示用户名密码不相符。用户点击注册按钮后,用户填写要注册的用户名和密码,密码要求二次确认,两次一样方可进行用户注册,注册成功后用户可以用相对应的用户名和密码进行登入,用户验证登入界面如图5.6所示:

    25

    沈阳理工大学学士学位论文

    图5.6用户验证运行界面

    5.4.2功能设计过程

    上半部添加购物流程图片,下半部利用div,css来实现实现【用户登入】,【用户注册】的相互切换,用户填写完想对应的信息后,点击登入或则注册按钮,通过javascript向后台的用户验证控制器发送请求,把决定权交给控制器,有控制器来决定是否验证成功, 其主要代码如下:

    ??

    BuyersCL bc = new BuyersCL();

    BuyersBean bb = new BuyersBean();

    HttpSession session = request.getSession(); boolean b;

    String BuyerAccount = request.getParameter(\); String BuyerPassword = request.getParameter(\); try { } try {

    b = bc.checkBuyer(BuyerAccount, BuyerPassword); if(b == true) {

    session.setAttribute(\, bb); bb = bc.selectBuyerByAccount(BuyerAccount); // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) {

    request.getRequestDispatcher(\).forward(request,

    26

    沈阳理工大学学士学位论文

    response);

    }else{

    request.setAttribute(\, \用户名

    密码不匹配')\);

    request.getRequestDispatcher(\).forward(request,res

    }

    }

    // TODO Auto-generated catch block e.printStackTrace();

    ponse);

    } catch (SQLException e) {

    ??

    5.5订单处理模块 5.5.1功能模块说明

    在订单处理过程中商城将已经确定的购物车中的商品的信息结合数据库中用户的注册的基本信息生成相对应的订单显示,用户除了对商品信息进行进一步对核对外,还要对订单中默认的收件人,电话,email等信息进行最后确认,如果有变动,立即修改,确认无误后,填写送货地址,点击确认下单按钮,控制台生成订单,购买完成。其运行界面如图5.7所示:

    5.5.2功能设计过程

    5.7订单处理运行界面

    顶部用图片显示购物流程,中间通过table读取session中购物车中的相关信息,订单中的购物信息已经在购物车中确认完毕,所以订单中的商

    27

    沈阳理工大学学士学位论文

    品信息不能更改。Table下面用五个输入框显示用户默认信息,信息可以变动,以为本项目没有涉及电子银行的相关信息,付款方式默认为货到付款,用户确认商品信息无误后,点击确认下单,控制台显示订单信息。 其主要功能代码如下: ??

    ${item.key.name}

    name=\ readonly=\ border=\/>

    type=\

    value=\${item.value}\

    width=\

    name=\ readonly=\ border=\ name=\/>

    border=\/>

    ??

    5.6商品管理模块 5.6.1功能模块说明

    商品管理模块可以实现按商品名称进行商品信息的查询,员工可以对自

    己要维护的商品进行查询,信息显示后可以进行修改维护,员工可以对新近商品进行添加,添加后在右侧的表格中进行显示。右半部分表格具有分页功能,员工可以浏览商城内全部的商品信息,对下架的商品的进行删除操作,商品信息更新。其运行界面如图5.8所示:

    图5.8商品管理界面

    28

    沈阳理工大学学士学位论文

    5.6.2功能设计过程

    左半部分利用链接添加【查询商品信息】,【更新商品信息】,【新进商品】,通过div,css控制鼠标滑动显示不同操作界面。利用table填显示全部商品信息,每行商品信息后面用button表示删除按钮,点击删除按钮后,jsp界面向后台控制器发送商品id号,控制器更具所得到的id号进行相对应商品的功能实现

    表格的下方利用标签书写分页功能,默认每页显示5条记录,页面第一次加载默认显示第一页商品信息,当员工点击【上一页】,【下一页】按钮时,向控制器发送页面的加一,减一参数,控制台处理完毕后,将结果传送回jsp界面显示相关产品信息。 关于商品分页功能的主要代码如下 ??

    [${item}]

    下一页

    上一页

    ??

    5.7用户管理模块 5.7.1功能模块说明

    用户管理模块可以实现按用户账户名称进行用户信息的查询,但不能更改用户信息,员工不能添加新用户的相关信息,这一功能由用户注册来实现,员工可以对一些不良用户进行封号处理,删除其登入权限,使其不能正常买卖,其运行界面如图5.9所示:

    29

    沈阳理工大学学士学位论文

    图5.9用户管理运行界面

    5.7.2功能设计过程:

    左侧设计文本框用于员工输入用户名,布置一个【查询】button控制查询跳转,中间用table显示用户信管信息,每一条用户信息后面都添加删除按钮,用于对有不良记录用户的封号处理,用户信息表下用标签实现分页功能,每页大小为5条记录,点击【1】,【2】,【3】【上一页】,【下一页】等链接向控制台发送控制请求,从而实现分页功能,左侧滚动显示要删除的用户名单。

    关于分页请求处理的主要代码如下: ??

    BuyersCL bc = new BuyersCL();

    int pagecount = 0; ArrayList al = null; try { } try { }

    pagecount =bc.selectPageCount(); // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) {

    al = bc.selectPageContent(pagenow); // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) {

    ??

    30

    沈阳理工大学学士学位论文

    5.8员工管理模块 5.8.1功能模块说明

    HR员工登入后进入员工管理界面,HR员工可以对员工的相关信息进行查询,提供对新进用户进行相关信息的录入功能,HR员工拥有对用户信息维护的权限,可以修改员工的相关信息,对离职员工可以进行相关信息的注销,其运行界面如图5.10所示。

    5.10员工管理运行界面

    5.8.2功能设计过程:

    用div,css实现在【查询员工信息】,【更新员工信息】,【新进员工】三个按钮上的跳转,在该三个部分用文本框显示,添加,查询员工的相关信息。使用table来实现用户信息表,在每一条记录后面添加button按钮,用来删除相关离职人员信息,员工信息表左侧上下滚动显示网站内部新闻,员工信息表下面用标签编写【上一页】,【1】,【2】,【3】,【下一页】,通过与控制器的数据交互实现分页功能。 员工管理主要代码如下: ??

    ArrayList al = new ArrayList();

    Connection c = DBtool.getConn();

    String sql = \; PreparedStatement ps = c.prepareStatement(sql); ps.setInt(1, count); ps.setInt(2, pagesize);

    ResultSet rs = ps.executeQuery();

    //先添加到user对象,再将user对象添加到al集合中,作为返回值 while(rs.next()){

    UsersBean user = new UsersBean(); user.setId(rs.getInt(1));

    31

    沈阳理工大学学士学位论文

    参 考 文 献

    [1]张海蕃.软件工程.第1版.人民邮电出版社,2003年

    [2] 刘宏伟,严妍.快速响应码的识别和解码. [J]计算机工程与设计2005 [3] 张思民.Java语言程序设计.清华大学出版社,2007

    [4] 李钟尉.JAVA从入门到精通.第二版.[M]北京:清华大学出版社,2010 [5] 李兴华.名师讲坛—Java开发实战经典. [M]北京:清华大学出版2009 [6] 梁勇.Java语言程序设计:基础篇. [M]北京:机械工业出版社,2011 [7] 陈刚.Eclipse从入门到精通. [M]北京:清华大学出版社,2007 [8] 汪建文.我国零售企业的商务电子化应用商场现代化.2008 [9] 胡燕.软件工程与标准化.信息技术与标准化.2004 [10] 盛仲飙.JSP中数据库访问的性能优化研究.微型电脑应用.2008

    [11] 董纪阳.软件设计中的需求分析.电脑知识与技术.2008

    [12](美)Cay S.Horstmann Gary Cornell 著 陈昊鹏等译 JAVA核心技

    术[M] 机械工业出版社2006.3

    [13] 郭锋 编著 Spring从入门到精通 [M] 清华大学出版社 2006.10 [14] 李刚 编著 疯狂Java讲义(第2版) 电子工业出版社。

    [15]李刚 编著 轻量级JavaEE企业应用实战第3版--Struts2+Spring+Hibernate整合开发

    37

    沈阳理工大学学士学位论文

    附录A

    A.1 英文原文

    an open-source MVC implementation

    This article introduces Struts, a Model-View-Controller implementation that uses servlets and JavaServer Pages (JSP) technology. Struts can help you control change in your Web project and promote specialization. Even if you never implement a system with Struts, you may get some ideas for your future servlets and JSP page implementation. Introduction

    Kids in grade school put HTML pages on the Internet. However, there is a monumental difference between a grade school page and a professionally developed Web site. The page designer (or HTML developer) must understand colors, the customer, product flow, page layout, browser compatibility, image creation, JavaScript, and more. Putting a great looking site together takes a lot of work, and most Java developers are more interested in creating a great looking object interface than a user interface. JavaServer Pages (JSP) technology provides the glue between the page designer and the Java developer.

    If you have worked on a large-scale Web application, you understand the term change. Model-View-Controller (MVC) is a design pattern put together to help control change. MVC decouples interface from business logic and data. Struts is an MVC implementation that uses Servlets 2.2 and JSP 1.1 tags, from the J2EE specifications, as part of the implementation. You may never implement a system with Struts, but looking at Struts may give you some ideas on your future Servlets and JSP implementations. Model-View-Controller (MVC)

    JSP tags solved only part of our problem. We still have issues with validation, flow control, and updating the state of the application. This is where MVC comes to the rescue. MVC helps resolve some of the issues with the single module approach by dividing the problem into three categories: Model

    The model contains the core of the application's functionality. The model encapsulates the state of the application. Sometimes the only functionality it contains is state. It knows nothing about the view or controller. View

    The view provides the presentation of the model. It is the look of the application. The view can access the model getters, but it has no knowledge of the setters. In addition, it knows nothing about the controller. The view should be notified when changes to the model occur.

    38

    沈阳理工大学学士学位论文

    Controller

    The controller reacts to the user input. It creates and sets the model. MVC Model 2

    The Web brought some unique challenges to software developers, most notably the stateless connection between the client and the server. This stateless behavior made it difficult for the model to notify the view of changes. On the Web, the browser has to re-query the server to discover modification to the state of the application.

    Another noticeable change is that the view uses different technology for implementation than the model or controller. Of course, we could use Java (or PERL, C/C++ or what ever) code to generate HTML. There are several disadvantages to that approach:

    Java programmers should develop services, not HTML. Changes to layout would require changes to code.

    Customers of the service should be able to create pages to meet their specific needs.

    The page designer isn't able to have direct involvement in page development. HTML embedded into code is ugly.

    For the Web, the classical form of MVC needed to change. Figure 1 displays the Web adaptation of MVC, also commonly known as MVC Model 2 or MVC 2.

    Figure 1. MVC Model 2

    Struts, an MVC 2 implementation

    Struts is a set of cooperating classes, servlets, and JSP tags that make up a reusable MVC 2 design. This definition implies that Struts is a framework, rather than a library, but Struts also contains an extensive tag library and utility classes that work independently of the framework. Figure 2 displays an overview of Struts.

    39

    沈阳理工大学学士学位论文

    Figure 2. Struts view

    Struts overview Client browser

    An HTTP request from the client browser creates an event. The Web container will respond with an HTTP response. Controller

    The Controller receives the request from the browser, and makes the decision where to send the request. With Struts, the Controller is a command design pattern implemented as a servlet. The struts-config.xml file configures the Controller. Business logic

    The business logic updates the state of the model and helps control the flow of the application. With Struts this is done with an Action class as a thin wrapper to the actual business logic. Model state

    The model represents the state of the application. The business objects update the application state. ActionForm bean represents the Model state at a session or request level, and not at a persistent level. The JSP file reads information from the ActionForm bean using JSP tags. View

    The view is simply a JSP file. There is no flow logic, no business logic, and no model information -- just tags. Tags are one of the things that make Struts unique compared to other frameworks like Velocity. Struts details

    Displayed in Figure 3 is a stripped-down UML diagram of the org.apache.struts.action package. Figure 6 shows the minimal relationships among ActionServlet (Controller), ActionForm (Form State), and Action (Model Wrapper).

    40

    沈阳理工大学学士学位论文

    Figure 3:the relationship between ActionServlet (Controller)、 ActionForm (Form State) and Action (Model Wrapper) The ActionServlet class

    Do you remember the days of function mappings? You would map some input event to a pointer to a function. If you where slick, you would place the configuration information into a file and load the file at run time. Function pointer arrays were the good old days of structured programming in C.

    Life is better now that we have Java technology, XML, J2EE, and all that. The Struts Controller is a servlet that maps events (an event generally being an HTTP post) to classes. And guess what -- the Controller uses a configuration file so you don_t have to hard-code the values. Life changes, but stays the same.

    ActionServlet is the Command part of the MVC implementation and is the core of the Framework. ActionServlet (Command) creates and uses Action, an ActionForm, and ActionForward. As mentioned earlier, the struts-config.xml file configures the Command. During the creation of the Web project, Action and ActionForm are extended to solve the specific problem space. The file struts-config.xml instructs ActionServlet on how to use the extended classes. There are several advantages to this approach:

    The entire logical flow of the application is in a hierarchical text file. This makes it easier to view and understand, especially with large applications. The page designer does not have to wade through Java code to understand the flow of the application.

    The Java developer does not need to recompile code when making flow changes.

    Command functionality can be added by extending ActionServlet. The ActionForm class

    ActionForm maintains the session state for the Web application. ActionForm is an abstract class that is sub-classed for each input form model. When I say input form model, I am saying ActionForm represents a general concept of data that is set or updated by a HTML form. For instance, you may have a UserActionForm that is set by an HTML Form. The Struts framework will:

    41

    沈阳理工大学学士学位论文

    Check to see if a UserActionForm exists; if not, it will create an instance of the class.

    Struts will set the state of the UserActionForm using corresponding fields from the HttpServletRequest. No more dreadful request.getParameter() calls. For instance, the Struts framework will take fname from request stream and call UserActionForm.setFname().

    The Struts framework updates the state of the UserActionForm before passing it to the business wrapper UserAction.

    Before passing it to the Action class, Struts will also conduct form state validation by calling the validation() method on UserActionForm.Note: This is not always wise to do. There might be ways of using UserActionForm in other pages or business objects, where the validation might be different. Validation of the state might be better in the UserAction class.

    The UserActionForm can be maintained at a session level. Notes:

    The struts-config.xml file controls which HTML form request maps to which ActionForm.

    Multiple requests can be mapped UserActionForm.

    UserActionForm can be mapped over multiple pages for things such as wizards.

    The Action class

    The Action class is a wrapper around the business logic. The purpose of Action class is to translate the HttpServletRequest to the business logic. To use Action, subclass and overwrite the process() method.

    The ActionServlet (Command) passes the parameterized classes to ActionForm using the perform() method. Again, no more dreadful request.getParameter() calls. By the time the event gets here, the input form data (or HTML form data) has already been translated out of the request stream and into an ActionForm class.

    Note: \thin\when extending the Action class. The Action class should control the flow and not the logic of the application. By placing the business logic in a separate package or EJB, we allow flexibility and reuse.

    Another way of thinking about Action class is as the Adapter design pattern. The purpose of the Action is to \the interface of a class into another interface the clients expect. Adapter lets classes work together that couldn_t otherwise because of incompatibility interface\(from Design Patterns - Elements of Reusable OO Software by Gof). The client in this instance is the ActionServlet that knows nothing about our specific business class interface. Therefore, Struts provides a business interface it does understand, Action. By extending the Action, we make our business interface compatible with Struts business interface. (An interesting observation is that Action is a class and not an interface. Action started as an interface and changed into a class over time. Nothing's perfect.)

    42

    沈阳理工大学学士学位论文

    The Error classes

    The UML diagram (Figure 4) also included ActionError and ActionErrors. ActionError encapsulates an individual error message. ActionErrors is a container of ActionError classes that the View can access using tags. ActionErrors is Struts way of keeping up with a list of errors.

    Figure 4:the relationship between Command (ActionServlet) and Model (Action)

    The ActionMapping class

    An incoming event is normally in the form of an HTTP request, which the servlet Container turns into an HttpServletRequest. The Controller looks at the incoming event and dispatches the request to an Action class. The struts-config.xml determines what Action class the Controller calls. The struts-config.xml configuration information is translated into a set of ActionMapping, which are put into container of ActionMappings. (If you have not noticed it, classes that end with s are containers)

    The ActionMapping contains the knowledge of how a specific event maps to specific Actions. The ActionServlet (Command) passes the ActionMapping to the Action class via the perform() method. This allows Action to access the information to control flow.

    43

    沈阳理工大学学士学位论文

    A.1 中文翻译

    MVC 的一种开放源码实现

    本文介绍Struts,它是使用 servlet 和 JavaServer Pages 技术的一种 Model-View-Controller 实现。Struts 可帮助您控制 Web 项目中的变化并提高专业化水平。尽管您可能永远不会用 Struts 实现一个系统,但您可以将其中的一些思想用于您以后的 servlet 和 JSP 网页的实现中。

    简介

    小学生也可以在因特网上发布 HTML 网页。但是,小学生的网页和专业开发的网站有质的区别。网页设计人员(或者 HTML 开发人员)必须理解颜色、用户、生产流程、网页布局、浏览器兼容性、图像创建和 JavaScript 等等。设计漂亮的网站需要做大量的工作,大多数 Java 开发人员更注重创建优美的对象接口,而不是用户界面。JavaServer Pages (JSP) 技术为网页设计人员和 Java 开发人员提供了一种联系钮带。

    如果您开发过大型 Web 应用程序,您就理解 变化 这个词的含义。“模型-视图-控制器”(MVC) 就是用来帮助您控制变化的一种设计模式。MVC 减弱了业务逻辑接口和数据接口之间的耦合。Struts 是一种 MVC 实现,它将 Servlet 2.2 和 JSP 1.1 标记(属于 J2EE 规范)用作实现的一部分。尽管您可能永远不会用 Struts 实现一个系统,但了解一下 Struts 或许使您能将其中的一些思想用于您以后的 Servlet 的 JSP 实现中。

    模型-视图-控制器 (MVC)

    JSP 标记只解决了部分问题。我们还得处理验证、流程控制和更新应用程序的状态等问题。这正是 MVC 发挥作用的地方。MVC 通过将问题分为三个类别来帮助解决单一模块方法所遇到的某些问题:

    Model(模型)

    模型包含应用程序的核心功能。模型封装了应用程序的状态。有时它包含的唯一功能就是状态。它对视图或控制器一无所知。

    View(视图)

    视图提供模型的表示。它是应用程序的 外观。视图可以访问模型的读方法,但不能访问写方法。此外,它对控制器一无所知。当更改模型时,视图应得到通知。

    Controller(控制器)

    控制器对用户的输入作出反应。它创建并设置模型。

    44

    沈阳理工大学学士学位论文

    MVC Model 2

    Web 向软件开发人员提出了一些特有的挑战,最明显的就是客户机和服务器的无状态连接。这种无状态行为使得模型很难将更改通知视图。在 Web 上,为了发现对应用程序状态的修改,浏览器必须重新查询服务器。

    另一个重大变化是实现视图所用的技术与实现模型或控制器的技术不同。当然,我们可以使用 Java(或者 PERL、C/C++ 或别的语言)代码生成 HTML。这种方法有几个缺点:

    Java 程序员应该开发服务,而不是 HTML。 更改布局时需要更改代码。

    服务的用户应该能够创建网页来满足它们的特定需要。 网页设计人员不能直接参与网页开发。 嵌在代码中的 HTML 很难看。

    对于 Web,需要修改标准的 MVC 形式。图1显示了 MVC 的 Web 改写版,通常也称为 MVC Model 2 或 MVC 2。

    图1. MVC Model 2

    Struts,MVC 2 的一种实现

    Struts 是一组相互协作的类、servlet 和 JSP 标记,它们组成一个可重用的 MVC 2 设计。这个定义表示 Struts 是一个框架,而不是一个库,但 Struts 也包含了丰富的标记库和独立于该框架工作的实用程序类。图2显示了 Struts 的一个概览。

    图2. Struts 概览

    Struts 概览

    45

    沈阳理工大学学士学位论文

    Client browser(客户浏览器)

    来自客户浏览器的每个 HTTP 请求创建一个事件。Web 容器将用一个 HTTP 响应作出响应。

    Controller(控制器)

    控制器接收来自浏览器的请求,并决定将这个请求发往何处。就 Struts 而言,控制器是以 servlet 实现的一个命令设计模式。 struts-config.xml 文件配置控制器。 业务逻辑

    业务逻辑更新模型的状态,并帮助控制应用程序的流程。就 Struts 而言,这是通过作为实际业务逻辑“瘦”包装的 Action 类完成的。 Model(模型)的状态 模型表示应用程序的状态。业务对象更新应用程序的状态。ActionForm bean 在会话级或请求级表示模型的状态,而不是在持久级。JSP 文件使用 JSP 标记读取来自 ActionForm bean 的信息。 View(视图)

    视图就是一个 JSP 文件。其中没有流程逻辑,没有业务逻辑,也没有模型信息 -- 只有标记。标记是使 Struts 有别于其他框架(如 Velocity)的因素之一。

    详细分析 Struts

    图3示的是 org.apache.struts.action 包的一个最简 UML 图。图3显示了 ActionServlet (Controller)、 ActionForm (Form State) 和 Action (Model Wrapper) 之间的最简关系。

    图3. Command (ActionServlet) 与 Model (Action & ActionForm) 之间的关系的 UML 图

    ActionServlet 类

    您还记得函数映射的日子吗?在那时,您会将某些输入事件映射到一个函数指针上。如果您对此比较熟悉,您会将配置信息放入一个文件,并在运行时加载这个文件。函数指针数组曾经是用 C 语言进行结构化编程的很好方法。

    现在好多了,我们有了 Java 技术、XML、J2EE,等等。Struts 的控制器

    46

    本文来源:https://www.bwwdw.com/article/qjmx.html

Top