estore电商网站项目

项目背景:
电子商务的发展为网络购物的发展开拓了更广阔的市场。所以,我实现了这个项目,诣在模拟网络购物,从登陆,到页面浏览再到购物车结账的全过程。

使用技术和代码流程:
jsp+mybatis+servlet+mysql
jsp为这个项目的主要框架,实现了三层架构,在web层,使用servlet将网页与代码进行连接,在service层进行数据分析,需要的数据在dao层通过mybatis进行获取。

系统功能:
1、用户注册、登陆
2、查看商品列表
3、查看商品详细信息
4、添加商品购物车
5、查看,修改购物车
6、结算(生成订单)
7、取消订单
8、在线支付(添加收货信息)

核心代码:
web层响应给页面:

 //响应 注册成功了需要登陆-->返回登陆界面//    注册没成功--->还返回注册页面--->提示信息try {//注册成功service.register(c);session.setAttribute("msg", "注册成功,请登陆!");path="/WEB-INF/login.jsp";} catch (Exception e) {//将注册失败的原因传给前台session.setAttribute("msg", "注册失败:"+e.getMessage());//没注册成功path="/WEB-INF/register.jsp";System.out.println(e.getMessage());}req.getRequestDispatcher(path).forward(req, resp);

完成登陆逻辑处理:

 //判断字符串是否为空if(StringUtils.isBlank(username)||StringUtils.isBlank(password)) {throw new Exception("用户名和密码为空");}//dao层完成查找用户名是否存在SqlSession sqlSession = MybatisSqlSessionFactoryUtil.openSession();CustomerMapper mapper = sqlSession.getMapper(CustomerMapper.class);Customer customer = mapper.findCustomerByName(username);//用户名不存在  用户名不正确if(customer==null) {throw new Exception("用户名不正确");}//用户名正确if(customer!=null) {if(!customer.getPassword().equals(password)) {throw new Exception("密码不正确");}}return customer;

加入购物车操作:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,  IOException {//接受来自于前台的参数--->id  numInteger id = Integer.getInteger(request.getParameter("id"));Integer num = Integer.getInteger(request.getParameter("num"));System.out.println("--------------------------id"+id);//调用service去根据id查找书的信息----->bookIBookService service = new BookServiceImpl();Book book = service.findBookById(id);//有了book的信息  有了num-->orderlineOrderLine orderline = new OrderLine();orderline.setNum(num);orderline.setBook(book);//得到shopCar购物车对象--->一个用户只有一个购物车----->//在用户登录的时候将购物车对象创建出来存储在session中//----->orderline(orderline  num)//将购物车取出来使用---->之前存放在注册的时候HttpSession session = request.getSession();ShopCar car = (ShopCar)session.getAttribute("car");//判空操作if(car==null) {car = new ShopCar();session.setAttribute("car", car);}//将数据存储在购物车中car.addShopCar(orderline, num);//响应页面--->shopCart.jsp---->将添加到购物车的orderline进行展示---->getOrderlines--->${orderlines}---->map(遍历取值)request.getRequestDispatcher("/WEB-INF/shopCart.jsp").forward(request, response);
}

在数据库中进行查找:

