所要实现的购物网站系统是一个功能比较完善的购物管理网站,该系统属于内容管理系统CMS(Content Management System),是一个基于各种商品的发布和管理的管理系统,它是基于B/S模式的系统,可以完成购物网站系统的大部分功能。游客进入前台首页后,可以根据商品类别选择查看相应的商品,也可以直接查看所有商品的详细信息进行选择。当游客需要进行购买操作的时候,需要进行登录操作,如果没有账户可以进行注册操作,当成功登录后可以实现购买操作、查看购物车、查看订单等操作。在前台首页的“联系我们”中有“管理登录”,可以直接进入后台管理系统,党管理员登录后可以根据自己的权限不同看到不同界面,然后实现管理员管理、订单管理、商品管理、商品类别管理、用户管理等操作。

Windows系统系所用软件:mysql数据库,myeclipse-2014,apache-tomcat-8.0.21,jdk1.8

项目流程:1.使用filter实现查看订单、用户管理、购物车、购买商品等页面必须登录后才能查看2.使用JavaScript结合正则表达式规范注册用户内容3.商品列表的分页功能4.点击商品查看的超链接通过servlet可以进入购买页面,同时将商品的id参数传递过去5.在商品购买页面显示所选择商品的详细信息6.通过servlet得到的所选商品信息以及商品数量增加一个购物车,同时将该购物车增加到购物车列表中7.购物车页面显示登录用户的购物车列表,并且可以修改购买数量和删除商品,这里修改需要使用javaScript的onclick方式提交8.下单后进入填写订单页面,提交订单后删除购物车的商品

项目难点及部分代码:

1.使用JavaScript结合正则表达式规范注册用户内容

