博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于JSP的鲜果商城的设计与实现-论文+源码
阅读量:37347 次
发布时间:2020-10-03

本文共 5289 字,大约阅读时间需要 17 分钟。

根据功能需求分析,将系统分为两个层次:用户和管理员。前端使用用户,管理员管理后台系统,在为系统总体功能模块图中,前端模块(会员模块、浏览查询模块、鲜果信息模块、订单管理模块、购物车模块、在线留言模块)以及其子模块(与我相关模块、安全中心模块、账户信息模块、加入购物车、鲜果收藏模块);后台模块(鲜果管理模块、网站信息模块、账户设置模块)以及其子模块(鲜果管理、发布鲜果、订单管理、销售统计、采购管理、供应商管理、适合对象、首页轮播图、网站导航、首页栏目、系统公告、留言管理、密保问题、系统介绍、友情链接、后台用户、会员管理、会员类型、修改密码、修改账户、账户查看)

鲜果商城的前端部分实现了鲜果浏览、搜索、比价、用户注册、在线留言、用户登录、提交订单、会员中心功能,后台实现了系统用户登录、鲜果管理、网站信息、账户设置功能。

鲜果浏览:用户和游客可以在进入鲜果商城后对鲜果的价格、折扣、产地、包装、适合对象以及其他详情信息进行浏览,同时可以查看最新上架的鲜果,鲜果的销售排行以及商城的公告。

鲜果搜索:用户和游客可以搜索想要的鲜果,可以进行模糊搜索。

鲜果对比:用户和游客在对鲜果的选择时,可以点击对比键同时查看一到四种鲜果的信息、价格、产地、包装,从而选择出最喜欢的,性价比更高的鲜果。

用户注册:未注册游客点击注册,输入账号、密码、确认密码、身份证号码和姓名,然后点击同意和注册,即可进入会员中心。

在线留言:如果用户觉得商城有缺点或者想说,可以留言给商城。

用户登录:用户可以通过输入用户名和密码登录商城。如果他们忘记了密码,他们可以回答安全问题以登录。

提交订单:选择合适的鲜果后,用户可以点击订单进入订单界面。

会员中心:进入会员中心后,用户可以在与我相关的菜单中修改订单、消息和收藏夹,在安全中心菜单中修改登录密码、支付密码、输入安全问题和我的安全问题,以及在帐户信息菜单中修改帐户信息、收货地址、帐户余额和信息。

系统用户登录:管理员可以通过输入系统帐户、登录密码和验证码登录到系统后台。

鲜果管理:管理员可以在鲜果管理列表中进行鲜果管理、发布鲜果、订单管理、销售统计、采购管理、供应商管理、适合对象管理、信息类别管理、鲜果标签管理。

网站信息:管理员可以在网站信息界面中设置主页轮转图、网站导航、主页栏、系统公告管理、消息管理、安全问题设置、系统介绍、友情链接设置。

账户设置:管理员可以在账户设置的列表进行后台用户管理、会员管理、会员类型管理、修改密码、修改账户信息、账户信息查看。如图2.1所示:

 

进入网站,可以查看网站首页、时令鲜果、精选鲜果、精选套餐、礼品专区、在线留言、关于我们、用户注册、登录、购物车、后台管理等信息,如4.4图所示:

图4.4 首页登录图

位于com.daowen.controller包下的IndexcolumnsController,通过使用StringBuffer建立一个字符串缓冲区sb,通过append()方法在被选中的元素结尾插入需要的内容并对栏目最新、热卖等内容获取并插入。首页主要代码如下:

