资源描述
襄樊职业技术学院(毕业)论文
相关电子商务之游戏点卡销售系统后台管理设计和实现
专业班级: 计算机应用技术.net1106
学 生: 肖迪
学 号: 11314
指导老师: 尚小刚
教学单位:电子信息工程学院
毕 业 届:
目 录
引言 3
1 设计介绍 3
1.1 设计目标 3
1.2 设计工具介绍 3
1.3 设计特点 5
1.4 JAVA语言特点 6
2 需求分析 7
3 数据库设计 8
3.1数据库概念 8
3.2 数据库表设计 9
4 后台页面设计 11
4.1 登录页面 11
4.2 会员管理页面 15
4.3 会员升级页面 17
4.4订单查询 25
4.5卡片类型管理 28
4.6游戏点卡分类查询 29
4.7充值管理 36
4.8Basedao写法 37
5 设计总结评价 43
5.1 设计中问题及处理 43
5.2 设计中收获和体会 43
6 参考文件 44
引言
现在社会发展脚步是越来越快,伴随知识经济到来、经济多元化和市场发展,对中国各个产业发展也带来了新挑战。跨入二十一世纪,新科技日新月异,世界经济趋于一体化,全球文化差异逐步缩小。中国改革开放促进了经济发展,经济发展又加速了市场竞争,市场竞争进而促进了网络进步。社会对网络从认知到认可,网络也经历了萌芽、发展、成熟、壮大过程。在网络交易越来越普遍今天,更需要有部分网络交易平台来满足大家网上购物需求。
1 设计介绍
1.1 设计目标
网络购物已经伴随Internet飞速发展而得到越来越多应用。传统面对面现金交易已经远远不能满足大家现代化生活需要,尤其是卡片类商品,大家往往要为了简单卡号和密码跑一趟商店。这些全部给大家生活带来了很大不便。为了愈加好适应该代社会大家购物需要,为了提升交易效率,节省大家宝贵时间,我们开发了这套稳定可靠、操作方便、安全有效游戏点卡在线销售系统,后台管理关键包含:后台登录、后台主页面、会员账号充值、会员升级标准、会员管理、卡片类别管理、订单查询、销售查询、库存查询、公告管理。
1.2 设计工具介绍
在此次系统制作中,我关键使用了MyEclipse 8.5为开发平台,Microsoft SqlServer为后台数据库。
MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对EclipseIDE扩展,利用它我们能够在数据库和JavaEE开发、公布和应用程序服务器整合方面极大提升工作效率。它是功效丰富JavaEE集成开发环境,包含了完备编码、调试、测试和公布功效,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,HibernateMicrosoft.
SQL Server 出现在微软数据平台愿景上是因为它使得企业能够运行她们最关键任务应用程序,同时降低了管理数据基础设施和发送观察和信息给全部用户成本。
这个平台有以下特点:
· 可信任——使得企业能够以很高安全性、可靠性和可扩展性来运行她们最关键任务应用程序。
· 高效——使得企业能够降低开发和管理她们数据基础设施时间和成本。
· 智能——提供了一个全方面平台,能够在你用户需要时候给她发送观察和信息。
作为微软正在努力降低企业总成本所作工作一部分,SQL Server 推出了陈说式管理架构(DMF),它是一个用于SQL Server数据库引擎新基于策略管理框架。陈说式管理提供了以下优点:
· 遵从系统配置政策
· 监控和预防经过创建不符合配置政策来改变系统
· 经过简化管理工作来降低企业总成本
· 使用SQL Server 管理套件查找遵从性问题
DMF是一个基于政策用于管理一个或多个SQL Server 实例系统。要使用DMF,SQL Server政策管理员使用SQL Server 管理套件创建政策,这些政策管理服务器上实体,比如SQL Server实例、数据库、和其它SQL Server对象。DMF由三个组件组成:政策管理、创建政策政策管理员,和显式管理。管理员选择一个或多个要管理对象,并显式检验这些对象是否遵守指定政策,或显式地使这些对象遵守某个政策。
自动管理
政策管理员使用下面实施模式之一,使政策自动实施:
· 强制——使用DDL触发器阻止违反政策操作
· 对改动进行检验——当一个和某个政策相关改动发生时,使用事件通知来评定这个政策
· 检验时间表——使用一个SQL Server Agent 工作定时评定一个政策
SQL Server 是一个重大产品版本,它推出了很多新特征和关键改善,使得它成为至今为止最强大和最全方面SQL Server版本。这篇文章具体介绍了Microsoft SQL Server 中新特征、优点和功效…… 在现今数据世界里,企业要取得成功和不停发展,她们需要定位关键数据趋势愿景。微软这个数据平台愿景帮助企业满足这些数据爆炸和下一代数据驱动应用程序需求。微软将继续投入和发展以下关键领域来支持她们数据平台愿景:关键任务企业数据平台、动态开发、关系数据和商业智能。
1.3 设计特点
MVC介绍
MVC设计模式
该项目采取mvc设计模式,MVC(Model/View/Controller)模式是国外用得比较多一个设计模式,好象最早是在Smaltalk中出现。MVC包含三类对象。Model是应用对象,View是它在屏幕上表示,Controller定义用户界面对用户输入响应方法。 模型-视图-控制器(MVC)是80年代Smalltalk-80出现一个软件设计模式,现在已经被广泛使用。
1、模型(Model) 模型是应用程序主体部分。模型表示业务数据,或业务逻辑.
2、视图(View) 视图是应用程序中用户界面相关部分,是用户看到并和之交互界面。
3、控制器(controller) 控制器工作就是依据用户输入,控制用户界面数据显示和更新model对象状态。 MVC 式出现不仅实现了功效模块和显示模块分离,同时它还提升了应用系统可维护性、可扩展性、可移植性和组件可复用性 早期程序中,假如不注意对数功效和显示解耦合,常常会造成程序复杂及难以维护。很多VB,Delphi等RAD程序全部有这种问题。甚至现在C#,Java有时候也会出现把业务逻辑写在显示模块中现象 管MVC设计模式很早就提出,但在Web项目标开发中引入MVC却是步履维艰。关键原因:一是在早期Web项目标开发中,程序语言和HTML分离一直难以实现。CGI程序以字符串输出形式动态地生成HTML内容。以后伴随脚本语言出现,前面方法又被倒了过来,改成将脚本语言书写程序嵌入在HTML内容中。这两种方法有一个相同不足之处即它们总是无法将程序语言和HTML分离。二是脚本语言功效相对较弱,缺乏支持MVC设计模式部分必需技术基础。直到基于J2EEJSP Model 2问世时才得以改观。它用JSP技术实现视图功效,用Servlet技术实现控制器功效,用JavaBean技术实现模型功效 JSP Model 1 和 JSP Model 2 SUN在JSP出现早期制订了两种规范,称为Model1和Model2。即使Model2在一定程度上实现了MVC,不过它应用用并不尽如人意 JSP Model 1 JSP Model 2 model2 轻易使系统出现多个Controller,而且对页面导航处理比较复杂 有些人认为model2仍不够好,于是Craig R. McClanahan 5月提交了一个WEB framework给Java Community.这就是以后Struts. 7月,Struts1.0,正式公布。该项目也成为了Apache Jakarta子项目之一 Struts 质上就是在Model2基础上实现一个MVC架构。它只有一个中心控制器,她采取XML定制转向URL。采取Action来处理逻辑
1.4 JAVA语言特点
Java是一个简单、面向对象、分布式、健壮、安全、结构中立、可移植、性能很优异、多线程、动态语言。
一、简单
Java风格类似于C++,而且摒弃了C++中轻易引发程序错误地方,如指针和内存管理。 另外Java提供了丰富类库。
二、面向对象
面向对象能够说是Java最关键特征。Java语言设计完全是面向对象。Java支持静态和动态风格代码继承及重用。
三、分布式
Java包含一个支持HTTP和FTP等基于TCP/IP协议子库。所以,Java应用程序可凭借URL打开并访问网络上对象,其访问方法和访问当地文件系统几乎完全相同。
四、健壮
Java致力于检验程序在编译和运行时错误。Java自己操纵内存降低了内存犯错可能性。Java提供Null指针检测数组边界、检测异常出口、字节代码校验。
五、安全
Java安全性可从两个方面得到确保。首先,在Java语言里,像指针和释放内存等C++功效被删除,避免了非法内存操作。其次,当Java用来创建浏览器时,语言功效和浏览器本身提供功效结合起来,使它更安全。
六、结构中立
为了建立Java作为网络一个整体,Java将它程序编译成一个结构中立中间文件格式。只要有Java运行系统机器全部能实施这种中间代码。Java源程序被编译成一个高层次和机器无关byte-code格式语言,这种语言被设计在虚拟机上运行,由机器相关运行调试器实现实施。
七、可移植
Java可移植性一直是Java程序设计师们精神指标,也是Java之所以能够受到程序设计师们喜爱原因之一,最大功臣就是JVM技术。JAVA编译器产生目标代码(J-Code) 是针对一个并不存在CPU--JAVA虚拟机(JAVA Virtual Machine),而不是某一实际CPU。JAVA虚拟机能掩盖不一样CPU之间差异,使J-Code能运行于任何含有JAVA虚拟机机器上。
八、高性能
Java能够在运行时直接将目标代码翻译成机器指令。Sun用直接解释器一秒钟内可调用300,000个过程。翻译目标代码速度和C/C++性能没什么区分。
九、多线程
Java支持多线程,多线程功效使得在一个程序里可同时实施多个小任务。线程,有时也称小进程,是一个大进程里分出来小独立进程。
十、动态
Java动态特征是其面向对象设计方法发展。它许可程序动态地装入运行过程中所需要类,这是C++语言进行面向对象程序设计所无法实现。Java编译器不是将对实例变量和组员函数引用编译为数值引用,而是将符号引用信息在字节码中保留下传输给解释器,再由解释器在完成动态连接类后,将符号引用信息转换为数值偏移量。
2 需求分析
该系统要求实现管理员后台管理和会员购置卡片功效。
会员操作包含:会员注册、修改个人信息、汇款、投诉、购置物品、查看个人汇款信息和购物信息等。
管理员后台管理包含:修改个人资料、新会员和会员汇款审核、用户管理、角色管理、卡片类别管理、游戏卡管理、汇款审核、公告管理等。
图2-1功效关系图
3 数据库设计
3.1数据库概念
当大家从不一样角度来描述这一概念时就有不一样定义。比如,称数据库是一个“统计保留系统”(该定义强调了数据库是若干统计集合)。又如称数据库是“大家为处理特定任务,以一定组织方法存放在一起相关数据集合”(该定义侧重于数据组织)。更有甚者称数据库是“一个数据仓库”。当然,这种说法即使形象,但并不严谨。严格地说,数据库是“根据数据结构来组织、存放和管理数据仓库”。
本系统将使用一直以来使用全部最为广泛关系模型作为数据库建设依据。在用户见解下,关系模型中数据逻辑结构是一张二维表,一个关系对应通常说一张表,而且关系每一个分量必需是一个不可分数据项。而一个基于关系模型数据库则是由若干个二维表组成。对于部分大型和中型数据库,如Oracle,SQL Server 等全部属于关系型数据库,同时它们所带有数据库管理工具是其它小型数据库所没有,而同时这些工具又为管理员工作节省了很多时间和财力。
本系统采取是Sql Server作为数据库。
3.2 数据库表设计
在数据库中建立以下表,表中包含各个字段、数据类型等图所表示。
图3-1 表card数据类型
图3-2 表CardType数据类型
图3-3 表MemberType数据类型
图3-4 表News数据类型
图3-5 表OrderDetail数据类型
图3-6 表Orders数据类型
图3-6 表UserInfo数据类型
4 后台页面设计
4.1 登录页面
管理员登陆首页要求:只有当用户名、密码和验证码全部正确时才能经过验证。
图4-1登陆界面
管理员登陆代码:
代码以下:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"/>
<title>后台管理员登录</title>
<meta http-equiv="pragma" content="no-cache"/>
<meta http-equiv="cache-control" content="no-cache"/>
<meta http-equiv="expires" content="0"/>
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3"/>
<meta http-equiv="description" content="This is my page"/>
<link type="text/css" rel="stylesheet" href="back/backcss/login.css" />
<script language="javascript" src="back/backjs/login.js"></script>
</head>
<body onload="showMsg('${msg }')">
<!--<noscript><div class="noscript">提醒:您浏览器不支持或严禁了网页脚本,无法正常注册。 <a href="#" target="_blank">解除脚本限制»</a></div></noscript>-->
<div id="container">
<div id="top">
<div class="logo" style="position:absolute; left:15px; top:2px;">
<img src="images/logo.gif" />
</div>
<div class="tmenu">
<span>【<a href="index.jsp">返回首页</a>】
</span>
</div>
</div>
<div id="main" style="height:370px;">
<div id="main_right">
<h1>
<b>后台管理员</b>
</h1>
<form method="post" action="AdminLoginBackServlet" onsubmit="return checkForm();">
<center><p>
<label>
用户名称:
</label>
<input type="text" id="userId" name="userId" />
</p>
<p>
<label>
登录密码:
</label>
<input type="password" id="pwd" name="pwd" />
</p>
<p>
<input type="submit" id="submit" class="btn" value="登录"
onmouseover="this.className='btnOver'"
onmouseout="this.className='btnOut'" />
<input type="reset" id="reset" class="btn" value="重置"
onmouseover="this.className='btnOver'"
onmouseout="this.className='btnOut'" />
</p></center>
</form>
</div>
<div style="clear: both"></div>
</div>
<div id="footer">
<div>
<a href="#" target="_blank">无偿条款</a><span>|</span>
<a href="#" target="_blank">隐私保护</a><span>|</span>
<a href="#" target="_blank">资讯热点</a><span>|</span>
<a href="#" target="_blank">联络我们</a><span>|</span>
<a href="#" target="_blank">企业介绍</a><span>|</span>
<a href="#" target="_blank">批发方案</a><span>|</span>
<a href="#" target="_blank">配送方法</a>
</div>
</div>
</div>
</body>
</html>
4.2 会员管理页面
图4-2会员管理界面
会员管理Servlet代码以下:
package com.scce.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.scce.services.UserBean;
public class AssociatorManagementServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
String md = request.getParameter("mode");
int mode = -1;
if (md != null) {
mode = Integer.parseInt(request.getParameter("mode"));
}
String sql = "select * from userInfo where 1=1 ";
if (mode == 1) {
sql += " and userState=1";
} else if (mode == 0) {
sql += " and userState=0";
}
UserBean userBean = new UserBean();
List listUsers = userBean.getAllUsers(sql);
request.setAttribute("listUsers", listUsers);
request.getRequestDispatcher("back/associatorManagement.jsp").forward(
request, response);
out.flush();
out.close();
}
}
4.3 会员升级页面
图4-3会员升级管理界面
代码以下:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib uri="" prefix="c"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>" />
<title>My JSP 'setAssociatorScore.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3" />
<meta http-equiv="description" content="This is my page" />
<link type="text/css" rel="stylesheet" href="css/admin.css" />
<link rel="stylesheet" type="text/css"
href="back/backcss/setAssociatorScore.css" />
</head>
<body>
<div id="container">
<div id="top">
<div class="logo">
<img src="images/logo.gif" />
</div>
</div>
<div id="main">
<div class="main_left">
<div class="main_left_top">
<div class="main_le_title">
系统管理中心
</div>
<div class="main_le_content"></div>
<div class="main_le_bt"></div>
<div style="clear: both"></div>
</div>
<div class="main_left_bot">
<div class="main_le_content"></div>
<div class="main_le_bt"></div>
<div style="clear: both"></div>
</div>
<div id="con">
<p>
请注意保管系统账号安全,不要轻易泄露系统账号信息!
</p>
<h1>
会员账号管理
</h1>
<ul>
<li>
<a href="SkipUserServlet">会员账号充值</a>
</li>
<li>
<a href="back/setAssociatorScore.jsp">会员升级标准</a>
</li>
<li>
<a href="AssociatorManagementServlet">会员管理</a>
</li>
</ul>
<h1>
卡片管理
</h1>
<ul>
<li>
<a href="SkipCardTypeServlet">卡片类型管理</a>
</li>
<li>
<a href="SkipCardServlet">卡片管理</a>
</li>
</ul>
<h1>
订单管理
</h1>
<ul>
<li>
<a href="SkipOrderServlet">订单查询</a>
</li>
</ul>
<h1>
销售统计
</h1>
<ul>
<li>
<a href="SkipSaleServlet">销售查询</a>
</li>
<li>
<a href="SkipStockServlet">库存情况</a>
</li>
</ul>
<h1>
系统管理
</h1>
<ul>
<li>
<a href="back/newsAdd.jsp">添加公告</a>
</li>
<li>
<a href="SkipNewsServlet">公告管理</a>
</li>
<li>
<a href="javascript:window.close();">退出</a>
</li>
</ul>
</div>
</div>
<div class="main_right">
<div id="main_right_title">
<div>
目前位置:
<span id="pos">设置会员标准</span>位置
</div>
</div>
<div id="main_right_con">
<div id="contain">
<form action="SetVipServlet" method="post" name="form1">
<center>
<div id="title">
设置会员标准
</div>
</center>
<br />
<table id="content" border="0" align="center">
<tr><jsp:useBean id="memberBean"
class="com.scce.services.MemberTypeBean"></jsp:useBean>
<td>
升级VIP会员积分标准
</td>
<td align="right">
<input type="text" name="UpgradeStandar"
value="${memberBean.memberType[0].upgradeStandar }" />
</td>
</tr>
<tr>
<td align="right">
一般会员打折优惠
</td>
<td>
<input type="text" name="CommonAbate"
value="${memberBean.memberType[0].discount }" />
</td>
</tr>
<tr>
<td align="right">
VIP会员打折优惠
</td>
<td>
<input type="text" name="VIPAbate"
value="${memberBean.memberType[1].discount }" />
</td>
</tr>
<tr height="60px">
<td colspan="2" align="center">
<input type="submit" name="setup" class="picBtn" value="设置" />
<input type="reset" name="reset1" class="picBtn" value="重置" />
</td>
</tr>
</table>
</form>
</div>
</div>
</div>
<div style="clear: both"></div>
</div>
<div id="footer">
<div>
<a href="#" target="_blank">无偿条款</a><span>|</span>
<a href="#" target="_blank">隐私保护</a><span>|</span>
<a href="#" target="_blank">资讯热点</a><span>|</span>
<a href="#" target="_blank">联络我们</a><span>|</span>
<a href="#" target="_blank">企业介绍</a><span>|</span>
<a href="#" target="_blank">批发方案</a><span>|</span>
<a href="#" target="_blank">配送方法</a>
</div>
</div>
</div>
</body>
</html>
4.4
4.4订单查询
图4-4订单查询界面
代码以下:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib uri="" prefix="c"%>
<%@ taglib uri="" prefix="fmt"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>" />
<title>订单跟踪</title>
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="
展开阅读全文