基于java酒水销售系统(含源文件)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

本科毕业论文(设计)
题目基于ssh,jsp技术
网上订货系统的设计与开发
院系计算机科学与技术
专业计算机科学与技术
姓名---------------------
学号0911112219
学习年限 09年9月至 13年7 月
指导教师XXX 职称教授
申请学位学士学位
2013年5 月2 日
基于SSH,JSP技术网上订货系统的设计与开发
学生姓名:XXX 指导老师:XXX
摘要:随着电子商务的不断发展,企业网络化已经成为一种时尚,而中小企业如何利用有限的资金搭建自己的电子商务网站显得尤为重要。

本文以JSP技术开发的“网上订货系统”为例,介绍了设计构思、实现、数据安全等内容。

同时也实现了利用计算机来进行销售的行为,克服了传统销售的局限,为用户和商家提供了最高的效率和最便捷的手段。

在设计中相比原来请求数据刷新页面这里用ajax做了处理,使得页面请求到的数据不需要刷新整个页面接受庞大的数据量,将数据请求作为json字符串,获得相应的数据;使用新的技术ajax技术不需要刷新整个页面实现动态的分页浏览商品,避免的过去请求数据需要加载整个页面的问题。

关键词:JSP;网上订货;Mysql 5.5;Tomcat
Online ordering system
Author:XXX Tutor:QIN XXX
ABSTRACT:With the constant development of the e-commerce, enterprise network has become a kind of fashion, and it is particularly important to build their own e-commerce websites with the limited funds. This paper will take the the Online ordering system explored by the JSP technique as an example to introduce the contents of the conception of design, the realization, the safety of the statistics and so on. It also realizes the on line sales at the same time. It provides the highest efficiency and convenient means for the users.
Compared to the original request data refresh the page where the use of Ajax to do the processing in the design, which makes the page request to the data does not need to refresh the whole page to accept the huge amount of data, the data request as an JSON string, obtain the corresponding data; Using the new Ajax technology does not require dynamic paging browse commodity to refresh the whole page. To avoid the previous request data need to load the entire page problem.
KEYWORDS:JSP;Online ordering;Mysql 5.5;Tomcat
目录
1 引言 (1)
1.1 背景 (1)
1.2 可行性分析 (2)
2 需求分析 (3)
2.1 系统需求 (3)
3 总体设计 (5)
3.1 系统工作原理图 (5)
3.2 模块设计 (7)
4 界面设计 (9)
4.1 用户图形界面的设计 (9)
4.2 管理员图形界面的设计 (9)
5 系统实现 (13)
5.1 组件的编写 (13)
5.2 部分源代码摘录及分析 (14)
6 系统运行评估 (15)
6.1 测试指导思想及方案 (16)
6.2 部分功能测试结果 (16)
6.3 技术难点 (17)
7 结束语 (18)
致谢 (19)
参考文献 (20)
1 引言
随着电子商务的不断发展,企业网络化已经成为一种时尚,而中小企业如何利用有限的资金搭建自己的电子商务网站显得尤为重要。

本文以JSP技术开发的“网上订货网站”为例,介绍了设计构思、实现、数据安全等内容。

同时也实现了利用计算机来进行销售的行为,克服了传统销售的局限,为用户和商家提供了最高的效率和最便捷的手段。

对购物车进行了封装。

大大的提高的了代码的模块性以及可移植性。

要满足消费者个性化的要求,提供专业化的产品线和专业水准的服务至关重要。

今后若干年内我国网上购物人口仍将是以中高收入水平的人群为主。

他们购买力强受教育程度较高,生活的个性化需求比较强烈。

特别是对那些技术含量、知识含量较高的商品和服务,人们一般希望在购买前能够得到一定的对比。

因此,能够提供一条龙服务的“垂直型网站”以及某一类产品和服务的“专业网站”发展潜力更大。

电子商务是在Internet上进行的商务活动,即利用计算机网络进行产品、服务、信息等的买卖。

在线订货系统是一个典型的电子商务网站。

它正是利用了电子信息技术,以互联网为媒介进行商务活动的。

