1 水果商品销售网站概述
1.1 课题简介
随着电子商务在当今社会的迅猛发展,水果在线销售已逐渐演变为一种极为便捷的购物方式,日益受到人们的青睐。本系统的设计初衷便是构建一个功能完备、用户体验友好的水果销售平台,致力于为用户提供优质、新鲜水果的在线选购服务,确保他们能够轻松、便捷地挑选到心仪的水果。与此同时,该平台也为管理员提供了一套高效的后台管理系统,助力他们能够精准、有效地对水果分类、水果详细信息、系统公告、用户订单以及用户账户等进行全面管理。
该系统主要由前端用户界面和后端管理系统两大部分组成。前端用户界面是用户与系统进行交互的窗口,用户可以通过该界面轻松地进行水果浏览,查看各类水果的详细信息,包括水果的品种、产地、价格、口感等,从而根据自己的需求和喜好进行选购。此外,用户还可以方便地将心仪的水果添加至购物车,并进行下单操作,整个过程简洁流畅,极大地提升了用户的购物体验。而后端管理系统则是整个平台的核心支撑,管理员可以通过该系统对水果分类进行精细管理,包括添加新的分类、编辑现有分类以及删除不再需要的分类,以确保水果分类的合理性和准确性。同时,管理员还能够对水果信息进行全面掌控,实时更新水果的价格、库存以及图片等信息,保证用户能够获取到最准确的水果资讯。此外,管理员还可以发布和管理系统公告,及时向用户传达重要信息,如促销活动、新品上市等。对于用户订单,管理员能够进行详细的查看和处理,包括安排发货、处理退款等操作,确保每一个订单都能得到妥善处理。最后,管理员还可以对用户账户进行管理,以保障平台的安全和稳定运行。
1.2 设计目的
满足忙碌的城市居民通过网络快速购买新鲜水果的需求,为他们提供极为便捷的购物体验。在快节奏的现代生活中,城市居民往往面临着时间紧张的问题,难以抽出时间去传统市场挑选水果。因此,他们迫切需要一种能够节省时间、高效便捷的购物方式。本系统的出现,恰好满足了这一需求,使他们能够通过网络轻松地选购新鲜水果,无需花费大量时间在购物途中。同时,系统提供了简洁明了的界面和流畅的操作流程,让用户能够快速找到所需水果,轻松完成下单购买,极大地提升了购物的便利性和效率。
为水果供应商提供一个高效的在线销售渠道,助力其扩大市场份额。传统的销售模式往往受到地域和时间的限制,水果供应商难以将产品推广到更广泛的市场。而通过本系统,水果供应商可以打破这些限制,将水果展示给更多的潜在客户,从而拓宽销售渠道,提高产品的曝光度和销售量。此外,系统还提供了丰富的营销工具和数据分析功能,帮助水果供应商更好地了解市场需求和用户喜好,制定更精准的营销策略,进一步提升市场竞争力,实现市场份额的扩大。
提高水果销售的效率和管理水平,有效降低运营成本。通过系统化的管理和自动化的流程,本系统能够实现水果销售各个环节的高效协同,减少人工操作和沟通成本,提高订单处理速度和准确性。同时,系统还能够对库存进行实时监控和管理,避免库存积压和缺货现象的发生,降低库存成本。此外,通过数据分析和智能决策支持,系统能够帮助管理者优化采购计划、定价策略和销售渠道,提高资源利用效率,进一步降低运营成本,提升水果销售的整体效益和竞争力。
1.3 系统开发所采用的技术
1.3.1 开发工具
前端:使用HTML5、CSS3页面构建。
后端:采用Java语言进行开发,使用idea作为开发工具。
1.3.2 开发使用的数据库系统
使用MySQL作为数据库管理系统,存储水果、用户、订单等相关信息。
1.3.3 系统环境
操作系统:Windows 7或更高的Windows版本。
Web服务器:Tomcat 7.0以上。
Java开发包:JDK 1.7以上。
数据库:MySQL 5.0。
浏览器:IE9.0或更高版本。
1.4 系统功能模块
前端功能:
主页:展示水果分类、销量排行榜和水果公告。
购物车:允许用户添加、删除和修改购物车中的商品数量。
我的订单:显示用户的所有订单,包括订单状态和历史记录。
个人信息:用户可以修改姓名、收货地址和手机号。
登录注册:提供安全的用户认证机制,使用JWT进行身份验证。
后端功能:
分类管理:管理员可以添加、编辑和删除水果分类。
水果管理:管理水果信息,包括价格、库存和图片。
公告管理:发布和管理系统公告。
订单管理:查看和处理用户订单,包括发货和退款。
用户管理:管理用户账户,包括权限设置和账户状态。
2 数据库设计
2.1 建立的数据库名称
实际建立的数据库名称:‘fruitshop’。
2.2 所使用的表
t_dingdan表:
字段名 | 数据类型 | 允许为空 | 是否为主键 | 默认值 | 说明 |
id | int(11) | 否 | 是 | 自动递增 | 订单ID |
status | varchar(255) | 是 | 否 | NULL | 订单状态 |
userid | int(11) | 是 | 否 | NULL | 用户ID |
xingming | varchar(255) | 是 | 否 | NULL | 姓名 |
dianhua | varchar(255) | 是 | 否 | NULL | 电话 |
dizhi | varchar(255) | 是 | 否 | NULL | 地址 |
xiangqing | text | 是 | 否 | NULL | 订单详情 |
orderid | varchar(255) | 是 | 否 | NULL | 订单编号 |
beizhu | text | 是 | 否 | NULL | 备注 |
shijian | varchar(255) | 是 | 否 | NULL | 时间 |
zongjia | float | 是 | 否 | NULL | 总价 |
t_fenlei表:
字段名 | 数据类型 | 允许为空 | 是否为主键 | 默认值 | 说明 |
id | int(11) | 否 | 是 | 自动递增 | 分类ID |
fname | varchar(255) | 是 | 否 | NULL | 分类名称 |
t_gonggao表:
字段名 | 数据类型 | 允许为空 | 是否为主键 | 默认值 | 说明 |
id | int(11) | 否 | 是 | 自动递增 | 公告ID |
biaoti | varchar(255) | 是 | 否 | NULL | 标题 |
neirong | text | 是 | 否 | NULL | 内容 |
shijian | varchar(255) | 是 | 否 | NULL | 时间 |
t_gouwuche表:
字段名 | 数据类型 | 允许为空 | 是否为主键 | 默认值 | 说明 |
id | int(11) | 否 | 是 | 自动递增 | 购物车ID |
userid | int(11) | 是 | 否 | NULL | 用户ID |
pid | int(11) | 是 | 否 | NULL | 产品ID |
pname | varchar(255) | 是 | 否 | NULL | 产品名称 |
jiage | float | 是 | 否 | NULL | 价格 |
shuliang | int(11) | 是 | 否 | NULL | 数量 |
t_product表:
字段名 | 数据类型 | 允许为空 | 是否为主键 | 默认值 | 说明 |
id | int(11) | 否 | 是 | 自动递增 | 产品ID |
pname | varchar(255) | 是 | 否 | NULL | 产品名称 |
imgpath | varchar(255) | 是 | 否 | NULL | 图片路径 |
createtime | varchar(255) | 是 | 否 | NULL | 创建时间 |
fenleiid | varchar(255) | 是 | 否 | NULL | 分类ID |
fname | varchar(255) | 是 | 否 | NULL | 分类名称 |
jiage | float | 是 | 否 | NULL | 价格 |
tuijian | varchar(255) | 是 | 否 | NULL | 推荐状态 |
dianjishu | int(11) | 是 | 否 | NULL | 点击数 |
xiaoliang | int(11) | 是 | 否 | NULL | 销量 |
miaoshu | text | 是 | 否 | NULL | 描述 |
t_user表:
字段名 | 数据类型 | 允许为空 | 是否为主键 | 默认值 | 说明 |
id | int(11) | 否 | 是 | 自动递增 | 用户ID |
username | varchar(255) | 是 | 否 | NULL | 用户名 |
password | varchar(255) | 是 | 否 | NULL | 密码 |
xingming | varchar(255) | 是 | 否 | NULL | 姓名 |
role | int(11) | 是 | 否 | NULL | 角色 |
dianhua | varchar(255) | 是 | 否 | NULL | 电话 |
dizhi | varchar(255) | 是 | 否 | NULL | 地址 |
3 水果商品销售网站设计与实现
3.1 系统管理首页
3.1.1模块视图
图3-1 主页
3.2 会员注册
3.2.1注册模块视图
图3-1 注册页面输入信息效果图
3.2.2注册模块模型
public class User {
private int id;//主键
private String username;//用户名
private String password;//密码
private String xingming;//姓名
private int role;//用户角色 0表示用户,1表示系统管理员
private String dianhua;//手机
private String dizhi;//收货地址
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getXingming() {
return xingming;
}
public void setXingming(String xingming) {
this.xingming = xingming;
}
public int getRole() {
return role;
}
public void setRole(int role) {
this.role = role;
}
public String getDianhua() {
return dianhua;
}
public void setDianhua(String dianhua) {
this.dianhua = dianhua;
}
public String getDizhi() {
return dizhi;
}
public void setDizhi(String dizhi) {
this.dizhi = dizhi;
}
3.2.3注册模块控制器
//新用户注册
if("register".equals(method)){
//从jsp页面获取用户名和密码
String username = request.getParameter("username");
String password = request.getParameter("password");
String xingming = request.getParameter("xingming");
String dianhua = request.getParameter("dianhua");
String dizhi = request.getParameter("dizhi");
//查询该用户名是否已经注册
User bean = userDao.selectBean(" where username='"+username+"' ");
if(bean==null){
bean = new User();
bean.setDianhua(dianhua);
bean.setDizhi(dizhi);
bean.setPassword(password);
bean.setRole(0);
bean.setUsername(username);
bean.setXingming(xingming);
userDao.insertBean(bean);
writer.print("<script language='javascript'>alert('注册成功,请妥善保管您的账户');window.location.href='"+basePath+"login.jsp'; </script>");
}else{
writer.print("<script language='javascript'>alert('该用户名已经被注册,请重新注册!');window.location.href='"+basePath+"register.jsp';</script>");
}
}
3.3 会员登录
3.3.1模块视图
图3-3登录
3.3.2模块模型
public class User {
private int id;//主键
private String username;//用户名
private String password;//密码
private String xingming;//姓名
private int role;//用户角色 0表示用户,1表示系统管理员
private String dianhua;//手机
private String dizhi;//收货地址
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getXingming() {
return xingming;
}
public void setXingming(String xingming) {
this.xingming = xingming;
}
public int getRole() {
return role;
}
public void setRole(int role) {
this.role = role;
}
public String getDianhua() {
return dianhua;
}
public void setDianhua(String dianhua) {
this.dianhua = dianhua;
}
public String getDizhi() {
return dizhi;
}
public void setDizhi(String dizhi) {
this.dizhi = dizhi;
}
3.3.3模块控制器
//用户登录
else if("login".equals(method)){
//从jsp页面获取用户名和密码
String username = request.getParameter("username");
String password = request.getParameter("password");
//查询用户名和密码是否匹配
User bean = userDao.selectBean(" where username='"+username+"' and password ='"+password+"' and role=0 ");
if(bean!=null){
HttpSession session = request.getSession();
session.setAttribute("user", bean);
writer.print("<script language='javascript'>alert('登录成功');window.location.href='"+basePath+".'; </script>");
}else{
writer.print("<script language='javascript'>alert('用户名或者密码错误');window.location.href='"+basePath+"login.jsp';</script>");
}
}
3.4 查看所有产品
3.4.1模块视图
图3-1水果列表
3.7 添加购物车
3.7.1模块视图
图3-8购物车
3.8后台管理
3.8.1模块视图
图3-9后台
4 课程设计总结
在本次课程设计中,我深入参与了水果销售网站的开发过程,从需求分析、数据库设计到功能实现和测试,每一个环节都让我受益匪浅。
通过这个项目,我更加熟练地掌握了Java Web开发的相关技术,包括HTML、CSS、JavaScript、JSP、Servlet和JavaBean等。同时,我也学会了如何使用MySQL数据库来存储和管理数据,以及如何通过JDBC连接数据库进行数据的操作。
在开发过程中,我遇到了一些挑战,比如如何实现购物车的功能、如何处理用户的登录和注册等。但是,通过查阅资料、请教老师和同学,我最终成功地解决了这些问题。这让我深刻地体会到了团队合作和学习的重要性。
此外,我还注重了用户体验的优化,努力使网站的界面简洁美观、操作方便快捷。通过不断地测试和改进,我提高了自己的编程能力和解决问题的能力。
总的来说,这次课程设计让我对Java Web开发有了更深入的理解和认识,也让我积累了宝贵的实践经验。我相信这些经验将对我今后的学习和工作产生积极的影响。
在未来的学习和工作中,我将继续努力学习和提升自己的技术水平,不断完善和优化这个水果销售网站,为用户提供更好的服务。同时,我也希望能够参与更多的项目开发,积累更多的经验,为自己的职业发展打下坚实的基础。