版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
單元4購(gòu)物網(wǎng)站購(gòu)物車(chē)模塊設(shè)計(jì)
(JSP+Servlet+JavaBean) JavaWeb應(yīng)用程序設(shè)計(jì)時(shí)使用JavaBean可將Web程序的業(yè)務(wù)邏輯代碼與HTML代碼分離,使之成為獨(dú)立可重復(fù)使用的模塊,從而實(shí)現(xiàn)代碼的重用及程序維護(hù)的方便。
JavaBean是一種可重復(fù)使用的、跨平臺(tái)的軟件組件,在JSP頁(yè)面中通過(guò)特定的JSP標(biāo)簽來(lái)訪(fǎng)問(wèn)JavaBean,其可用于多個(gè)Web組件進(jìn)行共享。 網(wǎng)站購(gòu)物車(chē)模塊是購(gòu)物網(wǎng)站非常重要和常見(jiàn)的模塊之一,當(dāng)購(gòu)買(mǎi)者在購(gòu)物網(wǎng)站選好中意的商品時(shí),只需單擊購(gòu)買(mǎi)商品相關(guān)按鈕就會(huì)自動(dòng)添加到購(gòu)物車(chē)中。 購(gòu)物車(chē)在業(yè)務(wù)上主要分為兩個(gè)部分:將商品添加到購(gòu)物車(chē)和顯示購(gòu)物車(chē)中的商品。 本單元的購(gòu)物車(chē)模塊是基于JSP+Servlet+JavaBean技術(shù)實(shí)現(xiàn)的。【知識(shí)梳理】1.JavaBean簡(jiǎn)介
JavaBean是用于封裝某種業(yè)務(wù)邏輯或?qū)ο蟮腏ava類(lèi),該類(lèi)具有特定的功能,即它是一個(gè)可重用的Java軟件組件模型。 由于這些組件模型都具有特定的功能,將其進(jìn)行合理的組織后,可以快速生成一個(gè)全新的應(yīng)用程序,實(shí)現(xiàn)程序代碼的重用。
JavaBean的功能是沒(méi)有任何限制的,對(duì)于任何可以使用Java代碼實(shí)現(xiàn)的程序,都可以使用JavaBean進(jìn)行封裝,如創(chuàng)建 一個(gè)實(shí)體對(duì)象,數(shù)據(jù)庫(kù)連接與操作等。
JavaBean可以分為兩類(lèi),即可視化的JavaBean與非可視化的JavaBean。 可視化的JavaBean是一種傳統(tǒng)的應(yīng)用方式,主要用于實(shí)現(xiàn)一些可視化界面,如窗體、按鈕、文本框等。 非可視化的JavaBean主要用于實(shí)現(xiàn)一些業(yè)務(wù)邏輯或封裝一些業(yè)務(wù)對(duì)象,并不存在可視化的外觀(guān)。
JavaBean實(shí)際上就是一個(gè)Java類(lèi),這個(gè)類(lèi)可以重用,可以很好地實(shí)現(xiàn)HTML代碼與業(yè)務(wù)邏輯的分離。 定義JavaBean的基本要求如下。 ①所有的Java類(lèi)必須放在一個(gè)包中。 ②所有的Java類(lèi)必須聲明為public類(lèi)型,這樣才能被外部訪(fǎng)問(wèn)。 ③類(lèi)中所有的屬性都必須封裝,即使用private聲明。 ④封裝的屬性如果需要被外部所操作,則必須編寫(xiě)對(duì)應(yīng)的set×××()方法和get×××()方法。 ⑤一個(gè)JavaBean中至少存在一個(gè)無(wú)參構(gòu)造方法,為JSP中的標(biāo)簽所使用。2.JSP操作JavaBean對(duì)象的動(dòng)作標(biāo)簽(1)<jsp:useBean>動(dòng)作標(biāo)簽 <jsp:useBean>動(dòng)作標(biāo)簽用于在JSP頁(yè)面只創(chuàng)建一個(gè)JavaBean實(shí)例,并通過(guò)屬性的設(shè)置將該實(shí)例存放到JSP指定的范圍內(nèi)。序號(hào)屬性名稱(chēng)屬性說(shuō)明1id屬性id屬性表示實(shí)例化對(duì)象的名稱(chēng),程序中通過(guò)該名稱(chēng)對(duì)JavaBean進(jìn)行引用2scope屬性scope屬性用于設(shè)置JavaBean的作用域,分別為page、request、session和application,默認(rèn)情況下為page3class屬性class屬性用于指定JavaBean的完整類(lèi)名,由包名稱(chēng)與類(lèi)名稱(chēng)結(jié)合表4-1
<jsp:useBean>標(biāo)簽的屬性說(shuō)明(2)<jsp:setProperty>標(biāo)簽 <jsp:setProperty>標(biāo)簽用于給JavaBean的屬性賦值,要求JavaBean中相應(yīng)的屬性要提供set×××()方法。 通常情況下,該標(biāo)簽與<jsp:useBean>標(biāo)簽配合使用。序號(hào)屬性名稱(chēng)屬性說(shuō)明1name屬性name屬性指定JavaBean的引用名稱(chēng),即<jsp:useBean>標(biāo)簽中的id屬性值,該實(shí)例對(duì)象必須在其前面使用<jsp:useBean>定義過(guò)2property屬性property屬性指定JavaBean中的屬性名稱(chēng),該屬性是必需的,其取值有兩種,分別為“*”和“JavaBean中的屬性名稱(chēng)”3value屬性value屬性指定JavaBean中屬性的值4param屬性param屬性指定JSP請(qǐng)求中的參數(shù)名,通過(guò)該參數(shù)可以將JSP請(qǐng)求參數(shù)的值賦給JavaBean中的屬性表4-2
<jsp:setProperty>的屬性說(shuō)明 <jsp:setProperty>標(biāo)簽的property、value和param結(jié)合使用,根據(jù)這3個(gè)屬性的不同取值,<jsp:setProperty>標(biāo)簽有4種使用方法,如表4-3所示。序號(hào)類(lèi)型屬性設(shè)置格式使用說(shuō)明1自動(dòng)匹配property="*"當(dāng)HTML表單中控件的name屬性值與JavaBean中的屬性名一致時(shí),可以使用自動(dòng)匹配方式,自動(dòng)調(diào)用JavaBean中的set×××()方法為屬性賦值,否則不能賦值2指定屬性property="屬性名稱(chēng)"當(dāng)HTML表單中控件的name屬性值與JavaBean中的屬性名一致時(shí),為名稱(chēng)相同的JavaBean屬性賦值,否則不賦值3指定內(nèi)容property="屬性名稱(chēng)"value="屬性值"將一個(gè)指定的屬性值直接賦給JavaBean中指定的屬性4指定參數(shù)property="屬性名稱(chēng)"
param="參數(shù)名"將JSP請(qǐng)求中request對(duì)象參數(shù)的值賦JavaBean中指定的屬性表4-3
<jsp:setProperty>標(biāo)簽的屬性設(shè)置方法(3)<jsp:getProperty>標(biāo)簽 <jsp:getProperty>標(biāo)簽用于獲取JavaBean中的屬性值,但要求JavaBean的屬性必須具有相對(duì)應(yīng)的get×××()方法。3.JavaBean的作用域
JavaBean的作用域有4種,分別為page、request、session和application,默認(rèn)情況下為page。 通過(guò)<jsp:useBean>標(biāo)簽的scope屬性進(jìn)行設(shè)置,這4種作用域與JSP頁(yè)面中的page、request、session和application的作用域相對(duì)應(yīng)。 各種作用域的說(shuō)明如表4-4所示。選項(xiàng)名稱(chēng)作用域說(shuō)明pageJavaBean對(duì)象的有效范圍為客戶(hù)請(qǐng)求訪(fǎng)問(wèn)的當(dāng)前JSP頁(yè)面,以下兩種情況下都會(huì)結(jié)束其生命周期:(1)客戶(hù)請(qǐng)求訪(fǎng)問(wèn)的當(dāng)前JSP頁(yè)面通過(guò)<forward>標(biāo)簽將請(qǐng)求轉(zhuǎn)發(fā)到另一個(gè)JSP頁(yè)面;(2)客戶(hù)請(qǐng)求訪(fǎng)問(wèn)的當(dāng)前JSP頁(yè)面執(zhí)行完畢并向客戶(hù)端發(fā)回響應(yīng)requestJavaBean對(duì)象的有效范圍為:(1)客戶(hù)請(qǐng)求訪(fǎng)問(wèn)的當(dāng)前JSP網(wǎng)頁(yè);(2)和當(dāng)前JSP頁(yè)面共享同一個(gè)客戶(hù)請(qǐng)求的頁(yè)面,即當(dāng)前JSP頁(yè)面中使用<%@include>標(biāo)簽、<jsp:include>標(biāo)簽和<forward>標(biāo)簽包含的其他JSP頁(yè)面。當(dāng)所有共享同一個(gè)客戶(hù)請(qǐng)求的JSP頁(yè)面執(zhí)行完畢并向客戶(hù)端發(fā)回響應(yīng)時(shí),JavaBean對(duì)象結(jié)束生命周期。JavaBean對(duì)象作為屬性保存在HttpRequest對(duì)象中,屬性名為JavaBean的id,屬性值為JavaBean對(duì)象,因此也可以通過(guò)HttpRequest.getAttribute()方法取得JavaBean對(duì)象sessionJavaBean對(duì)象被創(chuàng)建后,它存在于整個(gè)session的生命周期內(nèi),同一個(gè)session中的JSP頁(yè)面共享整個(gè)JavaBean對(duì)象。當(dāng)session超時(shí)或會(huì)話(huà)結(jié)束時(shí)JavaBean被銷(xiāo)毀。JavaBean對(duì)象作為屬性保存在HttpSession對(duì)象中,屬性名為JavaBean的id,屬性值為JavaBean對(duì)象。除了可以通過(guò)JavaBean的id直接引用JavaBean對(duì)象外,也可以通過(guò)HttpSession.getAttribute()方法取得JavaBean對(duì)象applicationJavaBean對(duì)象被創(chuàng)建后,它存在于整個(gè)Web應(yīng)用的生命周期內(nèi),Web應(yīng)用中的所有JSP頁(yè)面都能共享同一個(gè)JavaBean對(duì)象。直到服務(wù)器關(guān)閉時(shí)JavaBean才被銷(xiāo)毀。JavaBean對(duì)象作為屬性保存在application對(duì)象中,屬性的名字為JavaBean的id,屬性值為JavaBean對(duì)象。除了可以通過(guò)JavaBean的id直接引用JavaBean對(duì)象外,也可以通過(guò)application.getAttribute()方法取得JavaBean對(duì)象表4-4比較JavaBean的作用域【應(yīng)用技巧】 本單元的應(yīng)用技巧如下所示。 ①ResultSet對(duì)象的set×××()方法和get×××()方法的正確使用。 ②Servlet對(duì)象和JavaBean對(duì)象的正確使用。 ③購(gòu)物車(chē)中購(gòu)買(mǎi)數(shù)量的動(dòng)態(tài)改變的實(shí)現(xiàn)方法。【環(huán)境創(chuàng)設(shè)】 ①下載Servlet支持類(lèi)庫(kù)servlet-api.jar和JDBC支持類(lèi)庫(kù)sqljdbc4.jar。 ②準(zhǔn)備開(kāi)發(fā)Web應(yīng)用程序所需的圖片文件和JavaScript文件。 ③在數(shù)據(jù)庫(kù)eshop中創(chuàng)建“購(gòu)物車(chē)表”,其結(jié)構(gòu)信息如表4-5所示。字段名數(shù)據(jù)類(lèi)型字段名數(shù)據(jù)類(lèi)型購(gòu)物車(chē)IDint購(gòu)買(mǎi)數(shù)量int商品編碼nvarchar(10)金額money商品名稱(chēng)nvarchar(100)購(gòu)買(mǎi)日期date價(jià)格money圖片地址nvarchar(100)優(yōu)惠價(jià)格money表4-5“購(gòu)物車(chē)表”的結(jié)構(gòu)信息 ④在計(jì)算機(jī)的【資源管理器】中創(chuàng)建文件夾unit04。 ⑤啟動(dòng)Eclipse,設(shè)置工作空間為unit04,然后進(jìn)入Eclipse的開(kāi)發(fā)環(huán)境。 ⑥在Eclipse集成開(kāi)發(fā)環(huán)境中配置與啟動(dòng)Tomcat服務(wù)器。 ⑦在Eclipse集成開(kāi)發(fā)環(huán)境中新建動(dòng)態(tài)Web項(xiàng)目project04。 ⑧將文件servlet-api.jar和sqljdbc4.jar拷貝到Web項(xiàng)目project04的文件夾“WebContent\WEB-INF\lib”下,并在Eclipse集成開(kāi)發(fā)環(huán)境的“項(xiàng)目資源管理器”刷新Web項(xiàng)目project04。 ⑨在Eclipse集成開(kāi)發(fā)環(huán)境中創(chuàng)建包package04。 ⑩準(zhǔn)備本單元所需的數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)類(lèi)ConnDB?!救蝿?wù)描述】【任務(wù)4-1】使用JSP+Servlet+JavaBean技術(shù)實(shí)現(xiàn)購(gòu)物網(wǎng)站的購(gòu)物車(chē)功能 ①創(chuàng)建名為“CartInfo”的類(lèi),該類(lèi)是一個(gè)JavaBean,在該類(lèi)定義多個(gè)屬性及相應(yīng)的get×××()與set×××()方法。 ②創(chuàng)建名為“GoodsServlet”的Servlet類(lèi),該類(lèi)主要用于實(shí)現(xiàn)將選購(gòu)商品放入購(gòu)物車(chē)中、更新商品的購(gòu)買(mǎi)數(shù)量、將商品從購(gòu)物車(chē)中刪除退回到商品架和清空購(gòu)物車(chē)等功能,并同步向“購(gòu)物車(chē)表”添加或更新數(shù)據(jù)。 ③創(chuàng)建名為“CartServlet”的Servlet類(lèi),該類(lèi)實(shí)現(xiàn)獲取購(gòu)物車(chē)中的商品信息并將商品信息存入到List集合中。 ④創(chuàng)建JSP頁(yè)面cart4-1.jsp,在該頁(yè)面主要用于顯示購(gòu)物車(chē)中的商品信息。 本任務(wù)的購(gòu)物車(chē)實(shí)現(xiàn)過(guò)程的流程如圖4-1所示。圖4-1購(gòu)物車(chē)實(shí)現(xiàn)過(guò)程的流程【任務(wù)實(shí)施】【網(wǎng)頁(yè)結(jié)構(gòu)設(shè)計(jì)】【網(wǎng)頁(yè)CSS設(shè)計(jì)】 在DreamweaverCS6開(kāi)發(fā)環(huán)境中創(chuàng)建兩個(gè)CSS文件:module.css和cart.css。【靜態(tài)網(wǎng)頁(yè)設(shè)計(jì)】 在DreamweaverCS6中創(chuàng)建靜態(tài)網(wǎng)頁(yè)unit04.html,該網(wǎng)頁(yè)的初始HTML代碼如表1-5所示。圖4-2網(wǎng)頁(yè)unit04.html的瀏覽效果【網(wǎng)頁(yè)功能實(shí)現(xiàn)】(1)創(chuàng)建名為“CartInfo”的類(lèi)(2)創(chuàng)建名為“GoodsServlet”的Servlet類(lèi)(3)創(chuàng)建名為“CartServlet”的Servlet類(lèi)(4)在web.xml文件中對(duì)GoodsServlet類(lèi)和CartServlet類(lèi)進(jìn)行配置(5)創(chuàng)建JSP頁(yè)面cart4-1.jsp(6)創(chuàng)建網(wǎng)頁(yè)task4-1.html(7)運(yùn)行程序輸出結(jié)果
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年林業(yè)科技創(chuàng)新項(xiàng)目樹(shù)苗采購(gòu)合同3篇
- 2025年個(gè)人房產(chǎn)買(mǎi)賣(mài)合同標(biāo)準(zhǔn)文本下載7篇
- 二零二五年度智慧城市建設(shè)名義合伙人合同4篇
- 2025年度旅游度假村經(jīng)營(yíng)管理合同范本4篇
- 2025年度跨境投資委托理財(cái)合同范文集錄3篇
- 2025年度智能家居個(gè)人精裝修房屋租賃合同(長(zhǎng)期居住舒適保障)4篇
- 2025年度定制門(mén)窗安裝與品牌授權(quán)合作協(xié)議4篇
- 二零二五版美發(fā)店合伙人經(jīng)營(yíng)目標(biāo)與業(yè)績(jī)考核合同4篇
- 2024年中級(jí)經(jīng)濟(jì)師考試題庫(kù)及完整答案(典優(yōu))
- 建筑材料采購(gòu)合作協(xié)議書(shū)(2篇)
- 12123交管學(xué)法減分考試題及答案
- 2025年寒假實(shí)踐特色作業(yè)設(shè)計(jì)模板
- 《數(shù)據(jù)采集技術(shù)》課件-XPath 解析庫(kù)
- 財(cái)務(wù)報(bào)銷(xiāo)流程培訓(xùn)課程
- 24年追覓在線(xiàn)測(cè)評(píng)28題及答案
- 春節(jié)慰問(wèn)困難職工方案春節(jié)慰問(wèn)困難職工活動(dòng)
- 2024年全國(guó)職業(yè)院校技能大賽高職組(藥學(xué)技能賽項(xiàng))考試題庫(kù)(含答案)
- 2024至2030年中國(guó)氫氧化鈣行業(yè)市場(chǎng)全景調(diào)查及發(fā)展趨勢(shì)分析報(bào)告
- 魚(yú)菜共生課件
- 《陸上風(fēng)電場(chǎng)工程概算定額》NBT 31010-2019
- 初中物理八年級(jí)下冊(cè)《動(dòng)能和勢(shì)能》教學(xué)課件
評(píng)論
0/150
提交評(píng)論