• java web 模拟购物车练习(项目一)

    • 首页(index.jsp)
    • <div align="center" class="index">

      <h1>Estore商城</h1>

      <marquee class="work_text" scrollamount="4" width="800" height="100" direction="left" loop="-1">

      <b>欢迎大家访问的我的首页!烟花散尽13141!</b>

      </marquee>

      <br/><br/><br/><b>

      <c:if test="${user==null }">

      欢迎光临,游客!<br/><br/>

      <a href="${pageContext.request.contextPath }/register.jsp"><img alt="注册" src=".//images/Rej_s.png">注册</a><br/><br/>

      <a href="${pageContext.request.contextPath }/login.jsp"><img alt="登录" src=".//images/Log_s.png">登录</a><br/><br/>

      </c:if>

      <c:if test="${user!=null }">

      欢迎回来!${user.username }<br/><br/>

      <a href="${pageContext.request.contextPath }/addProd.jsp"><img alt="添加商品" src=".//images/List_s.png">添加商品</a><br/><br/>

      <a href="${pageContext.request.contextPath }/LogOutServlet"><img alt="注销用户" src=".//images/out_s.jpg">注销用户</a><br/><br/>

      <a href="${pageContext.request.contextPath }/OrderListServlet"><img alt="订单查询" src=".//images/list_s.jpg">订单查询</a><br/><br/>

      </c:if>

      <a href="${pageContext.request.contextPath }/ProdListServlet"><img alt="商品列表" src=".//images/List_s.png">商品列表</a><br/><br/>

      <a href="${pageContext.request.contextPath }/SaleListServlet"><img alt="榜单下载" src=".//images/List_s.png">榜单下载</a><br/><br/>

      <a href="${pageContext.request.contextPath }/car.jsp"><img alt="查看购物车" src=".//images/SeeBuy_s.jpg">查看购物车</a>

      </b>

      </div>
  • 在首页中我们大体上为两种身份的人提供界面欣赏,一个是管理员另外一个是普通用户还有一个是以有课的身份去浏览本网页的。在我们的注册页面中我们只提供注册普通用户的,由于时间紧张我们并没有提供对管理员的身份的认证,下面我简单说一下普通员工的身份的认证,
    • 注册(register.jsp)
    • 在注册页面中我们比较首页而言是复杂的,在注册的页面我们需要在提交前对用户提交的数据进行相关的检查,首先用户需要提交的数据是用户名+密码+密码2+昵称+邮箱+验证码对于这六个数据大前提是我们用户提交的数据不能为空,其次就是两次密码必须是一致的,还有提交的邮箱要符合邮箱的格式。这些都符合了才能通过客户端提交到服务器上,在服务器上为了安全起见我们还是得在进行这些数据的检查目的就是为了防止别人截取到我们的数据进行修改。为了给用户呈现一种友好的界面我有使用了无闪刷新,这样就会在用户焦点离开某项时就会对用户进行相应的提示,总的说来在这个注册页面中我们还是做了不少的前期工作的,。前期标准都符合的才能提交有服务起判断是否合法。这个数据的合法性有后面我们要介绍的RegisteServlet来解决,
    • 刚才也说了数据最后是提交到服务器上的,那么我们下面说的是服务器是如何处理服务器的(RegisteServlet)
    • 第一步验证用户提交的验证码是否正确
      • if(code!=null && !code.equals("") && !code.equals(AuthCode))

        {

        //验证码错误

        request.setAttribute("msg", "验证码错误!请核实");

        request.getRequestDispatcher("/register.jsp").forward(request, response);

        }
    • 第二步对提交的数据进行封装,方便数据库进行相关操作
      • User user=new User();

        BeanUtils.populate(user, request.getParameterMap());
    • 第三步业务类调用数据方法操作数据的注册
      • user.setPassword(MD5Utils.md5(user.getPassword()));

        /**

        * 第四步 调用service方法注册

        */

        service.regist(user);
    • 第五步成功调回首页这里也可以直接调到登陆页
      • response.getWriter().write("注册成功!请注意留意邮箱的激活码进行账号激活!");
  • 讲完注册当然就是登录了,有了注册的页面基础上我们的登录做起来就得心应手了,所以登录我就不说了,那么现在我们已经可以登录我们的购物商城的系统中去了,那么我们在这个商城中到底能干什么呢,下面才是我们的重点,针对两个身份我们有不同的功能,首先我来说普通用户
    • 下订单
    • 首先我们的用户能够看到商城先所有的代售商品,并可以将他们加入到属于自己的购物车中,并进行支付或者取消支付,在我们上面的一句话转换到我们的程序中我们就需要好几个类来实现
      • 第一个我们需要一个ProdList.jsp界面来将商城中的所有商品进行展示,在展示之前我们需要ProdListServlet来获取商城中到底有哪些东西,获得到商城中商品后我们需要一个购物车car.jsp相当于容器来装下我们选择购买的东西,这里我们将自己购买的东西放在一个HashMap中,而这个Map我们将他放在session中,读者如果想实现客户端缓存的话可以将这个map存储到cookie中,最后想要支付我们还需要一个pay.jsp和计算金额的Servlet来实现支付功能。

        • ProdListServlet
        • ProdService service=(ProdService) BasicFactory.getFactory().getInstance("ProdService");

          User user=(User) request.getSession().getAttribute("user");

          List<Prod> list=null;

          /*

          if(user!=null && "admin".equals(user.getRole()))

          {

          int uid=user.getId();

          list=service.getAllProds(uid);

          }

          else

          {

          list=service.getAllProds();

          }

          加入监听器后就不需要再这里进行判断了

          */

          list=service.getAllProds();

          request.getSession().setAttribute("list", list);

          request.getRequestDispatcher("/prodlist.jsp").forward(request, response);

          • ProdList.jsp
          • <c:forEach items="${list }" var="l">
          • 只需要取到在ProdListServlet中存储的list就可以进行遍历了,就可以实现购物商城中的商品的浏览,到这里我们的购物商城已经实现了,
          • 下面就是加入购物车,加入购物车笔者建议在加入之前我们就开始判断数数据的合法性,基本合法就是购买数量不能为0 还有就是不能大于商城中商品的数量,在合法的数据中我们就将这个商品加入到我们自己的购物车(HashMap)。计入购物车中我们得将他展现出来供用户操作Car.jsp
          • car.jsp
          • <c:forEach items="${carMap }" var="car" varStatus="status">

            <c:set var="i" value="${i+1 }"></c:set>

            <tr align="center">

            <td><img src="${pageContext.request.contextPath }/GetImgServlet?id=${car.key.id }"></td>

            <td>${car.key.name }</td>

            <td>${car.key.category }</td>

            <td>${car.key.price }元</td>

            <td><b><a href="${pageContext.request.contextPath }/ChangeCarServlet?id=${car.key.id}&buynum=${car.value-1}"> - </a></b><input type="text" name="pnum" value="${car.value }" style="width: 30px;" onblur="check('${car.key.id }',this,'${car.value }','${status.count }')" /><b><a href="${pageContext.request.contextPath }/ChangeCarServlet?id=${car.key.id}&buynum=${car.value+1}"> + </a></b></td>

            <td><input type="text" name="oneprice" value="${car.value * car.key.price }" width="5px;"/>元</td>

            <c:set var="sum" value="${sum + car.value * car.key.price }"></c:set>

            <td name="price"><a href="${pageContext.request.contextPath }/DeleteProdServlet?id=${car.key.id}">删除商品</a></td>

            </tr>

            </c:forEach>
  • 到这里我们购物商城的框架就已经搭建好了,下面还剩下的就是管理员的一些操作和用户购物车结算或取消的一些相关操作,这些只是我们留在下一节进行讲解,在文章的最后我也会将我们的开发过程的笔记和最终的项目源码奉上。尽请期待!

