Java Web快速入门——第9讲

1、在JSP中如何存储信息

    前面介绍过的:在数据库中存储信息;在request对象中存储信息。
    分为两类:内存 和 持久存储
    内存中如何组织数据:
    pageContext对象,存储当前页面的信息;请求涉及多少个文件,就会创建多少个pageContext对象。
    request对象,一次请求会创建一个request对象,如果希望在同一次请求的多个文件之间共享信息,可以保存在request中。
    session对象,每个客户端对应一个session,session中用于存储在用户的整个访问过程中要使用的信息。最典型的应用把用户的登录信息保存在session中,这样在后续的页面中使用登录信息。
    application对象,整个网站对应这样一个对象,访问网站的所有用户在访问所有网页的时候都可以使用。典型的应用是公有的聊天室,聊天信息所有人都可以看到,这时候就应该使用application对象。

    持久存储:
    数据库,通过JDBC访问。
    文件,通过IO进行操作。
    Cookie,信息存储在客户端。如果使用数据库和文件,信息都存在服务器端。

2、网上购物车的基本功能
  
   浏览图书信息;
   把图书添加到购物车中;
   对购物车中的物品进行管理;
   查看购物车的信息;
   生成订单。

3、如何保存在购物过程中选择的物品?

   关心购物车中有哪些类型的物品,每种类型的物品有多少。物品的种类数量不确定。每次请求只能选择某一种物品。根据这些特点,应该设计购物车的存储结构如下:

   1)需要把购物车放到session中,这样才能进行多个页面之间的共享;
   2)因为物品种类不确定,所以一般选择ArrayList来存储物品种类以及数量;
   3)对于每一种物品,包含物品本身的信息以及物品的购买数量,通常使用订单项来表示,里面包含了物品对象及其数量。

4、完成向购物车中添加图书的功能

   V部分:输入,是选择物品向购物车添加的界面,使用物品信息查看界面;
          输出,显示购物车信息的页面。
   M部分:把选择的物品添加到购物车中,需要知道原来购物车中有什么信息,购物车在session中保存,所以需要对session进行操作。
   C部分:第一句话,获取信息,从输入界面获取要添加的图书,从session中获取原有的购物车信息。
          第二句话,调用M部分的添加购物车功能。
          第三句话,保存信息,把修改后的购物车重新写入session中。
          第四句话,转向显示购物车信息的页面。
5、构建订单项类
package bean;

// 表示购物项
public class Item{
   private BookBean book;
   private int quantity;
   public void setBook(BookBean book){
      this.book = book;
   }
   public BookBean getBook(){
      return book;
   }

   public void setQuantity(int quantity){
      this.quantity = quantity;
   }
   public int getQuantity(){
      return quantity;
   }
}

6、输入界面
  
   在books.jsp中的图书列表后增加“添加到购物车”这样的超链接。
7、删除功能、修改购物车信息
   界面:
   删除的代码:
   <form action="deleteItem" method="post">
      <input type="hidden" name="bookid" value="${item.book.bookid}">
      <input type="submit" value="删除">
   </form>
   修改的:
   <form action="updateCart" method="post">
      <input type="text" name="quantity" value="${item.quantity}">
      <input type="hidden" name="bookid" value="${item.book.bookid}">
      <input type="submit" value="修改">
   </form>

   M部分:
   从ArrayList对象cart中删除Item对象item:cart.remove(item)   cart.remove(i)
   修改功能:在添加过程中如果要添加的图书已经存在,就相当于修改。

   C部分:与添加功能中的代码非常类似

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值