<mapper namespace="com.briup.mapper.CustomerMapper">
<!-- 根据name查找customer -->
<select id="findCustomerByName" parameterType="String" resultType="customer">select * from es_customer where name = #{name}
</select> <!-- 完成插入用户功能 -->
<insert id="insertCustomer" parameterType="customer" useGeneratedKeys="true" keyProperty="id">insert into es_customer(name,password,zipCode,address,telephone,email)values(#{name},#{password},#{zipCode},#{address},#{telephone},#{email})
</insert><!-- 根据id查找用户所对应的收货地址 -->
<select id="findAddById" parameterType="Integer" resultType="shopAddress">select * from es_shopaddress where customer_id = #{id}
</select>

项目总结:
通过三层架构技术,使得此项目拥有动态交互效果,实时数据的在线共享和高效的数据检索等特点,可以高度还原购物网站的底层实现逻辑。

estore电商网站项目相关推荐

  1. Django电商网站项目(7)-部署与总结

    将前述4个模块完成后项目的全部功能就完成了,在本地已经可以实现网站的基本功能(从用户注册到订单评论),但开启服务器时使用的是Django自带的测试用服务器,因此仍需要将其部署到真正的可用于工程的服务器 ...

  2. 订单支付和评论——基于Django框架的天天生鲜电商网站项目系列博客(十五)

    系列文章目录 需求分析--基于Django框架的天天生鲜电商网站项目系列博客(一) 网站框架搭建--基于Django框架的天天生鲜电商网站项目系列博客(二) 用户注册模块--基于Django框架的天天 ...

  3. 网站框架搭建——基于Django框架的天天生鲜电商网站项目系列博客(二)

    系列文章目录 需求分析--基于Django框架的天天生鲜电商网站项目系列博客(一) 网站框架搭建--基于Django框架的天天生鲜电商网站项目系列博客(二) 用户注册模块--基于Django框架的天天 ...

  4. Django电商网站项目(6)--订单模块

    设计的订单相关的表如下所示: 由于每一个订单中的商品种类与数量都不定,因此单独将订单商品提出为一个表,为一对多的关系. 订单的提交 从购物车页面提交是通过form形式提交的,在checkbox元素中定 ...

  5. 电商网站项目开发开篇

    许久没有写博客,这一次一定要坚持写下三月份的开发任务,算是给自己做一个交代. 以下是要做的练手项目思维导图.

  6. 电商网站架构探索|SOA分布式架构详解

    目前很多的企业都有自己的电商网站,但随着业务量的增长,并发量高了.由于平台架构的一些不足,会导致一系列严重的问题,电子商务平台的安全性,承受能力也经受着严峻的考验,而市面上绝大多数的电商网站是业务驱动 ...

  7. 电商网站搭建——服务器部署之部署Tomcat

    一.下载Tomcat 首先,下载好tomcat for Linux版本,我下载的是appache-tomcat-9.0.44.tar.gz,下载好之后,上传到Linux服务器上,上传到/home/so ...

  8. 含文档+PPT+源码等]精品基于PHP实现的商城电商网站[包运行成功]购物商城计算机毕设项目源码

    目录 一.项目介绍 二.文档截图 三.运行截图 四.源码获取 一.项目介绍 [含文档+PPT+源码等]精品基于PHP实现的商城电商网站>该项目含有源码.文档.PPT.配套开发软件.软件安装教程. ...

  9. 基于hadoop的小红书电商网站用户行为分析系统毕业论文+任务书+开题报告+答辩PPT+知网查重报告+项目源码及Mysql数据

    基于hadoop的小红书电商网站用户行为分析系统毕业论文+任务书+开题报告+答辩PPT+知网查重报告+项目源码及Mysql数据库-99源码网,程序代做,代写程序代码,代写编程,代写Java编程,代写p ...

最新文章

  1. linux libcurl 库使用方法
  2. QStyleOptionGraphicsItem实现自绘按钮悬浮按下状态
  3. Acwing 1081. 度的数量(以及本人对数位dp的浅薄理解)
  4. C和汇编----存储类别、链接和内存管理
  5. SQL必知必会-数据插入
  6. 4400元起!iPhone 12全系售价曝光:标配数据线但无充电器
  7. 用ByteArrayOutputStream解决IO流乱码问题
  8. matlab 图片最多显示几张_matlab 如何一次显示多个图像,subplot不合适
  9. Pytorch 多GPU数据并行(DataParallel)
  10. 魔兽怀旧服最新服务器人口,魔兽世界怀旧服服务器人口查询 魔兽世界怀旧服人口比例普查...
  11. c语言 随机四则运算,随机四则运算 C语言
  12. 荒野行动pc版显示连接不到服务器,荒野行动PC版连接不上服务器怎么办 进不去游戏...
  13. 如何批量用扫描仪扫描照片_如何用手机扫描旧照片
  14. OpenStack Placement部署(5)
  15. ORACLE连接不上 Linux网络 端口 问题判断
  16. Kid的某些跳刺套路
  17. 【LeetCode】1823. 找出游戏的获胜者 Find the Winner of the Circular Game
  18. 手把手教你使用ADB卸载手机内置App软件
  19. Redis集群--Cluster--故障转移的过程(原理)
  20. EZDML 3.23 快速生成数据界面原型

热门文章

  1. VS2015: warning MSB8012: TargetPath问题的解决
  2. 精密空调监控:不会这个技巧,千万不要尝试
  3. SpringMVC高级篇
  4. echarts极地坐标
  5. C# 之 int 挑战 Java 之 Integer
  6. CSS中的路径裁剪样式clip-path的详细使用
  7. Android纯代码实现九宫格解锁
  8. 【041】基于51单片机的自动音乐播放器Proteus仿真设计
  9. 在路径为……的上下文中,servlet[....]的Servlet.service()引发异常
  10. Pycharm查看代码缩略图