1.1 背景
近年来,随着网络技术特别是Internet技术的普及和发展,网络运行成本和服务价格的下降,越来越多的人开始接受和主动选择电子商务这种商务形式,从客观上为在线销售系统的发展奠定了良好的基础。

网上订货系统就是这其中的一员。

网上开店比传统实体店成本低,并且拥有更加广阔的客户群,高速发展的网络技术也为这些企业简化了销售管理工作。

使之比传统销售更加具有市场竞争力。

中国电子商务发展现状:
当然要说现状的话,那么需要结合目前一些时事来探讨以及哪一个方面的问题!如果说这个行业的现状,恐怕一般人是难以说全的!但总的来说:
(1)参差不齐的中国电子商务,既有像淘宝这类成熟的大型电子商务企业,也有那些还在生命线上起跑的小企业。

(2)竞争日益激烈,面对同一行业,同一模式,同一产品,带来的将会是竞争更加激烈的市场。

(3)中国电子商务发展还处于初级阶段,前一阶段还是萌芽阶段,而这个阶段
是初级阶段,大部分熟知的B2B,B2C,C2C等等都是初级阶段的典型代表!那么其它模式正在处于探索时期,例如淘宝最近发起了B2B2C模式,网易丁磊将会有下一步大的举动等等。

(4)一些电子商务底层基础发展较快,支付技术的突破,物流的改善,人才的发展,法制法规的健全,这些都给现阶段电子商务发展奠定了基石。

(5)电子商务发展到今天,当人们提到一件事情总要说“网上查查”,当人们要买东西都要说“网上购物”的时候,我们的电商时代才已经开始,全民电子商务已经不再是传说。

1.2 可行性分析
网上购物是一种具有交互功能的商业信息系统。

本系统的设计与开发实现了用户端在线浏览货物信息、开通网上购物车、在线提交订单等功能。

管理员通过本系统可以添加货物及货物分类、管理用户、管理订单、统计销售量等。

与传统销售行为相比,在线订货系统为用户和商家都提供了最高的效率和最便捷的手段。

经济可行性分析:
缩短了供货周期,压缩了库存,裁减了人员,于是就可以依据缩短时间的天数和库存物资的减少,及裁减人员的工资等,使原材料和劳动力资源得到更合理的利用
从而提高了大多数信息化建设项目降低了不少成本,避免了多消耗,减少多管理费用的支出等等。

使管理人员决策及时、准确、更科学化,使企业上下级的信息流通结构更趋合理
提高企业信誉与知名度,扩大影响力,增强竞争力,提高了企业售后部门的效率和客户满意度等等。

以上这些方面的效益一般不能通过定量计算得到,具有一定的隐含性质和延迟性,但对于企业的管理以及企业的发展、壮大都具有不可定量的收益。

资本周转速度快,回收期短,风险小,盈利多。

不需要考虑店面的租售情况,没有响应的税收。

法律可行性分析:
考虑到可能使用到的软件产品的版权问题,软件服务器所使用的软件,应该尽量使用正版软件。

如果正版软件价格高得难以接受,可以采用一些能满足系统运行的免费软件来替代。

开发阶段可以使用试用版软件来替代,但正式发布时建议操作系统采用正版软件。

该平台是自主开发设计,因此不会构成侵权,在法律上是可行的。

更有利于安全的访问。

2 需求分析
2.1 系统需求
2.1.1 硬件配置(最低配置)
CPU:Pentium 1.8GHz以上
内存:512MB
2.1.2 运行平台
操作系统:Microsoft Windows7
浏览器:GooleChrom ie7.0
开发工具:Myeclipse6.5
后台数据系统:Mysql 5.5
外部数据包:struts2.jar ,struts2-json-plugin-2.1.8.1.jar ,xwork-core-2.1.6,commons-io-1.3.2.jar,mysql-connector-java-5.1.7-bin.jar
2.2 功能需求
a.网站注册、登陆注册信息为邮箱,密码,验证码三项;登陆信息为邮箱,密码两项;用户注册和登陆在同一页面;网站登陆后在整个系统中获得session各个栏目中通用。