<script>
function reset(){document.getElementById("userNiName").value = "";document.getElementById("userName").value = "";document.getElementById("userPwd").value = "";document.getElementById("confirmuserPwd").value = "";document.getElementById("userEmail").value = "";document.getElementById("userPhone").value = "";document.getElementById("userAge").value = "";
}
var code = "";
function iniState(){//默认获得输入焦点document.getElementById("userNiName").focus();  //产生验证码getValidateCode();
}
//生成四位随机数
function getValidateCode(){var vCode = "0000";vCode = String(Math.round(Math.random()*10000));while(vCode.length < 4){vCode = "0" + vCode;}document.getElementById("div_vcode").innerHTML = vCode;code = document.getElementById("div_vcode").innerHTML;
}
//显示错误提示信息div方法
function showErrorMsg(eId,msg){document.getElementById(eId).innerHTML = msg;document.getElementById(eId).style.display = "";
}
//隐藏错误提示信息div方法
function clearMsg(eId){document.getElementById(eId).style.display = "none";
}function verifyuserNiname(UNiName,eId){var msg = "";var strUserName = UNiName.trim();//去除空格//用户名必须为6-20位if(strUserName.length < 3 || strUserName.length > 20){msg = "用户名必须3-20位";showErrorMsg(eId,msg);return(false); }else{clearMsg(eId);return (true);}
}
.......function verifyInput(){//通过表单名称,得到输入表单/* var form = document.form; *///依次验证if(verifyuserNiname(form.userNiName.value,"init_userNiName")&&verifyuserName(form.userName.value,"init_userName")&&verifyuserPwd(form.userPwd.value,"init_userPwd")&&verifyconfirmuserPwd(form.userPwd.value,form.confirmuserPwd.value,"init_confirmuserPwd")&&verifyuserEmail(form.userEmail.value,"init_userEmail")&&verifyuserPhone(form.userPhone.value,"init_userPhone")&&verifyuserAge(form.userAge.value,"init_userAge")){alert("恭喜,注册成功");document.getElementById("form").submit();return(true);}else{alert("注册失败,请按红色提示信息修改");return(false);}}
</script>
<tr><td width="80" height="40">昵称:</td><td><input type="text" name="userNiName" id="userNiName"οnfοcus="clearMsg('init_userNiName')"οnblur="verifyuserNiname(form.userNiName.value,'init_userNiName')"></td><td width="300" id="init_userNiName"></td></tr>

2.分页功能

<div class="goods_show_body_top"><table><tr><td>商品编号</td><td>商品类型编号</td><td>商品名称</td><td>商品价格</td><td>供应商</td></tr><%Connection con = JDBCUtil.getConnection();String sql = "select * from goods";PreparedStatement ps = con.prepareStatement(sql);ResultSet rs = ps.executeQuery();rs.last();int size = rs.getRow();int pageCount = (size % 5 == 0 ? (size / 5) : (size / 5 + 1));String tmp = request.getParameter("curPage");if (tmp == null) {tmp = "1";}int curPage = Integer.parseInt(tmp);if (curPage >= pageCount)curPage = pageCount;if(curPage <= 0)curPage = 1;boolean flag = rs.absolute((curPage - 1) * 5 + 1);out.println(curPage);int count = 0;do {if (count >= 5)break;int goodsId = rs.getInt(1);int goodsTypeId = rs.getInt(2);String goodsName = rs.getString(3);double goodsPrice = rs.getDouble(4);String goodsPicture = rs.getString(5);String goodsSupplier = rs.getString(6);count++;%><tr><td><%=goodsId%></td><td><%=goodsTypeId%></td><td><%=goodsName%></td><td><%=goodsPrice%></td><td><%=goodsSupplier%></td><td><div class="aa"><a href="ShowGoodsServlet?id=<%=goodsId%>">查看</a><br /><div class="bb"><img src="/shopping/Images/<%=goodsPicture%>"></div></td></tr><%} while (rs.next());con.close();%></table></div><div class="goods_show_body_pages"><a href="user/goodsShow.jsp?curPage=1">首页</a> <a href="user/goodsShow.jsp?curPage=<%=curPage - 1%>">上一页</a> <ahref="user/goodsShow.jsp?curPage=<%=curPage + 1%>">下一页</a> <ahref="user/goodsShow.jsp?curPage=<%=pageCount%>">尾页</a> 第<%=curPage%>页/共<%=pageCount%>页</div></div>

3.购物车页面显示登录用户的购物车列表,并且可以修改购买数量和删除商品,这里修改需要使用javaScript的onclick方式提交

<script>
function redirectUrl(action,id){var number = document.getElementById("cartNumber"+id).value;if(action=='DeleteCartServlet'){window.location.href=action+"?cartsListId="+id;}else{window.location.href=action+"?cartsListId="+id+"&number="+number;}}
</script>
<c:forEach items="${cartsList }" var="carts"><tr><td>${carts.cartsListId}</td><td>${carts.cartsId}</td><td>${carts.goodsId}</td><td>${carts.goodsPrice}</td><td><input type="text" name="number" id="cartNumber${carts.cartsListId}"value="${carts.goodsAmount }" size="3"></td><td><a href="javascript:void(0);" οnclick="redirectUrl('UpdateCartServlet',${carts.cartsListId})"><input type="button" value="确定"></a><a href="javascript:void(0);" οnclick="redirectUrl('DeleteCartServlet',${carts.cartsListId})"><inputtype="button" value="删除"></a></td></tr></c:forEach>

4.图片存储到数据库和查看图片

public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");String pic = "";int goodsTypeId = 0;String goodsName="";double price = 0;String gys = "";//硬盘文件工厂类DiskFileItemFactory factory = new DiskFileItemFactory();//servlet文件上传类ServletFileUpload upload = new ServletFileUpload(factory);try {//获取到发送过来的请求的项目List items = upload.parseRequest(request);Iterator itr = items.iterator();//迭代发送过来的内容项目while (itr.hasNext()) {FileItem item = (FileItem) itr.next();//判断是否是普通的表单,来源于form的enctype属性if (!item.isFormField()) {//如果当前内容不为空if (item.getName() != null && !item.getName().equals("")) {//生成file文件File tempFile = new File(item.getName());//获取项目相关文件夹路径并加上图片名称进行上传存储System.out.println(sc.getRealPath("/"));File file = new File(sc.getRealPath("/")+"Images/",tempFile.getName());//写入项目目录item.write(file);//返回图片名称可作为保存使用pic = tempFile.getName();request.setAttribute("pic", pic);System.out.println(pic);// System.out.println(item.getContentType());}} else {//普通表单下如果有其他内容,这个位置就可以把其他内容获取一下并且转一下格式if (item.getFieldName().equals("pic")) {pic = item.getString("UTF-8");} if(item.getFieldName().equals("goodsType")){String  StrgoodsTypeId = item.getString();goodsTypeId = Integer.parseInt(StrgoodsTypeId);}if(item.getFieldName().equals("goodsName")){goodsName = item.getString("UTF-8");}if(item.getFieldName().equals("price")){price = Double.parseDouble(item.getString());}if(item.getFieldName().equals("gys")){gys = item.getString("UTF-8");}}}} catch (Exception e) {request.setAttribute("errmsg","<script>alert('fileUpload error')</script>");}PrintWriter out = response.getWriter();GoodsImpl goodsDao = new GoodsImpl();Goods goods = new Goods(goodsTypeId,goodsName,price,pic,gys);System.out.println(goods);int row = goodsDao.addGoods(goods);if(row>0){out.write("<script> alert('添加成功!');window.location.href='News/addGoods.jsp'; </script>");}else{out.write("<script> alert('添加失败!');window.location.href='News/addGoods.jsp'; </script>");}}

上传图片的部分代码

<tr><td valign="middle" align="center" height="35px">图片:</td><td valign="middle" align="center"><input type="file"name="pic" /><div align="left"></div></td></tr>

查看图片部分代码

<div class="aa">查看图片<div class="bb"><img src="/ShoppingManager/Images/<%=goodsPicture%>"></div>

电子购物商城项目总结相关推荐

  1. 基于java+springboot+mybatis+vue+elementui的口红电子购物商城

    项目介绍 当前我国口红主要销售渠道为电商平台,据悉受到直播电商崛起.新零售模式的影响,中国口红消费者的消费频次呈现逐年上升趋势.以天猫为例,仅2018年中国口红消费者的平均购买数量为3.3支,其中30 ...

  2. Vue购物商城项目(二) 数据请求使用

    Vue购物商城项目(二) 文章目录 Vue购物商城项目(二) 前言 一.请求数据 request.js home.js Home.vue 二.使用数据 总结 前言 1.这里面包含了大量的.我的个人理解 ...

  3. javaweb基于SSM开发网上电子购物商城系统+论文+PPT 课程设计 毕业设计源码

    基于SSM开发网上电子购物商城系统+论文+PPT:(毕业设计/课程设计) 开发工具: MyEclipse(eclipse/idea)+Jdk+Tomcat+MySQL数据库 演示视频: 基于SSM开发 ...

  4. Django 20购物商城项目(注册、登录页面:生成动态验证码)

    dDjango 20购物商城项目 1.安装pillow 2.在注册页面加入验证码 2.1.register.html (增加内容) 2.2.register.js(增加内容) 2.2.路由.视图(增加 ...

  5. HTML5期末大作业:麦路客电子网站设计——麦路客电子购物商城(37页) HTML5期末考核大作业,网站——购物商城

    HTML5期末大作业:麦路客电子网站设计--麦路客电子购物商城(37页) HTML5期末考核大作业,网站--购物商城 常见网页设计作业题材有 个人. 美食. 公司. 学校. 旅游. 电商. 宠物. 电 ...

  6. 期末作业成品代码——麦路客电子购物商城(37页) HTML5期末考核大作业,网站——购物商城

    HTML5期末大作业:麦路客电子网站设计--麦路客电子购物商城(37页) HTML5期末考核 文章目录 HTML5期末大作业:麦路客电子网站设计--麦路客电子购物商城(37页) HTML5期末考核 一 ...

  7. Django 19购物商城项目(收货地址:添加、修改)

    dDjango 19购物商城项目 1.新建axf_addr,收货地址表 2.路由 3.cart页面,添加默认收货地址 4.视图(主要修改了cart.新建了收货地址相关方法) 5.收货地址列表 6.收货 ...

  8. Jieyue捷阅网购物商城项目介绍说明

    jieyue捷阅网是基于springboot开发的轻量级单体架构购物商城网站,并分为用户.商户.后台三大模块.用户模块能够进行商品搜索浏览.在线下单.微信支付等功能:商户模块则可以对收益情况以及订单成 ...

  9. ssm框架实现仿steam官网购物商城项目

    简介 暑假前学的ssm框架(spring.springmvc.mybatis),做了一个仿steam官网的购物网站. 由于技术.时间有限,bug不完善的地方有,还请见谅. 最下面有完整的代码和数据库, ...

最新文章

  1. C# 2.0 的partial
  2. 游戏控制杆OUYA游戏开发快速入门教程
  3. ORACLE常用的动态性能视图
  4. 如何编写php解析器_用于PHP的HL7解析器/编写器
  5. ML之SSIM:基于输入图片RGB的三维向量利用SSIM(结构相似性度量)算法进行判别
  6. 多进程/多线程同时向一个文件中写入日志如何避免冲突?
  7. [转]用android LinearLayout和RelativeLayout实现精确布局
  8. ROG游戏手机5跑分曝光:全球首发18GB超大内存
  9. 捷作服务器 修改套接字端口,如何解决错误“每个套接字地址(协议/网络地址/端口)通常只允许使用一次”?...
  10. Tensorflow笔记(一): tensorflow的安装
  11. 【MySQL】RPM包安装
  12. at.allow与at.deny及cron.allow与cron.deny优先级的比较
  13. linux命令查看log.gz,linux命令学习系列13-gzip,tar命令
  14. l360清零软件无响应_爱普生L360清零软件
  15. 新经济 DTC 转型,一个简单而强大的数据平台至关重要
  16. S7-200作MODBUS RTU主站和从站例程教学
  17. jquery video全屏_帮助你生成全屏视频背景的超棒jQuery插件 BigVideo.js
  18. 《激荡三十年》七、国企难破局—“裁缝神话”步鑫生
  19. [Pytorch系列-71]:生成对抗网络GAN - 图像生成开源项目pytorch-CycleGAN-and-pix2pix - 使用预训练模型训练pix2pix模型
  20. CAT监控系统搭建与使用(V3.0.0)

热门文章

  1. Amazon、Google、IBM、Microsoft的云计算平台及其特点
  2. java操作linux命令
  3. 一文理解什么是公民开发
  4. Win10怎么禁止开机自动运行语音识别
  5. 企业计算机管理系统数据流图,管理信息系统作业[数据流图].doc
  6. librtmp windows编译
  7. mp4分离h265_音视频封装:MP4结构概述和分析工具
  8. Android开发规范:API接口安全设计规范
  9. ubuntu制作简陋的deb/rpm包
  10. ted学习方法_视世界为1000人,我是如何学习内容策略的TED设计系统的