• 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. SQL参数化查询

    参数化查询(Parameterized Query 或 Parameterized Statement)是指在设计与数据库链接并访问数据时,在需要填入数值或数据的地方,使用参数 (Parameter) ...

  2. 数字IC后端布局阶段对Tie-high和Tie-low Net的处理

    本文转自:自己的微信公众号<集成电路设计及EDA教程> 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教程. 考虑到微信公众平台 ...

  3. python3+pyQt5+QtDesignner实现窗口化猜数字游戏

    描述:使用QtDesignner设计界面,pyQt5+python3实现主体方法制作的猜数字游戏. 游戏规则:先选择游戏等级:初级.中级.高级.魔鬼级,选择完游戏等级后点击“确定”,然后后台会自动生成 ...

  4. Java 集合类Hashmap

    一.HashMap 简介 HashMap在程序员的开发过程中是一个十分常用的集合类,它是一个以键值对形式存在的集合类, 在开发中我们可以利用的它的一个key存在即替换的特性,实现一个更新的去重的操作. ...

  5. SpringBoot第二十一篇:整合ActiveMQ

    作者:追梦1819 原文:https://www.cnblogs.com/yanfei1819/p/11190048.html 版权声明:本文为博主原创文章,转载请附上博文链接! 引言   前一章节中 ...

  6. I/O:Writer

    Writer: Writer append(char c) :将指定字符添加到此 writer. Writer append(CharSequence csq) :将指定字符序列添加到此 writer ...

  7. Python多进程与多线程编程及GIL详解

    介绍如何使用python的multiprocess和threading模块进行多线程和多进程编程. Python的多进程编程与multiprocess模块 python的多进程编程主要依靠multip ...

  8. .NET Core CSharp初级篇 1-5 接口、枚举、抽象

    .NET Core CSharp初级篇 1-5 本节内容类的接口.枚举.抽象 简介 问题 如果你需要表示星期或者是某些状态,使用字符串或者数字是否不直观? 你是否发现,无论何种电脑,它的USB口的设计 ...

  9. 自实现input上传指定文件到服务器

    遇到问题,解决问题,记录问题,成长就是一步一步走出来的. 一.添加 input 标签 我的工作中遇到了,需要上传pdf文件到服务器的需求,而且只能上传pdf文件,accept指定了 pdf 类型. & ...

  10. SGU495 Kids andPrices[期望DP]

    也许更好的阅读体验 \(\mathcal{Description}\) 有\(n\)个格子,每次等概率随机给一个格子染色,问涂\(m\)次后期望有多少格子被染色了 \(\mathcal{Solutio ...