<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 78, comments - 34, trackbacks - 0, articles - 1
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

             今天一大早去到學校,便開始編寫網上商城。寫到下午3點多,完成了!感覺十分的好,因為這是自己第一次將所學的WEB知識規整到一起了。做出來的成品,雖然不能拿出來展示(只是個練習,很多校驗沒加),但已經讓我十分開心了。以前為網上商城這個東西還是十分的恐懼,工程顯得比較龐大。其實加上了論壇和評論等功能,還是十分龐大的。

             今天寫些什么好呢?把工程中的一個難點寫出來吧!

             我們在添加書籍的時候可以添加一張書籍的照片,照片是存在硬盤目錄里的。而數據庫中保存的是照片在硬盤目錄中的路徑。

    1.        如何獲取瀏覽器向服務器端發送過來的圖片文件?使用request輸入流嗎?太麻煩了!Apache組織為我們提供了一個方便的工具——commons-fileupload,它可以很好的解決這一問題。

    2.        如何確保,圖片的名稱不一樣?當然是大名鼎鼎的UUID了,生成了一個不重復的隨機串就OK了!

    我把代碼粘貼出來:

    private String uploadFields(HttpServletRequest request,

               Map<String, String> map) {

           // 獲取request中的請求參數

           DiskFileItemFactory dfif = new DiskFileItemFactory();

           ServletFileUpload sfu = new ServletFileUpload(dfif);

           sfu.setHeaderEncoding("UTF-8");

           String file = null;

           try {

               List<FileItem> list = sfu.parseRequest(request);

               // 遍歷所有參數

               for (Iterator<FileItem> its = list.iterator(); its.hasNext();) {

                   FileItem fi = its.next();

                  // 是否為表單字段,如果不是則為文件上傳輸入流。

                  if (!fi.isFormField()) {

                      InputStream is = fi.getInputStream();

                      // 獲取圖片目錄

                      String dir = this.getServletContext().getRealPath("/")

                             + "/images/";

                      File dirF = new File(dir);

                      if (!dirF.exists())

                         dirF.mkdirs();

                      // 使用UUID創建文件名稱

                      file = UUID.randomUUID().toString()

                             + fi.getName().substring(

                                    fi.getName().lastIndexOf("."));

                      // 寫出文件

                      byte[] buf = new byte[1024];

                      int len = 0;

                      FileOutputStream fos = new FileOutputStream(new File(dir

                             + file));

                      while ((len = is.read(buf)) != -1) {

                         fos.write(buf, 0, len);

                      }

                      // 關閉流

                      fos.close();

                      is.close();

                      fi.delete();

                  } else {

                      // 如果為表單字段,則將這些信息添加到map中返回給調用函數

                      // filter無法對文件上傳進行過濾,所以需要手動對編碼轉換。

                      map.put(fi.getFieldName(), new String(fi.getString()

                             .getBytes("iso8859-1"), "UTF-8"));

                  }

               }

           } catch (Exception e) {

               e.printStackTrace();

           }

           // 返回在服務器保存后的文件路徑。

           return "images/" + file;

        }

            

    然后老方在下午4點鐘時,給大家講解了訂單的提交。訂單提交是唯一涉及到多表操作的模塊,這也是練習的重點。一個多對多的設計方式。如下模塊流程圖。

    clip_image001

    看到里邊的orderitemorders表了吧,這就是一個多對多的關系。Orderitem就是中間表,記錄訂單的的id和書的id,還包含數量和總計字段。這樣,添加訂單或是查詢訂單這樣操作起來更直觀方便些,這就是面向對象的有點。

             訂單處理模塊中也是首次使用到MVC,以前我認為Servlet就是業務邏輯層,其實不是。Servlet只是個Web層(V)。通過今天老方的講解,我發現自己并未完全融入面向對象的設計模式,還有些面向過程的東西在影響著我。不過我想,這一點很快就會改變!

             今天的練習確實達到的預期效果,雖然有些同學還未完成。不過,有的同學昨天晚上已經完成了,有的上午已經完成了。臥虎藏龍!我需要向他們好好學習。

             今晚回來時我把老方的工程復制到工作空間里了,結果我的工程名與他相同。暈!幸好我的包名與他不同,只有幾個JSP頁面的名稱與他相同,嚇我一跳。我今天嘗試著將數據庫字段、requestresponse中的屬性名稱封裝到靜態類中,但操作起來十分不方便,比如編寫一個SQL語句。在大工程中,這肯定非常有用!

             繼續整理工程去

             加油!


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲精品中文字幕无乱码| 亚洲精品无码少妇30P| 国产在线jyzzjyzz免费麻豆| 亚洲最大黄色网址| 国产一级淫片a视频免费观看| 一级做α爱过程免费视频| 亚洲av色影在线| 无码免费午夜福利片在线| 无遮挡免费一区二区三区| 亚洲天堂中文字幕| 爽爽日本在线视频免费| a级成人毛片免费视频高清| 亚洲综合激情五月丁香六月| 中文字幕一精品亚洲无线一区| 免费三级毛片电影片| 一级毛片免费观看不收费| 亚洲一级片在线观看| 亚洲伊人久久成综合人影院| 日韩免费一区二区三区在线播放| xvideos永久免费入口| 激情亚洲一区国产精品| 亚洲国产精品一区第二页 | 亚洲ts人妖网站| 国产综合亚洲专区在线| 久久久久久国产精品免费免费| 国产免费一区二区三区不卡| 亚洲精品国产第一综合99久久| 亚洲AV区无码字幕中文色| 亚洲麻豆精品国偷自产在线91| 嫩草视频在线免费观看| 久久大香香蕉国产免费网站| 污网站在线观看免费| 成人亚洲国产va天堂| 亚洲精品福利在线观看| 久久久久久久综合日本亚洲 | 亚洲最大福利视频| 亚洲天天做日日做天天看| 亚洲中文字幕无码中文字在线 | 中文字幕在亚洲第一在线| 国产男女性潮高清免费网站 | 99久久精品免费精品国产|