您现在的位置是: 软件 > 开发者网络 > 程序方舟 > 服务器端脚本编程 > JSP专辑 > 正文


-Win xp中的多种网络
-试验试验试验试验
-用Freehand实现位图矢量化
-网络电话面面观

电子商务模型的JSP、JavaBean实现
2001-05-08· ·wayne··yesky

上一页  1 2 3 4 5 6 7 8 9  下一页


  代码1 CustomerServlet.java

  package shoppingcart;

  import javax.servlet.*;
  import javax.servlet.http.*;
  import java.io.IOException;
 
  public class CustomerServlet extends HttpServlet {
  public void doGet(HttpServletRequest request,
   HttpServletResponse response) 
   throws ServletException, IOException {
    doPost(request, response);
   }
  // 处理顾客请求
  public void doPost(HttpServletRequest request,HttpServletResponse response) 
      throws ServletException, IOException {

   // 取得请求的Session对象 
   HttpSession session = request.getSession(true);
   BasketBean basket = null;

   file://如果没有购物车则创建一个新的如果已存在,则更新它
   basket = (BasketBean)session.getAttribute(BasketBean.BASKET);
   if(basket == null) {
    // 新的顾客,创建一个购物车。
    basket = new BasketBean();
    session.setAttribute(BasketBean.BASKET, basket);
   }
   else {
    // 已存在的顾客,保存篮中的内容。
    basket.savePurchases(request);
   }

   // 取得当前的工作流程。

   RequestDispatcher rd = null;
   String nextPage = request.getParameter(BasketBean.PAGE);

   if (nextPage == null || 
    nextPage.equals(BasketBean.UPDATE)) {
    // 从目录中查找选择

    rd = getServletConfig().getServletContext().getRequestDispatcher("Inventory.jsp");
   }
   else if (nextPage.equals(BasketBean.PURCHASE)) { 
    // 提供购买信息
    rd = getServletConfig().getServletContext()
    .getRequestDispatcher("Purchase.jsp");
   }
   else if (nextPage.equals(BasketBean.RECEIPT)) {
    file://  提供购买信息

    rd = getServletConfig().getServletContext().getRequestDispatcher("Receipt.jsp");
   }

   if (rd != null) {
    rd.forward(request, response);
   }
  }

  }


      上面的程序段显示了CustomerServlet类中的doGet()和doPost()方法。CustomerServlet类做了两件事情来控制我们应用程序的工作流程:

       一、通过 BasketBean 类实现,保持购物车组件的状态,;

       二、它通过一系列的JSP页面向顾客发送请求。

       一旦我们的购物车与某一个特定的顾客session相联系,顾客的BasketBean对象的实例就会存储在 HttpSession对象中。一个以普通ID进入CustomerServlet工作流程的客户,他会产生很多动作,servlet引擎提供了HttpSession对象来组织并存储这一系列的相互作用(Session对象为存储和取回任何使用唯一的键/值对的Java对象提供了方便的方法)。在CustomerServlet类中 ,我们首先通过HttpSession session = request.getSession(true)从 servlet 引擎中取得Session对象,大家都可以看到,我们传递了true值,意思是我们告诉Servlet引擎,如果一个session对象已经不存在了,就新建一个;然后我们查看Session中是否有我们的购物车,如果我们找不到购物车,我们就知道这个购物Session刚刚开始,我们必须新建一辆购物车,并且把它保存在Session对象中,如果我们能够在Session中找到购物车,那我们就知道顾客正处在一个购物期间,那时就必须存储购物车当前的状态。在查看了购物车的状态之后,我们把顾客的请求发送到相应的JSP页中去,请求本身包含一个状态参数(BasketBean.PAGE)告诉CustomerServlet把请求发送到哪里,我们的控制器取回这个参数,然后使用一个RequestDispatcher对象把请求提交给下一个JSP页。

上一页  1 2 3 4 5 6 7 8 9  下一页

■ 相关内容
 JSP技术简介之二
 JSP技术简介
 Java Servlet和JSP教程之JSP 技术概述
 JSP与EJB通信
 在JavaScript程序中整合Java函数
 为Delphi提供Pack功能
 推技术聊天室的实现(上)
 使用Java实现数据报通讯过程
 Java中的两个特殊变量this和super
感谢 访问天极网,如果您觉得该文章涉及版权问题,请看这里!