b.购买
用户把选中的商品放到购物车中,最后一起结账。

可连续购买或删除已经放到购物车中的商品,可修改购买商品的数量,最后确认购买商品的信息和金额。

c.订单
订单式用户收取产品的凭证,用户在购买时提交购物单,用户可以查询订单的详细情况,主要包括订单状态、商品列表、费用总计、收货人信息等。

d.用户中心如图2-1
图2-1 用户中心
基于开发背景的分析,该系统功能结构设计图如图2-2所示。

图2-2 系统功能结构设计图
3 总体设计
3.1 系统工作原理图
系统采用三层结构,简单的来说,用户界面层通过统一的接口向业务层发送请求,业务层则按自己的逻辑规则将请求处理之后进行数据库操作,然后将数据库返回的数据封装成类的形式返回给用户界面层。

这样用户界面层甚至可以不知道数据库的结构,它只要维护与业务层之间的接口即可。

这种方式在一定程度上增加了数据库的安全性,同时也降低了对用户界面层开发人员的要求,因为它根本不需要进行任何数据库操作。

三层架构的工作原理图如图3-1所示。

用户界面业务处理层数据存储层
图3-1 三层架构工作原理
本系统采用了B/S(浏览器/服务器)架构进行设计。

前台界面由Dreamweaver 设计,MyEclipse开发中间应用程序层,用来连接前端与后台数据库层,进行数据交换及业务处理。

1:选择商品
用户进入CX网上商城,挑选商品,确认购买后提交订单。

2: 生成订单
1)生成订单。

2) 买家看中商品后,放进自己的购物车中。

3) 买家记录购买过的用户地址等性信息,以便下次同样的用户登录重新填写产生数据冗余。

4) 生成订单时买家需首次填写的信息
填写购买数量和运送方式,确认收货地址、备注等信息。

3: 订单确认
卖家确认商品订单信息,并按照协商结果修改价格和物流费用。

用户对购买商品的流程如图3-2所示。

图3-2 用户功能结构设计图
前端用户登录进入本系统后可操作的全部流程,实现网上订货生成订单,提交订单等操作,具体如下:
登录用户网上订货流程如图3-3所示。

图3-3 用户订货流程图
3.2 模块设计
3.2.1 操作界面模块
(1)用户界面
主要提供了用户注册、登陆、会员登记查询等用户信息查询功能,在线购买界面(包括货物信息等)、销量排行等货物信息查询功能的界面和购物车、订单信息等在线购买功能的界面。

(2)管理界面
主要实现的功能有:提供货物管理功能(包括现有货物的管理和新货物的添加管理)、用户管理功能、订单管理功能和销售统计功能的界面。

3.2.2 业务处理
包含了在线货物销售系统的主要业务工作,相当于一个实体店中的核心营业员。

以下用一个营业员所要做的工作来形象的表示系统该模块实现的功能。

(1)货物管理(2)订单管理(3)用户管理(4)销售统计
3.2.3 数据库模块
主要进行数据的录入、更新、检索等工作,相当于传统实体店里认真负责而又分毫不差的库存管理员。

数据关系表如图3-4
图3-1 数据关系表
4 界面设计
为了提高代码的重用性,在线订货系统的界面采用框架形式,即页面头尾部分只需要设计一次。

避免了代码的冗余和软件的负载。

4.1 用户图形界面的设计
(1)用户登录和注册模块设计
为了验证用户是否合法,系统需要用户提供用户名和密码来进行验证,这一功能由用户登陆模块完成。

本模块需要运用session记录当前登录的用户,在登录界面上填写一个表单让用户输入用户名和密码。

提交form表单,对于用户输入的用户名和密码进行加密验证,没有用户就跳转到注册页面,系统在发现错误时,应及时做出错误报告。

4.2 管理员图形界面的设计
(1)管理员登录功能模块设计
为了验证管理员的身份,系统需要进行用户名和密码的验证,与用户图形界面的设计类似,本模块也需要运用session中包含的这个user,设计一个表单让管理员输入用户名和密码。

