Java Web程序設(shè)計項目實戰(zhàn)(微課版)教案 項目五 JSP內(nèi)置對象_第1頁
Java Web程序設(shè)計項目實戰(zhàn)(微課版)教案 項目五 JSP內(nèi)置對象_第2頁
Java Web程序設(shè)計項目實戰(zhàn)(微課版)教案 項目五 JSP內(nèi)置對象_第3頁
Java Web程序設(shè)計項目實戰(zhàn)(微課版)教案 項目五 JSP內(nèi)置對象_第4頁
Java Web程序設(shè)計項目實戰(zhàn)(微課版)教案 項目五 JSP內(nèi)置對象_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

767-項目五JSP內(nèi)置對象主題任務(wù)5.1應(yīng)用JavaBean計算梯形的面積1課時2教學(xué)手段啟發(fā)引導(dǎo)法項目教學(xué)法任務(wù)教學(xué)法教學(xué)方法演示法教學(xué)課型□理論□實訓(xùn)R一體化□(其它)教學(xué)目標(biāo)知識目標(biāo)1.熟悉JavaBean的基本格式2.熟悉JavaBean的分類3.掌握J(rèn)avaBean規(guī)范編寫4.掌握J(rèn)avaBean的應(yīng)用能力目標(biāo)能綜合應(yīng)用JavaBean完成項目任務(wù)育人目標(biāo)培養(yǎng)學(xué)生代碼的規(guī)范嚴(yán)謹(jǐn)性,提高學(xué)生的分析問題,解決問題的能力教學(xué)重點(diǎn)能綜合應(yīng)用JavaBean完成項目任務(wù)教學(xué)難點(diǎn)能綜合應(yīng)用JavaBean完成項目任務(wù)教學(xué)過程設(shè)計備注一、創(chuàng)建情境,導(dǎo)入新課(5分鐘)在數(shù)學(xué)中平行四邊形面積、三角形面積、梯形的面積的計算…,從而引出本節(jié)課的內(nèi)容。二、教學(xué)實施(80分鐘).1.任務(wù)演示編寫一個JSP頁面,該頁面提供一個表單,用戶可以通過表單設(shè)置梯形的上底、下底和高的值,并提交給本JSP頁面,該JSP頁面將計算梯形面積的任務(wù)交給一個pagebean去完成。JSP頁面使用getProperty動作標(biāo)記顯示pagebean中的數(shù)據(jù),如圖所示2.知識準(zhǔn)備(1)JavaBean介紹(2)JavaBean的分類(3)JavaBean的規(guī)范孟子曰“不以規(guī)矩,不能成方圓”,同樣,在設(shè)計JavaBean時,需要遵循有關(guān)約定:使用package語句進(jìn)行打包類中聲明的方法的訪問屬性都必須是public的。類中需提供public、無參數(shù)的構(gòu)造方法。屬性必須聲明為私有的(即用private修飾)如果類的成員變量的名字是xxx,類中提供兩個方法:getXxx(),用來獲取屬性xxx。setXxx(),用來修改屬性xxx.。也就是方法的名字用get或set為前綴,后綴是將成員變量名字的首字母大寫的字符序列。對于boolean類型的成員變量,即布爾邏輯類型的屬性,允許使用“is”代替上面的“get”和“set”。(4)使用JavaBean<jsp:useBean>動作元素基本格式如下:<jsp:useBeanid="beanname"class=“package.class"scope=“page|request|session|application"/><jsp:getProperty>動作元素<jsp:getProperty>用于獲取Bean對象中屬性的值。JavaBean的實例必須在<jsp:getProperty>前面定義,基本語句的格式如下:<jsp:getPropertyname="id"property="bean屬性"/>或<jsp:getPropertyname="id"property="bean屬性"/></jsp:getProperty>課堂練習(xí)(教師演示、學(xué)生操作)課堂練習(xí)1:創(chuàng)建一個Student的Bean類,如圖所示。課堂練習(xí)2:編寫Person.jsp頁面去訪問課堂練習(xí)1的bean屬性。3.任務(wù)實施(教師演示、學(xué)生操作)關(guān)鍵代碼:第一步:bean的類文件以“class"形式創(chuàng)建,為”AreaBean.java"。需要把bean文件放到my.bean包中。packagemy.bean;publicclassAreaBean{privatedoublehight,up,down,area;publicAreaBean(){ }publicdoublegetHight(){ returnhight;}publicvoidsetHight(doublehight){ this.hight=hight;}publicdoublegetUp(){ returnup;}publicvoidsetUp(doubleup){ this.up=up;}publicdoublegetDown(){ returndown;}publicvoidsetDown(doubledown){ this.down=down;}publicdoublegetArea(){ this.area=(up+down)*hight/2; returnarea;}publicvoidsetArea(doublearea){ this.area=area;}}第二步:創(chuàng)建jsp文件<bodybgcolor="f0fff0"><fontsize=4><b><jsp:setPropertyproperty="up"name="tixing"value="20"/><jsp:setPropertyproperty="down"name="tixing"value="30"/><jsp:setPropertyproperty="hight"name="tixing"value="5"/>梯形的上底:<jsp:getPropertyproperty="up"name="tixing"/><br>梯形的下底:<jsp:getPropertyproperty="down"name="tixing"/><br>梯形的高:<jsp:getPropertyproperty="hight"name="tixing"/><br>梯形的面積:<jsp:getPropertyproperty="area"name="tixing"/><br></font></b></body>4.任務(wù)拓展通過任務(wù)5.1的學(xué)習(xí),我們已經(jīng)學(xué)會使用一個簡單的bean,有時在寫一個bean的時候,除了需要應(yīng)用import語句引入系統(tǒng)提供的類,可能還需要其它一些自己編寫的類,此時只要將這些類和創(chuàng)建的bean的類寫在一個Java源中即可。(1)FilenameFilter介紹FilenameFilter是一個接口,實現(xiàn)FilenameFilter接口的類的實例用于過濾不符合規(guī)格的文件名,并返回合格的文件,只有一個accpet方法。publicbooleanaccept(Filedir,Stringname){}作用:它用來測試指定的文件是否應(yīng)包含在文件列表中dir:表示文件的當(dāng)前目錄name:表示文件名File文件File類的一個對象,代表一個文件或一個文件目錄(文件夾),基本格式如下:Filef=newFile("路徑");常用的方法:String[]fs=f.list();//獲取指定目錄下的所有文件或者文件目錄的名稱數(shù)組File[]fs=f.listFiles();//獲取指定目錄下的所有文件或者文件目錄的FiLe數(shù)組FilenameFilter用來把符合要求的文件或目錄返回;因此可以調(diào)用:String[]fs=f.list(FilenameFilterfilter);;File[]fs=f.listFiles(FilenameFilterfilter);當(dāng)向list方法傳遞一個FilenameFilter接口對象時,list方法在列出文件時,將讓該文件調(diào)用accept方法檢查該文件是否符合accept方法指定的目錄和文件的要求。拓展應(yīng)用1:應(yīng)用bean列出JSP頁面所在目錄中特定擴(kuò)展名的文件。三、教學(xué)小結(jié)(3分鐘)通過本節(jié)課的學(xué)習(xí),問學(xué)生掌握了哪些知識?JavaBean的分類,規(guī)范和應(yīng)用,F(xiàn)ilenameFilter以及文件的應(yīng)用。作業(yè)布置(2分鐘)實訓(xùn)一應(yīng)用JavaBean實現(xiàn)留言板教學(xué)反思注重培養(yǎng)學(xué)生實踐動手能力7614-項目五JSP內(nèi)置對象主題任務(wù)5.2應(yīng)用JavaBean實現(xiàn)網(wǎng)站注冊功能1課時2教學(xué)手段啟發(fā)引導(dǎo)法項目教學(xué)法任務(wù)教學(xué)法教學(xué)方法演示法教學(xué)課型□理論□實訓(xùn)R一體化□(其它)教學(xué)目標(biāo)知識目標(biāo)掌握J(rèn)avaBean屬性的值的引用能力目標(biāo)能綜合應(yīng)用JavaBean屬性的值育人目標(biāo)培養(yǎng)學(xué)生代碼的規(guī)范嚴(yán)謹(jǐn)性,提高學(xué)生的分析問題,解決問題的能力教學(xué)重點(diǎn)JavaBean屬性的值綜合應(yīng)用教學(xué)難點(diǎn)JavaBean屬性的值綜合應(yīng)用教學(xué)過程設(shè)計備注一、創(chuàng)建情境,導(dǎo)入新課(5分鐘)微信、騰訊QQ、郵箱、百度網(wǎng)盤…需要先注冊,才能登錄使用相應(yīng)的產(chǎn)品服務(wù),從而引出本節(jié)課的內(nèi)容。二、教學(xué)實施(80分鐘)1.任務(wù)演示當(dāng)我們進(jìn)入歡迎界面,想購買化妝品,需要先注冊,然后才能購買,如圖所示。運(yùn)行界面輸入信息提交后的信息2.知識準(zhǔn)備使用setProperty設(shè)置bean屬性值可以通過HTML表單的參數(shù)的值來設(shè)置bean的相應(yīng)屬性的值,要求bean屬性的名字必須在表單中有相應(yīng)的參數(shù)名字與之對應(yīng),JSP引擎會自動將參數(shù)的字符串值轉(zhuǎn)換為bean相對應(yīng)的屬性的值。如果用HTTP表單的所有參數(shù)的值設(shè)置bean相對應(yīng)的屬性的值可以使用setProperty元素:方式一:<jsp:setPropertyname="beanname"property="*"/>該元素不再具體指定bean屬性的值將對應(yīng)表單中哪些參數(shù)指定的值,系統(tǒng)會自動根據(jù)名字進(jìn)行對應(yīng)的匹配。課堂練習(xí)(教師演示、學(xué)生操作)課堂練習(xí)1:通過bean,實現(xiàn)表單讀取網(wǎng)站登錄信息,如圖所示。3.任務(wù)實施(教師演示、學(xué)生操作)關(guān)鍵代碼:第一步:編寫JavaBean類Registerpackagemy.bean;publicclassRegister{ Stringlogname="",password,phone="",address="",realname="";publicRegister(){ }publicStringgetLogname(){ returnlogname;}publicvoidsetLogname(Stringlogname){ this.logname=logname;}publicStringgetPassword(){ returnpassword;}publicvoidsetPassword(Stringpassword){ this.password=password;}publicStringgetPhone(){ returnphone;}publicvoidsetPhone(Stringphone){ this.phone=phone;}publicStringgetAddress(){ returnaddress;}publicvoidsetAddress(Stringaddress){ this.address=address;}publicStringgetRealname(){ returnrealname;}publicvoidsetRealname(Stringrealname){ this.realname=realname;}}第二步:編寫jsp文件<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><jsp:useBeanid="register"class="my.bean.Register"scope="request"></jsp:useBean><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>Inserttitlehere</title></head><bodybgcolor="pink"><div><h1>用戶網(wǎng)站注冊</h1><formaction=""method="post"name="form"><b>用戶名由字母、數(shù)字、下劃線構(gòu)成,*的項必須填寫</b><br><br>*用戶名稱:<inputtype="text"name="logname"><br><br>*用戶密碼:<inputtype="password"name="password"><br><br>*重復(fù)密碼:<inputtype="password"name="again_password"><br><br>聯(lián)系電話:<inputtype="text"name="phone"><br><br>收件地址:<inputtype="text"name="address"><br><br>真實姓名:<inputtype="text"name="realname"><br><br><inputtype="submit"value="提交"></form></div><div><h1>顯示用戶網(wǎng)站注冊信息</h1><%request.setCharacterEncoding("utf-8");%><jsp:setPropertyproperty="*"name="register"/>用戶名稱:<jsp:getPropertyproperty="logname"name="register"/><br><br>用戶密碼:<jsp:getPropertyproperty="password"name="register"/><br><br>聯(lián)系電話:<jsp:getPropertyproperty="phone"name="register"/><br><br>收件地址:<jsp:getPropertyproperty="address"name="register"/><br><br>真實姓名:<jsp:getPropertyproperty="realname"name="register"/><br><br></div></body></html>4.任務(wù)拓展編寫最美的逆行者相冊任務(wù)要求:2022年8月,重慶市北碚區(qū)歇馬街道虎頭村突發(fā)山火,從山火燒起來的那一刻,各方力量開始集結(jié),消防救援人員和志愿者們?yōu)榱巳嗣裆敭a(chǎn)安全,在極端高溫天氣下又處于炙烤險峻的一線,勇往直前、迎難而上,他們是最美的逆行者在北碚山火中讀懂重慶,應(yīng)用你學(xué)的知識,做一個救火相冊,如圖所示。三、教學(xué)小結(jié)(3分鐘)通過本節(jié)課的學(xué)習(xí),問學(xué)生掌握了哪些知識?JavaBean屬性值的設(shè)置作業(yè)布置(2分鐘)完成實訓(xùn)二應(yīng)用JavaBean技術(shù)實現(xiàn)四則運(yùn)算教學(xué)反思注重培養(yǎng)學(xué)生實踐動手能力7615-項目五JSP內(nèi)置對象主題任務(wù)5.3應(yīng)用JavaBean實現(xiàn)購物車課時2教學(xué)手段啟發(fā)引導(dǎo)法項目教學(xué)法任務(wù)教學(xué)法教學(xué)方法演示法教學(xué)課型□理論□實訓(xùn)R一體化□(其它)教學(xué)目標(biāo)知識目標(biāo)掌握J(rèn)avaBeant的應(yīng)用掌握ArrayList的應(yīng)用能力目標(biāo)能應(yīng)用JavaBean和ArrayList制作小型網(wǎng)站育人目標(biāo)培養(yǎng)學(xué)生代碼的規(guī)范嚴(yán)謹(jǐn)性,提高學(xué)生的分析問題,解決問題的能力教學(xué)重點(diǎn)ArrayList的綜合應(yīng)用教學(xué)難點(diǎn)ArrayList的綜合應(yīng)用教學(xué)過程設(shè)計備注一、創(chuàng)建情境,導(dǎo)入新課(5分鐘)隨著“互聯(lián)網(wǎng)+”與各行業(yè)的整合,農(nóng)產(chǎn)品與互聯(lián)網(wǎng)的融合創(chuàng)造出“新農(nóng)人”、“社區(qū)團(tuán)購”等新興事物,農(nóng)產(chǎn)品在互聯(lián)網(wǎng)銷售為農(nóng)產(chǎn)品發(fā)展提供的重要的途徑,從而引出本節(jié)課的內(nèi)容。二、教學(xué)實施(80分鐘)1.任務(wù)演示為了進(jìn)一步提高水果銷售業(yè)績,便利客戶購買商品,請應(yīng)用JavaBean技術(shù)實現(xiàn)購物車系統(tǒng),主要功能包含展示水果,購買水果,添加水果到購物車,清空購物車,如圖所示水果列表購買商品2.知識準(zhǔn)備(1)ArrayList的應(yīng)用封裝業(yè)務(wù)的JavaBean是完成一定運(yùn)算和操作功能的業(yè)務(wù)類,主要包含一些特定的方法,進(jìn)行業(yè)務(wù)處理。使用JavaBean一定程度上可以將Java處理代碼從JSP頁面中分離。封裝數(shù)據(jù)的JavaBean要將表單中的用戶輸入值送入數(shù)據(jù)庫中相應(yīng)的字段,或?qū)?shù)據(jù)庫中的字段值取出并顯示到網(wǎng)頁中,需要一個專用的Bean與封裝數(shù)據(jù)的JavaBean配合完成操作。在項目四已經(jīng)詳細(xì)介紹了JSP中連接數(shù)據(jù)庫的多種方法和數(shù)據(jù)庫進(jìn)行增加、刪除、修改和查詢的各種操作。在同一個應(yīng)用程序中的許多地方都需要進(jìn)行數(shù)據(jù)庫連接和數(shù)據(jù)庫內(nèi)容的更新操作,可以通過所學(xué)的JavaBean技術(shù)將數(shù)據(jù)庫的一些操作封裝到Bean中,需要用到這些功能,直接調(diào)用JavaBean動作元素來實現(xiàn)Bean的調(diào)用,具體的知識點(diǎn),前面已介紹,這里不再一一贅述3.任務(wù)實施(教師演示、學(xué)生操作)第一步:創(chuàng)建封裝商品信息的值JavaBeanpackagemy.bean;publicclassGoods{privateStringname;//商品名稱privatefloatprice;//商品價格privateintnum;//購買商品的數(shù)量publicGoods(){ super();}publicGoods(Stringname){ super(); =name;}publicGoods(Stringname,floatprice,intnum){ super(); =name; this.price=price; this.num=num;}publicStringgetName(){ returnname;}publicvoidsetName(Stringname){ =name;}publicfloatgetPrice(){ returnprice;}publicvoidsetPrice(floatprice){ this.price=price;}publicintgetNum(){ returnnum;}publicvoidsetNum(intnum){ this.num=num;}}第二步創(chuàng)建工具JavaBean,主要實現(xiàn)中文亂碼處理和類型轉(zhuǎn)換packagemy.bean;publicclassMyTools{//實現(xiàn)字符串轉(zhuǎn)換為整型publicstaticintstrToint(Stringstr){ if(str==null||str.equals("")) str="0"; intnum=0; try{ num=Integer.parseInt(str); }catch(Exceptione){ num=0; e.printStackTrace(); } returnnum;}//實現(xiàn)中文亂碼處理publicstaticStringtoChinese(Stringstr){ if(str==null) str=""; try{ str=newString(str.getBytes("ISO-8859-1"),"utf-8"); }catch(Exceptione){ str=""; e.printStackTrace(); } returnstr;}}第三步:創(chuàng)建購物車,主要功能是添加、移除、清空購物車的操作packagemy.bean;importjava.util.*;importmy.bean.*;publicclassShopCar{privateArrayListbuylist=newArrayList();publicArrayListgetBuylist(){ returnbuylist;}publicvoidsetBuylist(Goodslist){//添加數(shù)據(jù) if(list!=null) { if(buylist.size()==0) { Goodstemp=newGoods(); temp.setName(list.getName()); temp.setPrice(list.getPrice()); temp.setNum(list.getNum()); buylist.add(temp); }else { inti=0; for(;i<buylist.size();i++) { Goodstemp=(Goods)buylist.get(i); if(temp.getName().equals(list.getName())) { temp.setNum(temp.getNum()+1); break; } } if(i>buylist.size()) { Goodstemp=newGoods(); temp.setName(list.getName()); temp.setPrice(list.getPrice()); temp.setNum(list.getNum()); buylist.add(temp); } } }}publicvoidremoveItem(Stringname)//移動數(shù)據(jù){ for(inti=0;i<buylist.size();i++) { Goodstemp=(Goods)buylist.get(i); if(temp.getName().equals(MyTools.toChinese(name))) { if(temp.getNum()>1) { temp.setNum(temp.getNum()-1); break; } elseif(temp.getNum()==1) { buylist.remove(i); } } }}publicvoidclearCar()//清除數(shù)據(jù){ buylist.clear();}}第四步:創(chuàng)建水果列表頁面<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><%@pageimport="my.bean.Goods"%><%@pageimport="java.util.*"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>Inserttitlehere</title></head><body><%!staticArrayListgoodslist=newArrayList();static{ String[]names={"水龍果","芒果","西瓜","哈密瓜"}; float[]prices={4.5f,6.7f,2.4f,3.5f};for(inti=0;i<4;i++){ Goodslist1=newGoods(); list1.setName(names[i]); list1.setPrice(prices[i]); list1.setNum(1); goodslist.add(i,list1);}}%><%session.setAttribute("goodslist",goodslist);response.sendRedirect("show.jsp");%></body></html>第五步:展示數(shù)據(jù)頁面<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><%@pageimport="java.util.ArrayList"%><%@pageimport="my.bean.Goods"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>Inserttitlehere</title></head><body><%ArrayListgoodslist=(ArrayList)session.getAttribute("goodslist");%><tableborder="1"width="450"rules="none"cellpadding="0"cellspacing="0"><trheight="50"><tdcolspan="3"align="center">水果列表</td></tr><tralign="center"height="30"bgcolor="lightgrey"><td>名稱</td><td>價格</td><td>購買</td></tr><%if(goodslist==null||goodslist.size()==0){%><tr><td>沒有水果了!</td></tr><%}else{for(inti=0;i<goodslist.size();i++){Goodslist=(Goods)goodslist.get(i);%><trheight="50"align="center"><td><%=list.getName()%></td><td><%=list.getPrice()%></td><td><ahref="docar.jsp?action=buy&id=<%=i%>">購買</a></td></tr><%}}%><trheight="50"><tdalign="center"colspan="3"><ahref="ShopCar.jsp">查看購物車</a></td></tr></table></body></html>第六步:購物車頁面<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pa

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論