<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 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

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

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

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

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

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

    我把代碼粘貼出來:

    private String uploadFields(HttpServletRequest request,

               Map<String, String> map) {

           // 獲取request中的請求參數(shù)

           DiskFileItemFactory dfif = new DiskFileItemFactory();

           ServletFileUpload sfu = new ServletFileUpload(dfif);

           sfu.setHeaderEncoding("UTF-8");

           String file = null;

           try {

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

               // 遍歷所有參數(shù)

               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創(chuàng)建文件名稱

                      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);

                      }

                      // 關(guān)閉流

                      fos.close();

                      is.close();

                      fi.delete();

                  } else {

                      // 如果為表單字段,則將這些信息添加到map中返回給調(diào)用函數(shù)

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

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

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

                  }

               }

           } catch (Exception e) {

               e.printStackTrace();

           }

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

           return "images/" + file;

        }

            

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

    clip_image001

    看到里邊的orderitemorders表了吧,這就是一個多對多的關(guān)系。Orderitem就是中間表,記錄訂單的的id和書的id,還包含數(shù)量和總計字段。這樣,添加訂單或是查詢訂單這樣操作起來更直觀方便些,這就是面向?qū)ο蟮挠悬c。

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

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

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

             繼續(xù)整理工程去

             加油!


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


    網(wǎng)站導航:
     
    主站蜘蛛池模板: 一区二区三区精品高清视频免费在线播放| 亚洲国产成人高清在线观看| 亚洲av专区无码观看精品天堂| 国产国产人免费人成成免视频| 亚洲国产一级在线观看 | 亚洲av片在线观看| 美女内射毛片在线看免费人动物| 久久精品国产亚洲AV果冻传媒 | 久久精品国产亚洲av麻豆小说| 无码人妻久久一区二区三区免费| 亚洲国产精品国自产拍电影| 小草在线看片免费人成视久网| 亚洲精品成人网站在线播放| 免费在线视频你懂的| 亚洲男人的天堂久久精品| 成全视频在线观看免费高清动漫视频下载| 亚洲精品中文字幕无乱码麻豆| 国外成人免费高清激情视频| 亚洲乱码无人区卡1卡2卡3| 国产成人青青热久免费精品| 羞羞漫画登录页面免费| 国产aⅴ无码专区亚洲av麻豆 | 91免费在线播放| 亚洲久悠悠色悠在线播放| 国产精品免费一级在线观看| 成人午夜免费视频| 亚洲AV日韩AV永久无码绿巨人| 四虎在线最新永久免费| 男人的天堂av亚洲一区2区| 久久激情亚洲精品无码?V| 无码精品国产一区二区三区免费| 亚洲人成影院午夜网站| 国产美女a做受大片免费| 狠狠躁狠狠爱免费视频无码| 亚洲欧洲自拍拍偷综合| 国产精品极品美女免费观看| 两个人看的www免费视频中文| 亚洲欧洲日本精品| 亚洲成a人片在线观看国产| 高清一区二区三区免费视频| 亚洲乱亚洲乱妇无码|