登录注册界面如图4-1所示:
(2)现有货物管理功能模块设计
在这个模块里,管理员拥有能对现有货物的详细资料进行查看、修改货物名称、删除货物等权限。

对于非登录的用户不能操作购物车中的商品,当没有session用户时候点击时候直接跳转到用的登录界面,只有用户登录了,才能有修改删除购物车中数据的权限。

同样用户的基本信息也是只有在用户得到了所有的权限以后才能访问相应的用
户信息
(3)在线购买功能模块设计
针对用户界面,由于“货物列表”和用户导航条等部分是只有用户界面可以看到的,所以将这两部分设计成一个新的框架形式,提高复用性。

在本模块中用户可以浏览现有货物、用不同的方法查找货物(分类查询、关键字查询)、查看货物详细资料把货物放入购物车、转到其他模块等。

用户可以点击自己需要的类别进行相应的操作,
在主页面中有热销售和分类浏览。

还有推荐的商品。

图4-1 用户登录注册界面商品主页页面信息如4-2图。

图4-2 主页面商品展示
(3)购物车功能模块设计
在本模块中,用户可以修改购买数量、删除已经选购的货物、提交购物车(在提交时可以简单附言说明)、清空购物车、继续购买或查询货物、转到其他模块等。

同时也可以将犹豫和失误删除的商品放进删除的列表中,以便用户可以不用回到主页面去寻找直接在购物车中恢复数据。

在这里购物车放进一个list集合中,只能在当前session存在的情况下才能显示。

如图4-3所示。

(4)订单信息功能模块设计
本模块中用户可以看见自己已经提交的所有订单,可以查看订单的详细情况。

确认订单时,系统采用弹出窗口的形式显示相应信息。

记录相应的交易记录,如果有上一次的交易记录,就会用ajax异步请求数据。

不需要重新输入用户的信息。

对于未交易过的订单放进我的记录中,以便用户生成订单。

(5)添加新的商品列表
对于相对应的用户连接一张对应的地址表对应,在一次订单生成的时候就会有相应的选择记录,如果是新的地址就会在地址段多加一个字段。

在这个模块中,要添加一段JavaScript代码,对表单数据的合法性进行验证。

(6)订单管理功能模块设计
管理员可以查看下订单用户的详细资料、查看订单的详细情况并且可以删除订单。

订单管理模块中首先生成Cart类的对象,然后调用该对象的gerOrder()方法,取得当前商店的所有订单,分页显示在页面上,下单用户名提供链接,当管理员在用户名单击某个用户名时,能够弹出新的页面显示该用户的详细资料。

然后为每个订单提供查看订单详细情况和删除订单的链接,当管理员单击“详细情况”链接时能够弹出新的窗口显示订单信息。

当管理员单击“删除”链接时,数据会将存在数据的list 集合中,如果用户不小心删除就能恢复数据,则从数据库删除该订单,如果选择“恢复”,则退回详细订单情况页面。

图4-3 购物车界面
在用户提交购物车中的商品时候生成的生成的订单数据显示在订单列表中。

序号就是作为id的商品数据,订单生成的总价格就是用户在当前的网站需要支付的钱。

具体的显示在页面的商品表中生成的订单显示,如图4-4所示:
图4-4 订单生成界面
5 系统实现
5.1 组件的编写
基于系统功能分析,首先利用Myeclipse新建一个工程,在这个工程里新建一个包,然后在这个包下新建三个包entity、config、util和web。

5.1.1 util包
util包里包含5个类,作用分别为:
(1)DBUtil类:主要负责数据库的连接。

这个类相当于定义了一个数据库连接的池,当需要操作数据库时候就只要用这个DBUtile直接获得一个连接,
(2)DAOUtile类:负责数据访问处理。

DAOUtile类相当于是一个直接对数据库操作,将获得到的数据交还到业务层,以便在V层展示数据。

(3)ValidateCode类:验证码的处理显示到用户界面。

此类生成一个随机的验证码,在登录和用户注册时候防止用户循环的刷新页面,提高了访问的安全性。