java 购物商城小项目训练的更多相关文章

  1. java客房管理小项目,适合java小白练手的项目!

    java客房管理小项目 这个客房管理小项目,适合java初学者练手.功能虽然不多,但是内容很齐全! 喜欢这样文章的可以关注我,我会持续更新,你们的关注是我更新的动力!需要更多java学习资料的也可以私 ...

  2. Java Swing客户端小项目

    记录一下两个用java swing写的客户端. 项目1: 关键词:swing  jtable 代码如下: 1.主类: package com.my.agent.client; import java. ...

  3. java基础部分小项目

    贪吃蛇项目 import java.awt.Color; import java.awt.Graphics; import java.awt.Toolkit; import java.awt.even ...

  4. 27.Java 飞机游戏小项目

    开篇 游戏项目基本功能开发 飞机类设计 炮弹类设计 碰撞检测设计 爆炸效果的实现 其他功能 计时功能 游戏项目基本功能开发 这里将会一步步实现游戏项目的基本功能. 使用 AWT 技术画出游戏主窗口 A ...

  5. Java基础自学小项目

    实现一个基于文本界面的<家庭记账软件> 需求:能够记录家庭的收入,支出,并能够收支明细表 主要涉及一下知识点: - 局部变量和基本数据类型 - 循环语句 - 分支语句 - 方法调用和返回值 ...

  6. Java小项目之:教你做个聊天系统!

    Java小项目之:聊天系统 今天给大家带来的java练手小项目是一个简单的聊天室,界面简单,操作不难. 分为注册系统,登录系统和聊天系统三部分,很适合java小白练手. 完整的源码和素材请关注并私信我 ...

  7. 【实战小项目】python开发自动化运维工具--批量操作主机

    有很多开源自动化运维工具都很好用如ansible/salt stack等,完全不用重复造轮子.只不过,很多运维同学学习Python之后,苦于没小项目训练.本篇就演示用Python写一个批量操作主机的工 ...

  8. 你要的SSM(Spring+Springmvc+Mybatis)小项目来了!!!

    SSM-Maven-Heima 这是一个使用 SSM(Spring+Springmvc+Mybatis)框架的商城小项目,使用Maven构建项目,以MySQL为数据库系统,Redis的缓存服务器(并不 ...

  9. 毕业设计代做,各种系统微服务项目ssm项目,员工管理系统,微信小程序,购物商城,二手商城系统,销售系统,等等

    毕业设计代做,各种系统,微服务项目,ssm项目 小程序,商城等,期末作业等都可以,价格好说,长期接单, 有项目说明书,软件介绍相关文档,答辩的时候包过,知识点对接好,给你讲解等, 毕业设计代做,各种系 ...

随机推荐

  1. 使用java的MultipartFile实现layui官网文件上传实现全部示例,java文件上传

    layui(谐音:类UI) 是一款采用自身模块规范编写的前端 UI 框架,遵循原生 HTML/CSS/JS 的书写与组织形式,门槛极低,拿来即用. layui文件上传示例地址:https://www. ...

  2. 使用PowerShell比较本地文本文件与Web上的文本文件是否相同

    使用PowerShell比较本地文本文件是否相同通常有两种方式:1.通过Get-FileHash这个命令,比较两个文件的哈希是否相同:2.通过Compare-Object这个命令,逐行比较两个文件的内 ...

  3. Elasticsearch(一)开启外网访问

    1. 设置Elasticsearch对外访问的Host 修改Elasticsearch配置文件 elasticsearch.yml : network.host: 128.24.108.84  //在 ...

  4. MYSQL千万级别数据量迁移Elasticsearch5.6.1实战

    从关系型库中迁移数据算是比较常见的场景,这里借助两个工具来完成本次的数据迁移,考虑到数据量并不大(不足两千万),未采用snapshot快照的形式进行. Elasticsearch-jdbc,Githu ...

  5. Android开发-百度地图之电子围栏

    功能实现:根据经纬度创建一个坐标,判断该坐标是否在指定圆形覆盖范围内 两个计算方法,直接套用: /** * 地球半径 */private static double EARTH_RADIUS = 63 ...

  6. 第二章 Session会话管理

    采用网址重写的缺点: 在有些Web浏览器中,URL限制为2000个字符. 仅当有链接要插入值时,值才能转换成后面的资源.此外,要把值添加到静态页面的链接中,可不是一件容易的事情. 网址重写必须在服务器 ...

  7. 【题解】【A % B Problem(P1865)】-C++

    题目背景 题目名称是吸引你点进来的 实际上该题还是很水的 题目描述 区间质数个数 输入输出格式 输入格式: 一行两个整数 询问次数n,范围m 接下来n行,每行两个整数 l,r 表示区间 输出格式: 对 ...

  8. 【基础算法-模拟-例题-玩具谜题】-C++

    原题链接P1563 玩具谜题 这道题依然是一道模拟题目,就简单讲讲坑点: 1.有些时候在转圈的时候要用到它们站成了一个环的性质! 2.小人面朝的方向影响了它们左右的方向! 3.注意考虑顺时针逆时针与小 ...

  9. 【动态规划例题-数塔问题】-C++

    描述 观察下面的数字金字塔.写一个程序查找从最高点到底部任意处结束的路径,使路径经过数字的和最大.每一步可以 从当前点走到左下方的点也可以到达右下方的点. 在上面的样例中,从13到8到26到15到24 ...

  10. ASP.NET 前端数据绑定---<%#%>及Eval()的使用

    ASP.NET 前端html代码中会经常出现的<%%>的代码,里面的文本其实就是不能直接输出到客户端浏览器的文本,是需要服务器解释的. 在ASP中,<%%>里面的文本是vbsc ...