`

JSP购物车实例讲解

    博客分类:
  • JSF
阅读更多

名词解释:
    购物车,顾名思义,就是具有与超市中购物车相同功能的模块.
本例主要以实现购物车基本功能(向购物车中添加商品,修改商品,删除商品).我将采用Struts1.2来写这个例子,好了,现在我们开始.成品如下图:

 

 

 

 

图-1

 

 

图-2

 

 

一.我们首先要建立数据库,内容很简单,只需有三个字段,即:商品编号,商品名称,商品价格.然后为其添加一些商品即可.
二.在首页面上我们用多选框来选定要买的商品,然后将每个选定的商品的编号作为一个数组传入Action中进行处理.
三.下面为大家来讲解一下Action中对于购物车功能实现的核心代码:

        //这一步很简单,就是获取session.用于我们后来存储购物车的内容.
         HttpSession session = request.getSession();
        //这一步就是从session中获取购物车.
  Vector car = (Vector) session.getAttribute("car");
        //这是我首页面的Form表单
  IndexForm inf = (IndexForm) form;
        //product_do是我对于商品处理的一个类,其中包括安商品编号查找商品所有信息.
  product_do pdo = new product_do();
        //这就是我们得到的从首页面传过来的选定的商品编号的数组
  String[] choice = inf.getChoice();
        //下面判断这个数组是否为空.
     if (choice.length == 0) {
     //如果为空,说明没有选定任何商品,则跳回首页面
  return mapping.getInputForward();
     } else {
            //如果不为空,遍历这个数组.
   for (int i = 0; i < choice.length; i++) {
                              //声明一个布尔型变量,用于以后对于购买重复商品则数量叠加的控制.
    boolean f = false;
                              //安数组中的现在下标位置的值(也就是商品编号),来获得这个商品的所有信息,并存入一个商品的javabean.
    productBean pb = pdo.showproductByid(Integer
      .parseInt(choice[i]));
                              //创建一个新的购物车bean,并向其存入上面得到的商品bean里面的商品信息.
    carBean cb = new carBean();
    cb.setProduct_id(pb.getProduct_id());
    cb.setProduct_name(pb.getProduct_name());
    cb.setProduct_price(pb.getProduct_price());
    cb.setProduct_num(1);
    cb.setProduct_totalmoney();
                              //这个判断是检查上面得到的购物车car是否为空
    if (car==null) {
    //如果为空的话,创建一个新的集合Vector,并将上面创建的购物车carBean存放进来.
     car = new Vector();
     car.addElement(cb);
    } else {
    //如果不为空的话,遍历session中得到的购物车car.
     for (int j = 0; j < car.size(); j++) {
     //如果当前商品在购物车中已经存在的话,就给它的数量加一,并且重新计算它的总价格,然后重新放回到car的原位置
      carBean cb2 = (carBean) car.elementAt(j);
      if (cb2.getProduct_id() == cb.getProduct_id()) {
       cb2.setProduct_num(cb2.getProduct_num() + 1);
       cb2.setProduct_totalmoney();
       car.setElementAt(cb2, j);
       f = true;
      }
     }
          //购物车中没有当前商品时,将其添加到购物车中
     if (f == false) {
      car.addElement(cb);
     }
    }
   }

  }
  //将购物车car放入session中,然后跳转到查看购物车页面.
  session.setAttribute("car", car);
  return mapping.findForward("tocar");

 

四.下面我将给出商品bean和购物车bean的源代码

    商品bean:  productBean

  

  public class productBean {
 int product_id;

 String product_name;

 float product_price;

 public int getProduct_id() {
  return product_id;
 }

 public void setProduct_id(int product_id) {
  this.product_id = product_id;
 }

 public String getProduct_name() {
  return product_name;
 }

 public void setProduct_name(String product_name) {
  this.product_name = product_name;
 }

 public float getProduct_price() {
  return product_price;
 }

 public void setProduct_price(float product_price) {
  this.product_price = product_price;
 }
    }

    
    购物车bean:  carBean

   

 public class carBean {
 int product_id;

 String product_name;

 float product_price;

 int product_num;

 float product_totalmoney;

 public int getProduct_id() {
  return product_id;
 }

 public void setProduct_id(int product_id) {
  this.product_id = product_id;
 }

 public String getProduct_name() {
  return product_name;
 }

 public void setProduct_name(String product_name) {
  this.product_name = product_name;
 }

 public int getProduct_num() {
  return product_num;
 }

 public void setProduct_num(int product_num) {
  this.product_num = product_num;
 }

 public float getProduct_price() {
  return product_price;
 }

 public void setProduct_price(float product_price) {
  this.product_price = product_price;
 }

 public float getProduct_totalmoney() {
  return product_totalmoney;
 }

 public void setProduct_totalmoney() {
  this.product_totalmoney = product_price * product_num;
 }
     }

 
五.下面给出商品处理的逻辑类的源代码:

    product_do:

public class product_do {
 
 public productBean showproductByid(int id) {
  productBean pb = null;
  Connection conn = DBConnect.getDB();
  Statement stmt = null;
  ResultSet rs = null;
  try {
   stmt = conn.createStatement();
   rs = stmt.executeQuery("select * from product where product_id="
     + id);
   while (rs.next()) {
    pb = new productBean();
    pb.setProduct_id(rs.getInt(1));
    pb.setProduct_name(rs.getString(2));
    pb.setProduct_price(rs.getFloat(3));

   }
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } finally {
   try {
    if (rs != null)
     rs.close();
    if (stmt != null)
     stmt.close();
    if (conn != null)
     conn.close();
   } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
  }
  return pb;
 }
}

 
六.好了,主要逻辑已经讲完了,我只是给出了一些核心代码,至于页面上如何显示,各页面与Action之间如何连接就看各位看官自己的爱好了,至于还想要什么功能应该也不是什么难事,如果有问题的话请给我留言,谢谢各位!

分享到:
评论
2 楼 cn_arthurs 2008-09-18  
看到网上说session方式,对服务器压力挺大,楼主有没有碰上这样的问题
1 楼 chucai 2008-08-10  
能不能写写struts2做成的购物车模块,把购物车放在session里面?

相关推荐

    Jsp购物车实例---完整代码

    总的来说,JSP购物车实例是一个实用的学习资源,它涵盖了Web开发中的一些基本概念和技术,如会话管理、数据库操作和前端交互。通过学习和实践这个实例,开发者可以提升自己的JSP技能,并为构建更复杂的电子商务系统...

    jsp购物车的实现的案例

    通过以上步骤,我们可以构建出一个基本的JSP购物车系统。这个案例提供了一个学习和实践JSP、Servlet、JavaBeans和Web开发的好机会。你可以通过解压`shoppingcart`文件,查看源代码,了解各个部分是如何协同工作的,...

    韩顺平jsp购物车源码

    【标题】"韩顺平jsp购物车源码"是一个典型的基于Java Server Pages(JSP)技术的电子商务系统实现,主要用于教学目的,展示了如何利用JSP来构建一个基本的在线购物车功能。在这个项目中,我们可以深入学习JSP的核心...

    运用jsp实现的购物车模块

    "运用jsp实现的购物车模块"是一个典型的Web应用实例,它涵盖了用户交互、数据存储和业务逻辑等多个方面。以下将详细讲解这一模块涉及的关键知识点。 首先,JSP(JavaServer Pages)是Java平台上的动态网页技术,它...

    韩顺平细说jsp中购物车项目

    【标题】:“韩顺平细说jsp中购物车项目”是一个关于使用JavaServer Pages(JSP)技术实现购物车功能的教学资源。这个项目由知名讲师韩顺平设计,旨在为初学者提供一个基础但全面的实例,帮助他们理解和掌握如何在...

    jsp内置对象讲解及实例

    本文将详细介绍JSP中的九个内置对象,并通过实例来展示它们的使用方法。 ### JSP内置对象详解 #### 1. pageContext对象 `pageContext`是JSP页面上下文对象,可以访问页面作用域内的所有属性,也可以用它来获取其他...

    jsp 项目实例

    3. **51CTO下载-天下淘网站源码(含LIB可运行)**:这个实例可能是类似于淘宝的电子商务平台,展示了如何使用JSP搭建大型在线购物网站,包括商品浏览、购物车、订单处理等功能。 4. **51CTO下载-JSP网上书店系统...

    JSP动态建站实例讲解

    ### JSP动态建站实例讲解 #### 一、引言 在现代Web开发领域中,JSP(JavaServer Pages)是一种广泛使用的服务器端脚本技术,它允许将动态内容嵌入到HTML页面中,从而创建功能强大的动态网站。本文旨在通过一个实际...

    jsp网站开发实例教程

    本教程针对初学者,通过实例讲解JSP网站开发的基本概念、原理以及实际操作步骤,旨在帮助学习者快速掌握JSP开发技能,构建自己的网站。 **一、JSP概述** JSP是由Sun Microsystems公司推出的动态网页技术,它允许...

    JSP网络开发实例自学手册实例代码

    这个压缩包包含了书中所讲解的各种实例的源代码,使得学习者能够亲手实践,加深理解和记忆。 JSP是Java平台上的一个动态网页技术,它允许开发者将静态HTML内容与动态Java代码结合,以创建交互式的Web应用。JSP的...

    JSP网络开发实例自学手册(项目源码)

    同时,书中还可能讲解了如何使用IDE(如Eclipse或IntelliJ IDEA)进行JSP项目的开发和调试,以及如何部署到Web服务器(如Tomcat)上运行。 总的来说,《JSP网络开发实例自学手册》结合源码的学习方式,有助于读者从...

    jsp实现商品购物车查看

    本文将详细讲解如何使用JSP来实现一个商品购物车的基本功能,包括查看购物信息、商品信息以及商品库存等核心模块。 首先,我们需要理解JSP的基本结构。JSP文件通常包含HTML标记和嵌入的Java代码,这些代码负责处理...

    Jsp+JavaBean实现简单的在线购物车

    本文将详细讲解如何利用这两种技术来创建一个简单的在线购物车系统。 首先,我们需要了解JSP和JavaBean的基本概念。JSP是一种动态网页技术,它允许开发者在HTML页面中嵌入Java代码,使得网页具有处理服务器端逻辑的...

    购物车实例

    综上所述,构建一个J2EE环境下的购物车实例涉及了Web开发的多个层面,包括前端展示、后端逻辑、会话管理、数据库操作以及服务接口设计。了解和掌握这些技术对于成为一名专业的J2EE开发者至关重要。

    JSP书店开发完整实例

    本实例的文档"JSP书店开发完整实例.doc"应详细讲解了以上各点,并提供了具体的代码示例和步骤指导,帮助读者理解如何运用JSP和Java Bean构建一个完整的网上书店系统。在实践中,读者不仅可以学习到技术知识,还能...

    jsp和javabean的实例

    jsp和javabean的实例 jsp和javabean是当今非常流行的动态网站开发技术,jsp作为一个很好的动态网站开发语言,已经得到了越来越广泛的应用。在jsp应用程序中,jsp+javabean的组合已经成为了事实上最常见的jsp程序的...

    PPT:JSP基础知识讲解

    本篇PPT主要讲解了JSP的基础知识,特别是与JavaBean相关的部分,适合初学者入门学习或者作为复习材料。 首先,我们来看看**JavaBean**的概念。JavaBean是一种遵循特定规范的Java类,它是可复用的、平台独立的软件...

    JSP网站开发典型模块与实例精讲(上)

    在本资源中,"JSP网站开发典型模块与实例精讲(上)" 是一个关于使用JavaServer Pages(JSP)进行网站开发的教程,重点在于通过具体的实例来讲解常见的开发模块。这个教程可能包含了三个主要章节,即"chapter2"、...

    jsp动态网站开发与实例(第3版)源文件

    《jsp动态网站开发与实例(第3版)》是一本深入浅出地讲解JSP(Java Server Pages)技术的专业书籍,由清华大学出版社出版,适用于计算机类课程教学或自学。本书的源文件包含了丰富的实例代码,旨在帮助读者通过实践...

    jsp动态网站开发与实例

    总之,"jsp动态网站开发与实例(第3版)"涵盖的内容广泛而深入,不仅讲解了JSP的基本概念和技术,还提供了丰富的实例和课件,旨在培养读者的实战能力,使其能够独立开发功能完善的动态网站。无论你是初学者还是有...

Global site tag (gtag.js) - Google Analytics