(4)ConfigUtil类:从配置文件中读取相应的类,使得软件的耦合度大大的降低。

该类对于以后的代码的二次开发和修改维护时候有很大的好处,让软件的耦合度大大降低,类似于现在的spring中的容器注入。

(5)UUIDUtil类:将密码加密处理。

对于用户信息的一些数据进行数据加密,算法用的MD5算法加密,使得存到用户数据库中的数据是加密的数据。

5.1.2 entity包
这个包中共有6个类,其作用为:
(1)Product类:货物类,时货物实体的抽象。

(2)Wine类:货物分类类,是分类实体的抽象。

(3)order类:订单类,是订单实体的抽象。

(4)Cart类:购物车类,是购物车实体的抽象。

(5)User类:用户类,是用户实体的的抽象。

(6)Category类:分类浏览的类,封装了类别。

5.1.3 config包
(1)struts包:配置struts文件。

相关配置Action的xml文件,用于各个模块MVC数据交互的路径的配置,用于C层的配置,以及一些相关需要的prames 和value。

(2)props包:配置peropertise文件用于读取相关的数据。

1.数据库连接的properties文件以key和value的形式将驱动类,数据库链接和用户密码配置到文件中:
驱动类:DRIVER=com.mysql.jdbc.Driver;
Url路径:URL=jdbc\:mysql\://localhost\:3306/caoxu
用户:USER=root;
用户密码:PASSWORD=123456;
2.还有一个就是配置的是访问诗句库的dao层数据,访问数据库的类。

5.1.4 web包
在系统web包下,共包含了6个类,分别是:
(1)action包:用于跳转页面之间的数据交互。

用于后台数据和页面之间的交互,通过action绑定数据在页面中获取绑定的数据,从而获得页面需要的数据或对象,
(2)interceptor包:拦截非法的用户登陆的包。

拦截非法用户入住本系统进行非法的操作,当不是当前的用户登录时候操作一些非法的操作就会跳转到登录界面。

只有正确的登陆了才能操作自己的相关操作。

