日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > windows >内容正文

windows

JavaWeb图书管理系统day02

發(fā)布時(shí)間:2024/9/30 windows 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JavaWeb图书管理系统day02 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
  • 視頻+資料+筆記【鏈接:https://pan.baidu.com/s/127I2oA8zvhTECCmC6wMSmQ? ?提取碼:zjxs】
  • JavaWeb圖書管理系統(tǒng)【bookEstore文檔】
  • JavaWeb圖書管理系統(tǒng)【源碼 + 效果展示】
  • JavaWeb圖書管理系統(tǒng)day01
  • JavaWeb圖書管理系統(tǒng)day02
  • JavaWeb圖書管理系統(tǒng)day03
  • 目錄

    day01復(fù)習(xí)

    一、查看商品詳細(xì)信息

    二、添加商品到購(gòu)物車

    三、顯示購(gòu)物車商品

    四、購(gòu)物車刪除與修改操作


    第二天內(nèi)容:
    ?? ?1.查看商品詳細(xì)信息
    ?? ?2.添加商品到購(gòu)物車
    ?? ?3.顯示購(gòu)物車商品
    ?? ?4.購(gòu)物車刪除與修改操作

    day01復(fù)習(xí)

    1.注冊(cè)操作
    ?? ??? ?用戶注冊(cè)成功后,需要進(jìn)行郵件激活
    2.登錄操作
    ?? ??? ?使用Cookie。
    ?? ??? ?記住用戶名
    ?? ??? ??? ?當(dāng)用戶登錄成功后,將用戶名存儲(chǔ)到cookie中(持久化存儲(chǔ))
    ?? ??? ??? ?當(dāng)下一次再訪問(wèn)時(shí),就會(huì)從請(qǐng)求中得到指定cookie信息,從cookie中
    ?? ??? ??? ?獲取用戶名,顯示在文本框中
    ?? ??? ??? ?
    ?? ??? ??? ?注意:cookie中不能存儲(chǔ)中文
    ?? ??? ?自動(dòng)登錄操作
    ?? ??? ??? ?當(dāng)用戶登錄成功后,將用戶名與密碼存儲(chǔ)到cookie中(持久化存儲(chǔ))。
    ?? ??? ??? ?當(dāng)下一次再訪問(wèn)時(shí),我們會(huì)通過(guò)一個(gè)Filter進(jìn)行信息攔截,得到指定的cookie信息,完成自動(dòng)登錄操作。
    3.顯示所有商品操作
    ?? ??? ?www.bookEstore.com
    ?? ??? ?會(huì)訪問(wèn)index.jsp頁(yè)面,在這個(gè)頁(yè)面中 請(qǐng)求轉(zhuǎn)發(fā)到了ProductSerlvet中,并且 完成了查詢所有商品的操作,
    ?? ??? ?得到一個(gè)List<Product>,存儲(chǔ)到request域中,跳轉(zhuǎn)到page.jsp頁(yè)面
    ?? ??? ?在頁(yè)面上顯示出所有商品信息。
    ?? ??? ?
    4.添加商品操作
    ?? ?本質(zhì)上是一個(gè)文件上傳操作。因?yàn)槲覀冊(cè)谔砑由唐窌r(shí),需要指定一個(gè)商品的圖片。
    ?? ?
    ?? ?我們使用commons-fileupload 完成文件上傳
    ?? ?在AddProductServlet中完成了兩個(gè)操作:
    ?? ??? ?1.文件上傳操作
    ?? ??? ?2.書籍信息收集,添加到數(shù)據(jù)庫(kù)操作。

    一、查看商品詳細(xì)信息

    1.查詢商品詳細(xì)信息
    ?? ??? ??? ?
    ?? ??? ?在page.jsp頁(yè)面會(huì)顯示所以商品信息,它提供一個(gè)鏈接,可以 點(diǎn)擊 查看當(dāng)前書籍的詳細(xì)信息。
    ?? ??? ?
    ?? ??? ?<a href='${pageContext.request.contextPath}/product?method=findById&id=${p.id}'>速速搶購(gòu)</a>
    ?? ?
    ?? ??? ?會(huì)訪問(wèn)一個(gè)servlet(ProductServlet)并且傳遞了method=findById,id=xxxx.
    ?? ??? ?
    ?? ??? ?在servlet中根據(jù)傳遞的method值,判斷要執(zhí)行的是findById方法,也就根據(jù)id查找書籍信息。
    ?? ??? ?會(huì)調(diào)用ProductService中查找操作的方法,在ProductService中調(diào)用ProductDao中查找書籍方法,
    ?? ??? ?最后得到一個(gè)Product對(duì)象,也就是商品信息封裝對(duì)象。
    ?? ??? ?將查找到的Product對(duì)象封裝到request域中,請(qǐng)求轉(zhuǎn)發(fā)到productInfo.jsp頁(yè)面,
    ?? ??? ?在頁(yè)面上展示書籍詳細(xì)信息。

    二、添加商品到購(gòu)物車

    2.添加商品到購(gòu)物車操作
    ?? ? ?聲明:購(gòu)物車,沒(méi)有數(shù)據(jù)庫(kù),直接使用session存儲(chǔ)信息.
    ?? ? ?
    ?? ? ?當(dāng)productInfo.jsp頁(yè)面,點(diǎn)擊添加商品到購(gòu)物車時(shí),會(huì)將商品的id傳遞到服務(wù)器端
    ?? ? ?
    ?? ? ?在頁(yè)面上點(diǎn)擊添加商品到購(gòu)物車會(huì)調(diào)用一個(gè)js函數(shù)
    ?? ? ?function addProductToCart(id) {
    ?? ??? ?location.href = "${pageContext.request.contextPath}/cart?method=add&id=" + id;
    ?? ? ?}
    ?? ?
    ?? ? ?在服務(wù)器端會(huì)有CartServlet,它就是用于處理我們購(gòu)物車操作的。
    ?? ??? ?1.得到商品id ?request.getParameter("id");
    ?? ??? ?2.根據(jù)id查找出商品 ? Product對(duì)象.
    ?? ??? ?3.關(guān)于購(gòu)物車的數(shù)據(jù)結(jié)構(gòu)
    ?? ??? ??? ?Map<Product,Integer> 它就是我們的購(gòu)物車,最終Map集合會(huì)存儲(chǔ)到session中。
    ?? ??? ??? ?
    ?? ??? ?4.第一次添加商品到購(gòu)物車時(shí),在服務(wù)器端,根據(jù)就沒(méi)有購(gòu)物車,也就是沒(méi)有map集合。
    ?? ??? ? ?得到的是null值,就可以知道是第一次購(gòu)物,就可以將購(gòu)物車創(chuàng)建出來(lái),并且,將商品添加到Map集合中。?? ?

    ?? ??? ?5.如果不是第一次購(gòu)物,查詢后得到的map集合就不為null,就說(shuō)明購(gòu)物車中可能已經(jīng)存在了商品,
    ? ? ? ? ? 就需要考慮一個(gè)事情,就需要考慮一個(gè)事情,購(gòu)物車中存在了當(dāng)前要購(gòu)買的商品。

    ?? ??? ??? ?Map集合特點(diǎn):
    ?? ??? ??? ??? ?key是唯一的,如果使用put方法存儲(chǔ),那么,當(dāng)key重復(fù)時(shí),put方法 返回的就是原來(lái)的value值。
    ?? ??? ??? ??? ?
    ?? ??? ??? ??? ?可以根據(jù)put方法返回值,來(lái)判斷商品在購(gòu)物車中是否存在,
    ?? ??? ??? ??? ?如果存在了,也就是說(shuō),put方法返回值不為null,這時(shí)就可以將返回值+1,
    ? ? ? ? ? ? ? ? 再重新存儲(chǔ)到map集合中。

    三、顯示購(gòu)物車商品

    3.查看購(gòu)物車中商品
    ?? ?當(dāng)點(diǎn)擊查看購(gòu)物車中商品時(shí),會(huì)跳轉(zhuǎn)到一個(gè)jsp頁(yè)面,購(gòu)物車是存儲(chǔ)在session中的,
    ?? ?那么在jsp頁(yè)面上就可以直接得到session中的商品信息.
    ?? ?
    ?? ?<a href="${pageContext.request.contextPath}/showCart.jsp">
    ?? ??? ?
    ?? ? ??? ?使用jstl的forEach遍歷Map集合.
    ?? ??? ?<c:forEach items=${cart} ?var="entry">
    ?? ??? ??? ?
    ?? ??? ??? ?${entry.key}? ? --- 對(duì)于cart中的key,它就是一個(gè)Product對(duì)象
    ?? ??? ??? ?${entry.value} --- 對(duì)于caft中的value,它是一個(gè)Integer對(duì)象,其實(shí)就是商品數(shù)量
    ?? ??? ??? ?
    ?? ??? ?</c:forEach>
    ?? ??? ?
    ?? ??? ?通過(guò)<c:set> 來(lái) 完成 商品的總價(jià)計(jì)算操作。

    四、購(gòu)物車刪除與修改操作

    關(guān)于購(gòu)物車中商品的數(shù)量修改購(gòu)物車中商品刪除操作
    ?? ?1.關(guān)于數(shù)據(jù)修改問(wèn)題
    ?? ??? ?
    ?? ??? ?1.關(guān)于點(diǎn)擊+ -按鈕完成商品數(shù)量修改操作
    ?? ??? ??? ?當(dāng)點(diǎn)擊按鈕時(shí)會(huì)調(diào)用函數(shù)changeCount(商品的id,商品修改數(shù)量,商品的庫(kù)存)
    ?? ??? ??? ?οnclick="changeCount('${entry.key.id }','${entry.value-1}','${entry.key.pnum}')"
    ?? ??? ?
    ?? ??? ??? ?在js中它是沒(méi)數(shù)據(jù)類型的,那么當(dāng)傳遞參數(shù)時(shí),在函數(shù)中,可能認(rèn)為它是一個(gè)字符串,
    ?? ??? ??? ?那么就會(huì)引起問(wèn)題。通過(guò)parseInt()函數(shù)將數(shù)值轉(zhuǎn)換成數(shù)字.
    ?? ??? ?
    ?? ??? ??? ?在函數(shù)中處理數(shù)據(jù)后,會(huì)將數(shù)據(jù)傳遞到服務(wù)器端
    ?? ??? ? ? ?location.href = "${pageContext.request.contextPath}/cart?method=update&id=" + id
    ?? ??? ??? ??? ?+ "&count=" + count;
    ?? ??? ??? ??? ?
    ?? ??? ??? ?在CartServlet中通過(guò)判斷method=update完成操作.
    ?? ??? ??? ??? ?1.得到要修改商品的id,在得到要修改的商品數(shù)量值count.
    ?? ??? ??? ??? ?2.直接對(duì)購(gòu)物車中的商品進(jìn)行操作.
    ?? ??? ??? ??? ?3.為什么直接創(chuàng)建一個(gè)Product對(duì)象,將id值賦值給它,就可以
    ?? ??? ??? ??? ? ?直接修改商品數(shù)量.
    ?? ??? ??? ??? ? ?
    ?? ??? ??? ??? ? ?原因:對(duì)Product類中的equals方法進(jìn)行了重寫,只比較商品的id.
    ?? ??? ??? ??? ? ? ? ? 在重寫equalse方法時(shí),也將hashCode方法重寫了.
    ?? ??? ??? ??? ??? ? ??
    ?? ??? ?2.關(guān)于+號(hào)操作
    ?? ??? ??? ?以后面的原理一樣
    ?? ??? ??? ?
    ?? ??? ??? ?οnclick="changeCount('${entry.key.id}','${entry.value+1}','${entry.key.pnum }')"
    ?? ??? ?
    ?? ??? ??? ?區(qū)別:-號(hào)操作,是將商品的數(shù)量進(jìn)行-1操作
    ?? ??? ??? ? ? ? +號(hào)操作,是將商品的數(shù)量進(jìn)行+1操作
    ?? ??? ??? ??? ??
    ?? ??? ?3.文本框失去焦點(diǎn)時(shí),也調(diào)用?? ??? ??
    ?? ??? ??? ?οnblur="changeCount('${entry.key.id}',this.value,'${entry.key.pnum}')
    ?? ??? ??? ?注意:傳遞了this.value,它代表的是文本框中的值
    ?? ??? ??? ?
    ?? ??? ?4.數(shù)字文本框
    ?? ??? ??? ?通過(guò)對(duì)文本添加onkeydown事件操作,當(dāng)鍵盤按下時(shí),會(huì)調(diào)用一個(gè)函數(shù).numbText(event)
    ?? ??? ??? ?在函數(shù)中通過(guò)判斷按下鍵的keyCode值,就是鍵碼值,來(lái)判斷當(dāng)前是否按下的是指定的
    ?? ??? ??? ?按鈕。
    ?? ??? ??? ?
    ?? ??? ??? ?注意:對(duì)于firefox或ie瀏覽器,它們獲取事件對(duì)象event有區(qū)別。
    ?? ??? ??? ?code = e.which; 判斷firefox瀏覽器 ?得到鍵碼值.
    ?? ??? ??? ?code = window.event.keyCode; 判斷是ie瀏覽器,得到鍵碼值.
    ?? ??? ??? ?
    ?? ??? ??? ?
    ?? ??? ??? ?if (!(code >= 48 && code <= 57 || code == 8 || code == 46))?
    ?? ??? ??? ?這是判斷當(dāng)前按下的不是0-9 ?delete ?backspace
    ?? ??? ??? ?這時(shí)就要阻止事件的默認(rèn)行為.
    ?? ??? ??? ?
    ?? ??? ??? ?e.preventDefault(); ?firefox阻止默認(rèn)行為執(zhí)行
    ?? ??? ??? ?window.event.returnValue = false; ie瀏覽器阻止默認(rèn)行為執(zhí)行.
    ?? ??? ??? ?
    ?? ??? ?5.關(guān)于刪除操作
    ?? ??? ??? ?<a href="${pageContext.request.contextPath}/cart?method=remove&id=${entry.key.id}" οnclick="delConfirm(event)">刪除</a>
    ?? ??? ??? ?
    ?? ??? ??? ?這個(gè)超鏈接會(huì)訪問(wèn)服務(wù)器的一個(gè)CartServlet,method=remove代表要執(zhí)行的是刪除操作。
    ?? ??? ??? ?并且將商品的id傳遞到服務(wù)器端
    ?? ??? ??? ?
    ?? ??? ??? ?得到id后,new Product(),這個(gè)對(duì)象的id值就是傳遞過(guò)去的。
    ?? ??? ??? ?對(duì)于Product類來(lái)說(shuō),它已經(jīng)重寫了equals方法,它比較的就是id。
    ?? ??? ??? ?在map集合中,就可以直接根據(jù)我們創(chuàng)建的Product對(duì)象,將商品刪除。
    ?? ??? ??? ?
    ?? ??? ??? ?最后會(huì)判斷當(dāng)前購(gòu)物車中是否有商品,如果沒(méi)有,直接將購(gòu)物車刪除。
    ?? ??? ??? ?
    ?? ??? ??? ?確認(rèn)刪除操作?
    ?? ??? ??? ??? ?
    ?? ??? ??? ??? ?function delConfirm(e) {
    ?? ??? ??? ??? ??? ?var flag=window.confirm("確認(rèn)刪除商品嗎");
    ?? ??? ??? ??? ??? ?
    ?? ??? ??? ??? ??? ?if(!flag){
    ?? ??? ??? ??? ??? ??? ?//不刪除商品?? ??? ?
    ?? ??? ??? ??? ??? ??? ?//要想不刪除商品,要阻止事件的默認(rèn)行為執(zhí)行.
    ?? ??? ??? ??? ??? ??? ?if(e&&e.preventDefault){
    ?? ??? ??? ??? ??? ??? ??? ?// e對(duì)象存在,preventDefault方法存在 ---- 火狐瀏覽器
    ?? ??? ??? ??? ??? ??? ??? ?e.preventDefault();
    ?? ??? ??? ??? ??? ??? ?}else{
    ?? ??? ??? ??? ??? ??? ??? ?// 不支持e對(duì)象,或者沒(méi)有preventDefault方法 ---- IE
    ?? ??? ??? ??? ??? ??? ??? ?window.event.returnValue = false;
    ?? ??? ??? ??? ??? ??? ?}

    ?? ??? ??? ??? ??? ?}?? ??? ??? ??? ??? ?
    ?? ??? ??? ??? ?}
    ?? ??? ??? ??? ?我們阻止超鏈接的默認(rèn)事件執(zhí)行,這樣超鏈接就不會(huì)向href指定的路徑發(fā)送請(qǐng)求。

    總結(jié)

    以上是生活随笔為你收集整理的JavaWeb图书管理系统day02的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 国产美女视频一区 | 久久久久爱 | 免费看黄禁片 | 小柔的淫辱日记(h | 亚洲免费大片 | 久热中文字幕在线 | 麻豆精品国产传媒av绿帽社 | 久久久精品一区二区三区 | 国外成人性视频免费 | 四川一级毛毛片 | 少妇高潮一区二区三区99刮毛 | 麻豆国产一区二区三区四区 | 日韩精品无码一本二本三本色 | 丁香花五月 | 快播视频在线观看 | 国产精品白嫩白嫩大学美女 | 精品无码一区二区三区 | 国产成人免费网站 | 亚洲精品激情 | 日韩精品中文字幕在线播放 | 久久久久99精品成人片毛片 | 国产精品999在线观看 | 97一区二区三区 | 国产精品影院在线观看 | 日韩的一区二区 | 国产淫片av片久久久久久 | 欧美激情在线观看 | 69视频在线观看免费 | 色在线视频 | 直接看毛片 | 午夜影片 | 亚洲午夜精品一区二区三区 | 91麻豆产精品久久久久久夏晴子 | 色哟哟一区二区三区四区 | 天堂一区二区三区四区 | 日批视频在线免费看 | 色综合天天射 | 国产精品免费一区二区三区都可以 | 99视频在线看 | 亚洲中文字幕无码不卡电影 | 一卡二卡三卡在线 | 国产精品自产拍高潮在线观看 | 欧美精品激情 | 久久久久久9 | 黄色天天影视 | 熟女人妻aⅴ一区二区三区60路 | 国产中文 | 欧美亚洲黄色 | 黄色免费网站在线观看 | 国产精品久久久久毛片 | 中文激情网| 狠狠操一区| 欧美专区在线视频 | 青青草手机在线 | 国产麻豆午夜三级精品 | 免费在线观看黄网站 | 精品熟妇视频一区二区三区 | 熟女肥臀白浆大屁股一区二区 | 靠逼动漫 | 伊人久久综合影院 | 91超碰人人 | 熟女毛片 | 禁漫天堂下载18 | 成人网一区 | 亚洲精品乱码久久久久久蜜桃欧美 | 成年网站免费在线观看 | 91热爆视频 | 午夜精产品一区二区在线观看的 | 久久狠狠婷婷 | 欧美成人一区二区三区片免费 | 国产.com | 国产三区视频 | 欧美亚洲激情视频 | 日b视频免费 | 96国产在线 | 尤物在线免费观看 | 欧美日韩精品在线观看视频 | 黄色av免费在线观看 | 欧美精品在线看 | 男人操女人逼逼视频 | 五月天婷婷导航 | 国产精品刺激 | 18岁毛片 | 亚洲xx视频 | 亚洲午夜无码久久 | 日韩一级黄色片 | 日本三级理论片 | 中文字幕乱码免费 | 国产精品一区二区三区在线免费观看 | 亚洲欧美日韩一区 | 国产91一区 | 久久538| 欧美特级视频 | 国产精品美女一区二区三区 | 日本美女视频一区 | 国产又黄又嫩又滑又白 | 成人先锋av | 福利一区视频 | 欧美日韩制服 |