<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)系 :: 聚合  :: 管理

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

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

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

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

    2.        如何確保,圖片的名稱不一樣?當然是大名鼎鼎的UUID了,生成了一個不重復的隨機串就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);

                      }

                      // 關閉流

                      fos.close();

                      is.close();

                      fi.delete();

                  } else {

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

                      // 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,還包含數(shù)量和總計字段。這樣,添加訂單或是查詢訂單這樣操作起來更直觀方便些,這就是面向對象的有點。

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

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

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

             繼續(xù)整理工程去

             加油!


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


    網站導航:
     
    主站蜘蛛池模板: 成人a视频片在线观看免费| 久久青草精品38国产免费| AV片在线观看免费| 亚洲黄色免费在线观看| 无码av免费网站| 亚洲国产成人久久精品影视| a级在线免费观看| 亚洲欧洲日产国码av系列天堂| 久久99久久成人免费播放| 亚洲国产综合人成综合网站| 一区二区三区在线免费 | 亚洲fuli在线观看| 久久久高清免费视频| 亚洲午夜一区二区三区| 免费看国产精品3a黄的视频| 亚洲日韩中文字幕一区| 国产性生交xxxxx免费| 免费人成网站永久| 自拍偷自拍亚洲精品情侣| 久久成人免费电影| 亚洲欧洲国产视频| 成人免费午夜在线观看| 国产成人亚洲综合无| 亚洲精品亚洲人成在线观看下载| h视频在线免费观看| 久久久久久亚洲精品| 日本高清在线免费| 亚洲AV色无码乱码在线观看| 国产精品V亚洲精品V日韩精品| 国产成人无码区免费网站| 中文字幕亚洲免费无线观看日本| 男女免费观看在线爽爽爽视频 | 国产在线观看麻豆91精品免费| 国产99在线|亚洲| 亚洲国产a级视频| 好紧我太爽了视频免费国产| 国产精品亚洲精品观看不卡| 亚洲精品国产日韩无码AV永久免费网| 华人在线精品免费观看| 亚洲爆乳无码专区www| 亚洲中文字幕无码久久2017 |