public String buildImagetextList(List list, String lanmudes,String href) {

StringBuffer sb = new StringBuffer();

int i = 0;

sb.append(MessageFormat.format("<div class=\"{0}\">", picListCss));

sb.append("\r\n");

// 栏目标题

if(href!=null)

sb.append(MessageFormat.format(

"<div class=\"title\"><strong>{0}</strong><a href=\"{1}\" class=\"more\">更多</a></div>", lanmudes,href));

else

sb.append(MessageFormat.format("<div class=\"title\"><strong>{0}</strong></div>", lanmudes));

sb.append("<ul>");

......

if(shangpin.getZuixin()==1){

sb.append("<div class=\"tag\"><span>最新</span></div>");

}

if(shangpin.getTuijian()==1){

sb.append("<div class=\"tag\"><span>推荐</span></div>");}

4.1.2鲜果内容模块

用户选择的鲜果界面,如4.5图所示:

图4.5 鲜果内容

位于controller层,以下代码绑定数内部支持,request.setAttribute()设置需要的属性,对当前页面进行。鲜果界面的主要代码如下:

/*数据绑定内部支持*/

public void get() {

List<Object> sptype_datasource = spcategorySrv

.getEntity("where isleaf=1");

......

request.setAttribute("sptype_datasource", sptype_datasource);

String spname = request.getParameter("name");

String pubren = request.getParameter("pubren");

if (spname != null)

filter += "  and name like '%" + spname + "%'  ";

if (pubren != null)

filter += " and pubren='" + pubren + "'";

String sptype = request.getParameter("sptype");

String sptypeid = request.getParameter("sptypeid");

System.out.println("sptypeid=" + sptypeid);

if (sptypeid != null) {

if (!sptypeid.equals("-1"))

filter += "  and sptypeid=" + sptypeid;

} else {

sptypeid = "-1";

request.setAttribute("sptypeid", sptypeid);}

4.1.3用户下单模块

用户通过点击加入购物车进入页面可以进行查看图片、鲜果信息、单价、数量、现价等信息,进行查看或提交订单或删除操作,并且可以通过点击继续购物进行继续购物操作,如图4.6所示:

图4.6下单结算图

当会员不为空时,对会员的收货地址相关信息进行获取。下单界面的主要代码如下:

Huiyuan huiyuan=huiyuanSrv.load("where accountname='"+xdren+"'");

double discount=1;

if(huiyuan!=null) {

Hytype hytype=hytypeSrv.load("where id="+huiyuan.getTypeid());

if(hytype!=null)

discount=hytype.getDiscount();

}

......

// 收货地址

dingdan.setShrtel(shrtel);

dingdan.setShraddress(shraddress);

dingdan.setShrname(shrname);

dingdan.setDes(des);

dingdanSrv.save(dingdan);

shopcartSrv.clear(cartName);

request.getSession().removeAttribute("checkedProductList");

request.getSession().removeAttribute("groupedProduct");

String forwardurl = request.getParameter("forwardurl");

request.setAttribute("dingdan", dingdan);

forward(forwardurl);

}

4.1.4在线支付模块

用户通过我的订单可以获取订单号、下单时间、下单人、收货人电话、收货人姓名、状态等信息,和鲜果的详细信息,应付总金额进行在线支付操作,如图4.7所示:

图4.7在线支付图

在用户付款时,会通过.getParameter()方法获取下单人,鲜果相关的信息,pm.setPagesize()设置尺寸;pm.setCurpageindex()设置当前显示页;request.setAttribute()设置分页信息;dispatchParams()分发请求参数。在线付款界面的主要代码如下:

// 获取数据

public void get() {

String filter = "where 1=1 ";

String xdren = request.getParameter("xiadanren");

String shaccount = request.getParameter("shaccount");

if (xdren != null) {

filter += " and xiadanren='" + xdren + "'";

}

if (shaccount != null)

filter += " and shaccount='" + shaccount + "'";

int pageindex = 1;

int pagesize = 10;

// 获取当前分页

String currentpageindex = request.getParameter("currentpageindex");

     ......

// 设置尺寸

pm.setPagesize(pagesize);

// 设置当前显示页

pm.setCurpageindex(pageindex);

// 设置分页信息

request.setAttribute("pagermetal", pm);

// 分发请求参数

dispatchParams(request, response);

4.1.5支付失败模块

若用户账户余额不足则显示账户余额不足于支付订单,请充值,如图4.8所示:

图4.8支付失败图

位于com.daowen.controller.的DingdanController;通request.getParameter()方法获取提交的订单id,账户名、支付密码、账户余额,当输入密码与输入密码不相同时,显示错误;获取会员余额,当余额小于订单金额时标签显示错误。支付界面的主要代码如下:

public void payfor() {

String ddid = request.getParameter("ddid");

String accountname = request.getParameter("accountname");

String paypwd = request.getParameter("paypwd");

String errorurl = request.getParameter("errorurl");

......

Dingdan dingdan = dingdanSrv.load("where id=" + ddid);

if (hy.getYue() < dingdan.getTotalprice()) {

request.setAttribute("errormsg", "<label class='error'>账户余额不足于支付订单,请充值</label>");

forward(errorurl);

return;}

public void delete() {

String[] ids = request.getParameterValues("ids");

if (ids == null)

return;

String spliter = ",";

String SQL = " where id in(" + join(spliter, ids) + ")";

System.out.println("sql=" + SQL);

dingdanSrv.delete(SQL);}

转载地址:http://mihnwy.baihongyu.com/

你可能感兴趣的文章
linux vim编辑kconfig 无法wq,Linux-4.9.2内核在mini2440上的移植(三)——编译环境测试...
查看>>
高斯勒让德在c语言中的程序,c语言:用递归方法编写程序,求n阶勒让德多项式的值...
查看>>
c语言单片机电子时钟,新人求个51单片机的电子时钟汇编语言(C语言的还没学到)...
查看>>
c++语言文件流,C++文件流
查看>>
android 动态毛玻璃,Android毛玻璃背景效果简单实现代码
查看>>
android 按钮提示,的Android按钮工具提示
查看>>
iphone通讯录 android,3个方法,教你如何快速而又有效的将联系人从iPhone转移到安卓...
查看>>
android horizontalscrollview 滑动事件,ScrollView的滑动监听(以HorizontalScrollView为例)
查看>>
win7自定义html为桌面,Win7系统自定义桌面主题的方法
查看>>
单系统 台电x80pro_台电x80 pro (ID:E3E6)安装remix OS系统教程整理
查看>>
linux存储pdf伟岸_python的reportlab库介绍、制作pdf和作图
查看>>
安徽信息技术初中会考上机考试模拟_2020年中小学寒假、考试时间定下了!
查看>>
ubuntu 退出anaconda环境_从零开始深度学习第15讲:ubuntu16.04 下深度学习开发环境搭建与配置...
查看>>
稳定币usda是哪个发行的_武夷山币装帧款曝光,共4款设计,你喜欢哪款?
查看>>
可变车道怎么走不违章_走ETC竟比人工车道贵50%!交警:这3点不知道,吃亏的是自己...
查看>>
苹果笔记本的end键_笔记本用户的大烦恼:触控板,想好好用你不容易
查看>>
趣玩机器人什么时候成立的_【直播回顾】当我们谈机器人集成调试的时候在谈什么...
查看>>
中考大数据大连79_中考大数据 | 大连部分初中2019年中考指标生录取最低分及人数统计!...
查看>>
vue 地理位置定位_HTML5地理位置
查看>>
pac代理模式什么意思_托管仓库租赁电商仓储运营模式托管什么意思
查看>>