博客
关于我
强烈建议你试试无所不能的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/

你可能感兴趣的文章
Java泛型的学习和使用
查看>>
一文深度揭秘Redis的磁盘持久化机制
查看>>
java是编译型还是解释型语言
查看>>
Spring的BeanUtils的copyProperties方法需要注意的点
查看>>
SpringBoot服务器压测对比(jetty、tomcat、undertow)
查看>>
Spring Boot---Tomcat与Undertow 吞吐量对比
查看>>
个人理解简单工厂模式和策略模式的区别【一】
查看>>
个人理解简单工厂模式和策略模式的区别【二】
查看>>
ActiveMQ详细入门使用教程
查看>>
NotePad 常用快捷键总结
查看>>
Notepad++如何让打开的文件排在左边菜单栏
查看>>
File类的常用方法【一】
查看>>
GIT版本管理看这一篇就够了
查看>>
File类的常用方法【二】
查看>>
spring注解开发AnnotationConfigApplicationContext的使用
查看>>
为什么说栈的速度快,堆的速度慢?栈和堆的区别是什么?
查看>>
微信支付兴起,万亿级用户交易记录存储的挑战
查看>>
Java nio 实现socket异步通信
查看>>
商品秒杀系统设计思路
查看>>
Java自带的JVM性能监控及调优工具(jps、jinfo、jstat、jmap、javap)使用介绍
查看>>