5.2 部分源代码摘录及分析
5.2.1 数据库连接
寻找jdbc中的jdbcconfig.properties文件中的键值对找到相应的驱动名,jdbc驱动连接数据库的代码:
static{
try {
ConfigUtil cu = new ConfigUtil(ConfigUtil.JDBC_DONFIG);
DRIVER = cu.getValue("DRIVER");
URL = cu.getValue("URL");
USER = cu.getValue("USER");
PASSWORD = cu.getValue("PASSWORD");
Class.forName(DRIVER);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
public static Connection getConnection() throws Exception{
Connection conn = null;
try {
conn = DriverManager.getConnection(URL,USER,PASSWORD);
} catch (Exception e) {
e.printStackTrace();
throw e;
}
return conn;
}
5.2.2 管理用户登录的编写
为了验证用户的合法性,系统需要用户输入用户名和密码,管理用户的注册由javascript验证来完成。

例如用户输入的用户名格式和用户名的长度通过javascript来验证,用户的注册邮箱验证需要有‘@’之类的标识符,还有验证中文输入还是英文输入。

用户密码的验证。

6 系统运行评估
在线订货系统开发完毕到投入使用之前,需要进行一系列系统集成和确认测试。

软件测试的根本目的应该是找出软件中存在的漏洞和问题,而开发人员往往不容易找出自己的程序中存在的漏洞和问题,所以从理论上讲,系统的测试工作应该由专业测试人员进行。

但鉴于本系统为本科毕业设计作品,所以暂时由开发人员进行测试。

6.1 测试指导思想及方案
针对本系统测试人员是开发者本人这一特点,本系统测试工作的指导思想以白盒测试方法为主,局部辅以黑盒测试方法。

6.2 部分功能测试结果
6.2.1 系统入口测试要点
测试要点:用户名、密码和验证码。

测试路径:用户名,密码,验证码是否为真。

测试结果:为真,进入系统;为假,提示重新输入用户信息。

适用范围:管理员登录、用户登录等。

6.2.2 数据录入测试要点
测试要点:数据录入类型。

测试路径:录入类型是否正确。

测试结果:录入类型正确能写入数据库增加新记录;否则提示重新输入。

当录入数据为数据表中限定的类型时,才能增加新的记录;若录入的数据类型不正确,则无法增加新的记录。

适用范围:添加类别、添加信息。

6.2.3 用户界面窗体设计测试
窗体大小。

大小要合适,控件布局合理。

缩放窗体。

窗体上的控件应随窗体的大小变化而变化。

显示分辨率。

必须在不同的分辨率的情况下测试程序的显示是否正常。

经过测试,发现系统用户界面窗体的大小在大部分台式机和笔记本电脑显示器上效果不一。

后经分析发现,开发使用的笔记本电脑系宽屏设计,因此造成了一般尺寸的台式机显示器显示不正常的现象。

及时修改页面大小可以修正此问题。

其他功能未
发现异常。

6.2.4 文本框的测试
输入正常的字母或数字。

输入超长字符。

例如在“名称”框中输入超过允许边界个数的字符,假设最多20个字符,尝试输入21个字符,检查程序能否正确处理。

输入默认值,空白,空格。

若只允许输入字母,尝试输入数字;反之;尝试输入字母。

利用复制,粘贴等操作强制输入程序不允许的输入数据。

输入特殊字符集,例如,NUL及\n等。

输入超过文本框长度的字符或文本,检查所输入的内容是否正常显示。

输入不符合格式的数据,检查程序是否正常校验,如,程序要求输入年月日格式为yy/mm/dd,实际输入yyyy/mm/dd,程序应该给出错误提示。

经过测试,系统在文本框输入功能中表现正常,在出现异常输入时能够及时报错并提醒用户重新输入。

6.3 技术难点
6.3.1 中文乱码问题
编译MySQL 时,指定了一个默认的字符集,这个字符集是latin1,安装MySQL 时,可以在配置文件(my.ini) 中指定一个默认的的字符集,如果没指定,这个值继承自编译时指定的;
启动mysqld 时,可以在命令行参数中指定一个默认的的字符集,如果没指定,这个值继承自配置文件中的;此时character_set_server 被设定为这个默认的字符集;当创建一个新的数据库时,除非明确指定,这个数据库的字符集被缺省设定为character_set_server;当选定了一个数据库时,character_set_database 被设定为这个数据库默认的字符集;在这个数据库里创建一张表时,表默认的字符集被设定为character_set_database,也就是这个数据库默认的字符集;当在表内设置一栏时,除非明确指定,否则此栏缺省的字符集就是表默认的字符集;
6.3.3 浏览器兼容问题
在同样的页面下换用不同的浏览器显示不同的效果,所谓的浏览器兼容性问题,
是指因为不同的浏览器对同一段代码有不同的解析,造成页面显示效果不统一的情况。

在大多数情况下,我们的需求是,无论用户用什么浏览器来查看我们的网站或者登陆我们的系统,都应该是统一的显示效果。

所以浏览器的兼容性问题是前端开发人员经常会碰到和必须要解决的问题。

例如:Chrome会把div2当成position:absolute,而在IE中却会把他当成poisttion:relative,这样我们在设置中尽量都是块级元素的float为left。

6.3.3 安全性
从安全和信任关系来看,在传统交易过程中,买卖双方是面对面的,因此很容易保证交易过程的安全性和建立起信任关系。

但在电子商务过程中,买卖双方是通过网络来联系的,彼此远隔千山万水,由于英特网既不安全,也不可信,因而建立交易双方的安全和信任关系相当困难。

电子商务交易双方(销售者和消费者)都面临不同的安全威胁。

7 结束语
本系统设计并实现一个在线订货网站的模型。

本网站采用了流行的三层架构,通过将整个系统分为不同的逻辑模块,大大降低了应用程序系统开发和维护的成本,提高了系统模块的复用性,同时使系统的可扩展性大大提高。

由于JSP自身的优点,本网站对系统的要求较低,兼容性很好,为网站的推广使用提供了便利和可能。

相关文档
最新文档