婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 實例講解JSP Model2體系結構(中)

實例講解JSP Model2體系結構(中)

熱門標簽:四川電信外呼系統靠譜嗎 珠海銷售外呼系統運營商 外呼系統啥意思 電銷外呼系統 排行榜 長春回撥外呼系統廠家 地圖標注創業項目入駐 山東智能云外呼管理系統 廣州三五防封電銷卡 地圖標注制作道路
理解“音樂無國界”
  “音樂無國界”的主界面是JSP頁 Eshop.jsp(見代碼清單1)。你會注意到,這個頁面幾乎只作為專門的用戶界面,不承擔任何處理任務――是一個最理想的JSP方案。另外,請注意另一個JSP頁Cart.jsp(見代碼清單2)被Eshop.jsp通過指令jsp:include page="Cart.jsp" flush="true" />包含于其中。

  代碼清單 1:EShop.jsp

  %@ page session="true" %>

  html>

  head>

   title>Music Without Borders/title>

  /head>

  body bgcolor="#33CCFF">

   font face="Times New Roman,Times" size="+3">

   Music Without Borders

   /font>

   hr>p>

   center>

   form name="shoppingForm"

   action="/examples/servlet/ShoppingServlet"

   method="POST">

   b>CD:/b>

   select name=CD>

   option>Yuan | The Guo Brothers | China | $14.95/option>

   option>Drums of Passion | Babatunde Olatunji | Nigeria | $16.95/option>

   option>Kaira | Tounami Diabate| Mali | $16.95/option>

   option>The Lion is Loose | Eliades Ochoa | Cuba | $13.95/option>

   option>Dance the Devil Away | Outback | Australia | $14.95/option>

   option>Record of Changes | Samulnori | Korea | $12.95/option>

   option>Djelika | Tounami Diabate | Mali | $14.95/option>

   option>Rapture | Nusrat Fateh Ali Khan | Pakistan | $12.95/option>

   option>Cesaria Evora | Cesaria Evora | Cape Verde | $16.95/option>

   option>Ibuki | Kodo | Japan | $13.95/option>

   /select>

   b>Quantity: /b>input type="text" name="qty" SIZE="3" value=1>

   input type="hidden" name="action" value="ADD">

   input type="submit" name="Submit" value="Add to Cart">

   /form>

   /center>

   p>

   jsp:include page="Cart.jsp" flush="true" />

  /body>

  /html>

  代碼清單 2:Cart.jsp

  %@ page session="true" import="java.util.*, shopping.CD" %>

  %

   Vector buylist = (Vector) session.getValue("shopping.shoppingcart");

   if (buylist != null (buylist.size() > 0)) {

  %>

  center>

  table border="0" cellpadding="0" width="100%" bgcolor="#FFFFFF">

   tr>

   td>b>ALBUM/b>/td>

   td>b>ARTIST/b>/td>

   td>b>COUNTRY/b>/td>

   td>b>PRICE/b>/td>

   td>b>QUANTITY/b>/td>

   td>/td>

   /tr>

   %

   for (int index=0; index buylist.size();index++) {

   CD anOrder = (CD) buylist.elementAt(index);

   %>

   tr>

   td>b>%= anOrder.getAlbum() %>/b>/td>

   td>b>%= anOrder.getArtist() %>/b>/td>

   td>b>%= anOrder.getCountry() %>/b>/td>

   td>b>%= anOrder.getPrice() %>/b>/td>

   td>b>%= anOrder.getQuantity() %>/b>/td>

   td>

   form name="deleteForm"

    action="/examples/servlet/ShoppingServlet"

    method="POST">

   input type="submit" value="Delete">

   input type="hidden" name= "delindex" value='%= index %>'>

   input type="hidden" name="action" value="DELETE">

   /form>

     /td>

    /tr>

    % } %>

   /table>

   p>

   form name="checkoutForm"

    action="/examples/servlet/ShoppingServlet"

    method="POST">

    input type="hidden" name="action" value="CHECKOUT">

    input type="submit" name="Checkout" value="Checkout">

   /form>

   /center>

  % } %>

  這里,Cart.jsp操縱著基于會話的購物車的表達,在MVC體系中,購物車就充當Model的角色。

  觀察Cart.jsp開頭處的腳本片段:

  %

   Vector buylist = (Vector) session.getValue("shopping.shoppingcart");

   if (buylist != null (buylist.size() > 0)) {

  %>

  這段腳本主要是從會話中取出購物車。如果購物車是空的或尚未創建,則它什么都不顯示;因此,當用戶第一次訪問這個應用程序時,呈現給他的視圖如圖3所示:


  圖3:音樂無國界,主視圖

  圖中按鈕文字:放入購物車

  如果購物車不為空,則選中的物品被依次從購物車中取出,如下面的腳本片段所示:

  %

   for (int index=0; index buylist.size(); index++) {

    CD anOrder = (CD) buylist.elementAt(index);

  %>

  描述物品的變量一旦被創建,就會被用JSP表達式直接嵌入靜態HTML模板中去。圖4顯示了當用戶向購物車中放入一些物品后的視圖。


  圖4:音樂無國界,購物車視圖

  圖中文字:Music Without Borders:音樂無國界;Quantity:數量;ALBUM:唱片;ARTIST:演唱者;COUNTRY:國家;PRICE:價格;Delete:刪除;Checkout:結帳。

  這里需要注意的重要一點是,在Eshop.jsp和Cart.jsp中實現的對所有動作的處理都由一個servlet――ShoppingServlet.java控制,如代碼清單3所示:

  代碼清單3:ShoppingServlet.java

  import java.util.*;

  import java.io.*;

  import javax.servlet.*;

  import javax.servlet.http.*;

  import shopping.CD;

  public class ShoppingServlet extends HttpServlet {

   public void init(ServletConfig conf) throws ServletException {

    super.init(conf);

   }

   public void doPost (HttpServletRequest req, HttpServletResponse res)

     throws ServletException, IOException {

    HttpSession session = req.getSession(false);

    if (session == null) {

     res.sendRedirect("http://localhost:8080/error.html");

    }

    Vector buylist=

     (Vector)session.getValue("shopping.shoppingcart");

    String action = req.getParameter("action");

    if (!action.equals("CHECKOUT")) {

     if (action.equals("DELETE")) {

      String del = req.getParameter("delindex");

      int d = (new Integer(del)).intValue();

      buylist.removeElementAt(d);

     } else if (action.equals("ADD")) {

      //以前是否購買了同樣的cd?

      boolean match=false;

      CD aCD = getCD(req);

      if (buylist==null) {

       //將第一張CD放入購物車

       buylist = new Vector(); //第一份定單

       buylist.addElement(aCD);

      } else { // 不是第一次購買

       for (int i=0; i buylist.size(); i++) {

        CD cd = (CD) buylist.elementAt(i);

        if (cd.getAlbum().equals(aCD.getAlbum())) {

         cd.setQuantity(cd.getQuantity()+aCD.getQuantity());

         buylist.setElementAt(cd,i);

         match = true;

        } //if name matches結束

       } // for循環結束

       if (!match)

        buylist.addElement(aCD);

      }

     }

     session.putValue("shopping.shoppingcart", buylist);

     String url="/jsp/shopping/EShop.jsp";

     ServletContext sc = getServletContext();

     RequestDispatcher rd = sc.getRequestDispatcher(url);

     rd.forward(req, res);

    } else if (action.equals("CHECKOUT")) {

     float total =0;

     for (int i=0; i buylist.size();i++) {

      CD anOrder = (CD) buylist.elementAt(i);

      float price= anOrder.getPrice();

      int qty = anOrder.getQuantity();

      total += (price * qty);

     }

     total += 0.005;

     String amount = new Float(total).toString();

     int n = amount.indexOf('.');

     amount = amount.substring(0,n+3);

     req.setAttribute("amount",amount);

     String url="/jsp/shopping/Checkout.jsp";

     ServletContext sc = getServletContext();

     RequestDispatcher rd = sc.getRequestDispatcher(url);

     rd.forward(req,res);

    }

   }

   private CD getCD(HttpServletRequest req) {

    //想象一下如果這些都在一個腳本片段中會有多么難看

    String myCd = req.getParameter("CD");

    String qty = req.getParameter("qty");

    StringTokenizer t = new StringTokenizer(myCd,"|");

    String album= t.nextToken();

    String artist = t.nextToken();

    String country = t.nextToken();

    String price = t.nextToken();

    price = price.replace('$',' ').trim();

    CD cd = new CD();

    cd.setAlbum(album);

    cd.setArtist(artist);

    cd.setCountry(country);

    cd.setPrice((new Float(price)).floatValue());

    cd.setQuantity((new Integer(qty)).intValue());

    return cd;

   }

  } 
您可能感興趣的文章:
  • JSP運行原理和九大隱式對象說明
  • 實例講解JSP Model2體系結構(下)
  • 實例講解JSP Model2體系結構(上)
  • JSP中使用JavaScript動態插入刪除輸入框實現代碼
  • JSP + ajax實現輸入框自動補全功能 實例代碼
  • JSP輸出HTML時產生的大量空格和換行的去除方法
  • jsp 頁面上圖片分行輸出小技巧
  • JSP動態輸出Excel及中文亂碼的解決
  • Jsp結合XML+XSLT將輸出轉換為Html格式
  • jsp源碼實例1(輸出)
  • JSP程序運行原理、文檔結構及簡單輸入輸出實例分析

標簽:潮州 北海 保定 紹興 玉樹 廣元 肇慶 吳忠

巨人網絡通訊聲明:本文標題《實例講解JSP Model2體系結構(中)》,本文關鍵詞  實例,講解,JSP,Model2,體系結構,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《實例講解JSP Model2體系結構(中)》相關的同類信息!
  • 本頁收集關于實例講解JSP Model2體系結構(中)的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产精品成人一区二区三区夜夜夜| 国产一区二区三区综合| 欧美视频在线播放| 久久久精品影视| 亚洲综合色丁香婷婷六月图片| 国产麻豆成人传媒免费观看| 欧美一级夜夜爽| 日韩vs国产vs欧美| 欧美福利一区二区| 天天综合网 天天综合色| 欧美日韩在线精品一区二区三区激情| 99精品欧美一区二区蜜桃免费| 精品日韩成人av| 久久国产精品99精品国产| 宅男在线国产精品| 免费成人av资源网| 精品欧美一区二区三区精品久久| 毛片一区二区三区| 26uuu亚洲| 成人永久看片免费视频天堂| 中文字幕乱码久久午夜不卡| 国产福利一区二区三区在线视频| 久久久国产一区二区三区四区小说| 国产一区三区三区| 中文字幕的久久| 色综合亚洲欧洲| 午夜激情久久久| 日韩一区二区影院| 国产美女精品一区二区三区| 中国色在线观看另类| 99久久亚洲一区二区三区青草| 亚洲色图制服诱惑| 欧美日韩精品一区二区天天拍小说 | 亚洲电影视频在线| 欧美午夜精品免费| 天天综合色天天| 精品久久久久久亚洲综合网| 国产精品一区免费视频| 国产精品你懂的在线欣赏| www.日韩av| 亚洲五月六月丁香激情| 91精品国产综合久久香蕉麻豆| 久久成人久久鬼色| 亚洲国产精品99久久久久久久久| 91蜜桃在线免费视频| 午夜视频在线观看一区二区三区| 日韩欧美电影一二三| 成人网男人的天堂| 亚洲午夜一区二区三区| 欧美大度的电影原声| 成人免费视频免费观看| 亚洲乱码中文字幕综合| 欧美一区二区三级| 国产麻豆精品久久一二三| 中文字幕在线不卡一区| 正在播放一区二区| 处破女av一区二区| 天堂资源在线中文精品| 欧美国产日本视频| 91精品国产综合久久蜜臀| 成人精品一区二区三区中文字幕 | 欧美xxxxx裸体时装秀| www.一区二区| 视频一区二区三区入口| 日本一区二区视频在线观看| 欧美日韩国产天堂| 337p亚洲精品色噜噜噜| 狠狠色狠狠色综合系列| 136国产福利精品导航| 欧美二区在线观看| 成人sese在线| 六月丁香婷婷色狠狠久久| 国产精品高潮呻吟| 欧美xxxx在线观看| 7777女厕盗摄久久久| 99久久99久久精品国产片果冻| 毛片一区二区三区| 亚洲成人免费电影| 亚洲图片另类小说| 国产亚洲一二三区| 精品精品国产高清一毛片一天堂| 在线视频一区二区三区| 成人性生交大片免费看中文| 久久精品99久久久| 青娱乐精品视频| 日韩高清不卡一区| 日韩专区中文字幕一区二区| 亚洲一区二区精品久久av| 亚洲视频电影在线| 亚洲欧美日韩久久| 国产精品欧美精品| 欧美激情资源网| 国产午夜精品在线观看| 精品国产乱码久久久久久久久| 欧美日韩免费一区二区三区| 日本精品视频一区二区三区| 成人动漫一区二区在线| 国产成人免费在线视频| 国产在线播放一区三区四| 美女脱光内衣内裤视频久久影院| 亚洲国产精品麻豆| 亚洲精品国产a| 亚洲美女少妇撒尿| 综合电影一区二区三区| 国产精品久久久久永久免费观看| 欧美精品一区二区三区蜜桃视频 | 一区二区三区四区蜜桃 | 国产在线视频不卡二| 蜜臀av亚洲一区中文字幕| 日韩av午夜在线观看| 免费人成网站在线观看欧美高清| 日本欧美肥老太交大片| 久久99久久久欧美国产| 国产麻豆91精品| 成人动漫中文字幕| 在线观看亚洲专区| 欧美一区永久视频免费观看| 日韩视频免费直播| 国产欧美日韩亚州综合 | 日本成人在线网站| 美女精品自拍一二三四| 国内成人自拍视频| 成人免费毛片嘿嘿连载视频| 97精品国产97久久久久久久久久久久| 色综合久久天天| 欧美久久久久久蜜桃| 欧美电影免费观看高清完整版在线观看| 精品精品国产高清a毛片牛牛 | 精品制服美女久久| 成人午夜私人影院| 在线精品观看国产| 欧美成人aa大片| 中文字幕在线一区| 午夜久久久影院| 日韩一区二区精品葵司在线| 久久综合九色综合97婷婷| 欧美视频中文字幕| 欧美久久久久中文字幕| 精品久久人人做人人爰| 国产精品美女久久久久久久| 亚洲最大成人综合| 久久精品免费观看| bt7086福利一区国产| 欧美久久一二区| 国产精品麻豆视频| 午夜精品视频一区| 大陆成人av片| 在线不卡一区二区| 欧美激情一区二区三区蜜桃视频| 亚洲一区二区不卡免费| 国产一区二区91| 在线精品视频一区二区三四| 久久只精品国产| 亚洲与欧洲av电影| 国产一本一道久久香蕉| 欧美麻豆精品久久久久久| 欧美激情在线一区二区| 青青草原综合久久大伊人精品 | 国产一区在线不卡| 欧美日韩国产成人在线91| 国产午夜精品一区二区三区嫩草 | 五月激情综合网| 成人夜色视频网站在线观看| 欧美日韩视频在线观看一区二区三区| 久久久99精品免费观看| 亚洲成人综合视频| 91在线一区二区三区| 精品国产伦一区二区三区观看方式 | 99久久婷婷国产综合精品| 日韩写真欧美这视频| 亚洲三级视频在线观看| 国产精品18久久久久久vr| 欧美日韩国产影片| 专区另类欧美日韩| 国产一区二区看久久| 欧美一二三四区在线| 亚洲18女电影在线观看| 91在线国产福利| 国产三级一区二区三区| 精品一区二区三区香蕉蜜桃| 欧美精品在线视频| 伊人性伊人情综合网| 粉嫩绯色av一区二区在线观看 | 国产精品对白交换视频 | 91精品国产91久久久久久最新毛片| 亚洲精品免费在线播放| 丁香婷婷深情五月亚洲| 精品国产污污免费网站入口| 日本亚洲一区二区| 欧美三级视频在线| 亚洲激情图片qvod| 91美女蜜桃在线| 亚洲天堂久久久久久久| 成人av资源站| 国产精品青草综合久久久久99| 国产91丝袜在线18| 亚洲国产精品成人综合色在线婷婷| 福利电影一区二区三区| 国产精品久久久久久久蜜臀 | 亚洲视频 欧洲视频|