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


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

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

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


  JSP显示页面

          我们的购物车方案中设定了3个JSP 页面: Inventory.jsp , Purchase.jsp和Receipt.jsp (代码见下)。应用程序发送Inventory.jsp页面给新来的顾客,顾客通过不断的更新Inventory.jsp,来挑选商品;顾客选择好想要购买的商品以后,应用程序就会把顾客的购买请求发送到Purchase.jsp页,进行处理;最后,顾客证实确实购买这些商品,应用程序把顾客请求发送到Receipt.jsp(其过程请参看图三)。


        我和说明的方便,我想把JSP的基本内容再简要的向大家介绍一下。JSP页面是使用特定的JSP标记与标准的 HTML混合,除了固定的模板数据以外,JSP页还能包括指令,脚本单元和动作,我们购物车系统也说明了以上三点,现在我想就这三个问题简单的谈一谈。

          在JSP页面中,我们可以使用JSP指令将一些与页面有关的信息传递到JSP引擎,指令的主要作用就是用来与JSP引擎之间进行沟通的,JSP中的指令是有语法规范的:<%@ directive %> 

  page指令

      page指令定义了一系列与JSP页面相关的属性,并用它们与JSP引擎进行通信。例如, 在Inventory.jsp中使用的一条page指令:<%@ page buffer="5kb" language="java" import="shoppingcart.*" errorPage="Error.jsp" %> 这条指令告诉JSP引擎,输出缓冲区大小是5k,在溢出之前输出缓冲区的输出流,它也向JSP引擎说明,当前页使用的脚本语言是Java语言,并请求引擎导入shoppingcart包中的所有Java类,最后,它还指示如果有任何无法处理的错误,就重定向到Error.jsp页面中去。因为在JSP1.1中,只能使用 Java作为脚本语言,所以我们可以省略page指令中关于脚本语言的那部分说明。

         include指令用来指定JSP文件被编译的时候,需要插入的文本或者代码,被包含的文件要能够被JSP引擎控制和访问。Inventory.jsp文件也使用了include指令:

  <%@ include file="header.html" %> 
  <%@ include file="footer.html" %> 

  第一个指令为我们的页面插入了一个标准的页眉;第二个指令则插入一个标准的注脚。我们可以使用这些指令为我们的JSP页面创造一致的外观。

  JSP脚本元素为你提供了把Java代码插入由当前的JSP页面产生的Servlet功能。在JSP中,有三种脚本语言元素---声明、小脚本和表达式。这些元素的语法形式是:

  <%! declaration; %>
  <% scriptlet %>
  <%= expression %>


           Inventory.jsp中三种元素都使用了。

        下面的JSP片段用来声明局部变量保存当前购物篮(BasketBean的实例)和产品目录。

  <%! BasketBean basket;
        Product[] catalogue;
      %> 

  从上面我们可以看出,JSP 声明必须以一个分号结束,并且这个声明的范围是整个JSP页。

  
声明这些局部变量以后,Inventory.jsp 使用一段小脚本从session对象中取回购物车对象(BasketBean)和商名目录,如下

  
<% basket =(BasketBean) session.getAttribute( BasketBean.BASKET);
          catalogue = InventoryBean.getCatalogue();
      %>


          所以我们可以看出,JSP 声明和 JSP小脚本只是放在特定的JSP标记之间的Java代码,当JSP引擎把一个JSP程序翻译成一个servlet时,它就把这些Java代码内嵌到新的Servlet代码中去。

          前面我们说过,我们从一个session对象中取得购物车对象,这个session对象是一个内部物体。JSP引擎提供一些内部隐含对象,这些对象可以直接被引用,我们可以不事先声明,也不需要专门的代码来创建他们的实例。它们在小脚本和表达式中总是可以使用的,而不需要预先声明。JSP 1.1 规范中列出内部隐含对象完整的集合。在程序中,另一个象这样的对象就是 HttpServletRequest对象(request),它在CustomerServlet类中作为一个参数被传递到 doPost()方法中,这就意味着Inventory.jsp 能够通过调用request.getSession(true).getAttribute(BasketBean.BASKET)来取回购物车的信息了。

  在JSP中表达式和小脚本为JSP动态生成网页提供一个强有力的工具。从下面的Inventory.jsp程序中我们可以看出,JSP代码段循环访问商品目录并且动态地为每个产品产生HTML表格,我们使用小脚本编写循环,然后在每一行中都混合使用HTML和JSP表达式。

(注:JSP引擎把小脚本标记之间的Java 代码直接插入引擎内部产生的 servlet 代码。JSP引擎对待JSP表达式也是不同的。它先把JSP表达式变换成字符串,然后在内部产生的servlet中把它们包入一个out.println()调用中。)

上一页  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
感谢 访问天极网,如果您觉得该文章涉及版权问题,请看这里!