課件課后練習(xí)代碼經(jīng)典案例_第1頁
課件課后練習(xí)代碼經(jīng)典案例_第2頁
課件課后練習(xí)代碼經(jīng)典案例_第3頁
課件課后練習(xí)代碼經(jīng)典案例_第4頁
課件課后練習(xí)代碼經(jīng)典案例_第5頁
免費預(yù)覽已結(jié)束,剩余76頁可下載查看

下載本文檔

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

文檔簡介

JavaSERVLET&JSP購物車(提高題選做1問通過Servlet生成一張返回給瀏覽器(是一張壓縮為jpg格式的隨機數(shù)方小知如何寫Java程序web應(yīng)用 圖示演服務(wù)器部署某個應(yīng)用,該應(yīng)用添加了session驗證,必須登錄才能瀏覽器向login.jspjsp會創(chuàng)建一個sessionJsp返回給瀏覽器一個登陸頁面(html、js、該頁面包含一行代碼<imgsrc="checkCode">(checkCode是一個請求地址)6)同時,CheckCodeServlet發(fā)送給瀏覽器一張(驗證數(shù)字+)此時,用戶在瀏覽器上看到完全的登錄頁用戶填寫完表單后提交,LoginServlet從Session對象中取到驗證數(shù)字案例演<imgsrc="checkCode">新建部署項服務(wù)器立即打印 說明瀏覽器頁面test.html時,在執(zhí)行<imgsrc="checkcode">語句時向服務(wù)器發(fā)送了實CheckcodeServlet代碼如下packageimportimportimportimportimportimportimportimportimportimportimportimportpublicclassCheckcodeServletextendsHttpServlet{publicvoidservice(HttpServletRequestHttpServletResponsethrowsServletException,IOException/*1設(shè)置服務(wù)器返回文件的格式為jpg格式 //常見的還有:text/html和/*2畫圖//BufferedImage:內(nèi)存映象對BufferedImageimagenewBufferedImage(60,Randomr=new//獲得畫Graphicsg=//設(shè)置背景顏g.setColor(new//填充背景顏g.fillRect(0,0,60,//設(shè)置前景顏g.setColor(newStringnumber=上g.drawString(number,5,/*3并輸出OutputStreamosresponse.getOutputStream();//JPEGImageEncoderencoder}}隱web.xml代碼如下<?xmlversion="1.0"encoding="UTF-<web-app"h/xml/ns/j2ee/web-<servlet-name>CheckcodeServlet</servlet-<servlet-class>web.CheckcodeServlet</servlet-class><servlet-><servlet-name>CheckcodeServlet</servlet-<url-pattern>/checkcode</url-</servlet-></web-隱test.html代碼如下<metahttp-equiv="Content-content="text/html;charset=UTF-<title>Inserttitle<bodystyle="font-size:30px;"><imgsrc="checkcode"隱每次刷新會生成一個新的隨機擴為用戶頁面加入拷貝day06的session修改添<%@pagepageEncoding="utf-contentType="text/html;charset=utf-8"<metahttp-equiv="Content-Type"content="text/html;charset=UTF-<linkrel="stylesheet"type="text/css"href="css/style.css"<div<div<div<div 2009/11/20<br<div<h1<a<div<div<p<formaction="regist.do"<tablecellpadding="0"cellspacing="0"<tdvalign="middle"用戶名<tdvalign="middle"<inputtype="text"name="username"Stringmsg <spanstyle="color:red;font-<%=(msg==null?"":<tdvalign="middle"真 <tdvalign="middle"<inputtype="text"class="inputgri"name="name"<tdvalign="middle" <tdvalign="middle"<inputtype="password"class="inputgri"name="pwd"<tdvalign="middle" <tdvalign="middle"男<inputtype="radio"name="gendar"value="m"女<inputtype="radio"name="gendar"<tdvalign="middle" <imgid="img1"src="checkcode"<a

='checkcode?'+Math.random();">換一張<tdvalign="middle"<inputtype="text"name="number"<inputtype="submit"value="確<div<div隱拷貝CheckedServlet到項目packageimportimportimportjava.awt.image.BufferedImage;importjava.io.IOException;importimportimportimportimportimportimportimportimportpublicclassCheckcodeServletextends{publicvoidservice(HttpServletRequestHttpServletResponsethrowsServletException,IOException//BufferedImage:內(nèi)存映象對BufferedImageimagenewBufferedImage(60,Randomr=new//獲得畫Graphicsg=newr.nextInt(255),g.fillRect(0,0,60,g.setColor(newStringnumber=g.drawString(number,5,//獲得字節(jié)輸出流,因為要輸出的是圖像壓縮//的字節(jié)數(shù)組,所以,不能用PrintWriterOutputStreamos=// 壓縮,輸出JPEGImageEncoderencoder修改部署應(yīng)測點擊“換一張”能驗修改綁定生成的驗證數(shù)字到Session注意:給用戶看的是+驗證數(shù)字;放入Session對象的是驗證數(shù)修改添加“在時比較用戶輸入驗證數(shù)字和Session中取出的驗證數(shù)字”的代packageimportimportimportimportimportimportimportimportimportimportimportimportimportpublicclassActionServletextendsHttpServlet{publicvoidservice(HttpServletRequestHttpServletResponsethrowsServletException,IOExceptionrequest.setCharacterEncoding("utf-Stringuri=Stringpath=uri.lastIndexOf("/"),if(path.equals("/regist"))/*1先比 //1.1表單提交Stringnumber1=//1.2session中綁訂HttpSessionsession=Stringnumber2(String)//用于測System.out.println("number1:"+System.out.println("number2:"+//當(dāng)用戶禁 ,session將失效,number2為(number2!=nullnumber2.equals(number1))StringusernameUserDAOdao=newtryUseruser=if(user==null)//用戶名不存在,插入user=new}else//用戶名存在,則提示request.setAttribute("regist_error","用戶名已經(jīng)存在request,}}catch(Exceptione)thrownew}}else//錯"錯誤}}}elseif(path.equals("/login"))Stringusername=request.getParameter("username");Stringpwd=request.getParameter("pwd");UserDAOdao=newtryUseruser=if(user!=null&&user.getPwd().equals(pwd))錄成session中綁訂HttpSessionsession=System.out.println("sessionId:"+session.setAttribute("user",}else錄失request.setAttribute("login_error","用戶名或 錯 }catch(Exceptione)thrownew}}elseif(path.equals("/logout"))HttpSessionsession=}}}隱修改加入驗證失敗的<%@pagepageEncoding="utf-contentType="text/html;charset=utf-8"<metahttp-equiv="Content-Type"content="text/html;charset=UTF-<linkrel="stylesheet"type="text/css"href="css/style.css"<div<div<div<div 2009/11/20<br<div<h1<a<div<div<p<formaction="regist.do"<tablecellpadding="0"cellspacing="0"<tdvalign="middle"用戶名<tdvalign="middle"<inputtype="text"name="username"Stringmsg<spanstyle="color:red;font-<%=(msg==null?"":<tdvalign="middle"真實<tdvalign="middle"<inputtype="text"class="inputgri"name="name"<tdvalign="middle":<tdvalign="middle"<inputtype="password"class="inputgri"name="pwd"<tdvalign="middle":<tdvalign="middle"男<inputtype="radio"name="gendar"value="m"女<inputtype="radio"name="gendar"<td<tdvalign="middle" <imgid="img1"src="checkcode" <a ='checkcode?'+Math.random();">換一張<tdvalign="middle"<inputtype="text"name="number"Stringmsg2 <spanstyle="color:red;font-<%=(msg2==null?"":<inputtype="submit"value="確認(rèn)"/><div<div隱重新部測成功,跳入登錄加干擾線或干擾點(防止機器人識別修改購物車(提高題選做問購物車的主要功能商品列商查看購刪除購物車當(dāng)中的商修改購物車當(dāng)中的商品的刪除購物車中的所有商購物車商品總先需要實現(xiàn)商品列表和商品功能方SQL>createidbigintprimarykeymodelprodDescpricedouble);SQL>insertvalues('x200','x200.jpg','還算便宜',2000);insertvalues('x500','x500.jpg','性價比最好',4000);insertvalues('x600','x600.jpg','性能不錯',6000);step3Computer實體類step4ComputerDAO類step5ComputerDAOstep6ActionServletstep7computer_list.jsp建表&&準(zhǔn)備數(shù)新建web工程新建b.執(zhí)行數(shù)據(jù)實體類&&DAO操作根據(jù)數(shù)據(jù)庫表新建實體 packagepublicclassComputerprivatelongprivateStringprivateStringpic;privateStringprodDesc;privatedoubleprice;publicComputer()publicComputer(Stringmodel,Stringpic,StringprodDesc,doublethis.model=this.pic=dDesc=this.price=publiclonggetId(){returnpublicvoidsetId(longid){this.id=id;}publicStringgetModel(){returnmodel;}publicvoidsetModel(Stringmodel){this.model=publicStringgetPic(){returnpublicvoidsetPic(Stringpic){this.pic=publicdoublegetPrice(){returnpublicvoidsetPrice(doubleprice){this.price=price;}publicStringgetProdDesc(){returnprodDesc;}publicvoidsetProdDesc(StringprodDesc){dDesc=隱導(dǎo)入jar拷貝packageimportimportimportjdbc工具類,提供獲得連接、關(guān)閉連接的@authorpublicclassDBUtilpublicstaticConnectiongetConnection()throwsException{Connectionconn=null;try{conn= }catch(Exceptione)throw return publicstaticvoidclose(Connectiontry}catch(SQLExceptione)}}}publicstaticvoidmain(String[]throwsException//TODOAuto-generatedmethod}}隱新 方 packageimportimportjava.sql.PreparedStatement;importjava.sql.ResultSet;importimportimport import publicclassComputerDAOpublicList<Computer>findAll()throwsList<Computer>computersnewConnectionconnPreparedStatementprep"select* ResultSetrstComputercnew}return}publicComputerfindById(longid)throwsComputerc=ConnectionconnPreparedStatementprep"select* puterwhereprep.setLong(1,ResultSetrstc=new隱}return}} puterDAO測試很重要!拷貝css&html到項目請shop拷 puter_list.html到項目下,改名為新建packagepublicpackagepublicvoidservice(HttpServletRequestimportimportimportimportimportimportimportimportimportimportimportpublicclassActionServletextends{HttpServletResponsethrowsServletException,IOExceptionStringuri=StringpathComputerDAOdaonewtryList<Computer>computersrequest.setAttribute("computers",.forward(request,}catch(Exceptione)thrownew}}}}隱<?xmlversion="1.0"encoding="UTF-<web-app"h/xml/ns/j2ee/web-<servlet-name>ActionServlet</servlet-<servlet-class>web.ActionServlet</servlet-<servlet-><url-pattern>*.do</url-</servlet-</web->隱修改<%@pagepageEncoding="utf-8"contentType="text/html;charset=utf-<%@pageimport="java.util.*,entity.*"<metahttp-equiv=Content-Typecontent="text/html;charset=utf-8"<linktype="text/css"rel="stylesheet"<body <div<tablecellSpacing=6cellPadding=2width="100%"<tableclass="guide"cellPadding="0"<ahref='#'>主頁 <ahref='#'>筆記本訂購 ;商品列<br<tableclass="tableborder"cellPadding="0"width="100%"<tr<tdclass="altbg1"<b>型號<tdclass="altbg1"<b>產(chǎn)品<tdclass="altbg1"<b>產(chǎn)品說明<tdclass="altbg1"<b>產(chǎn)品報價<tdList<Computer>computersfor(intComputerc=<td <td<imgsrc="img/d007/<%=c.getPic()%>"height="90"<td<td<td<a <br<inputclass="button"value="查看購物name="settingsubmit"隱部署應(yīng)測實現(xiàn)2:商品**不同用戶數(shù)據(jù)存放在不同Session圖示演示流程用戶發(fā)送請求服務(wù)器創(chuàng)建Session對不再直接session的方法,而是綁定一個Cart對用戶商品時,只調(diào)用Cart的add方法進行操作,而不再直接操作刪除(修改)時也一如此,我們以后只要操作Cart類的方法就OK了,不再直接操作Session。這是一個經(jīng)典的計Cart和CartItem偽實現(xiàn)步新建商品條目類,作用是為了更方便實現(xiàn)購物車Cart的實packageimport商品條目類,其作用是更方便實現(xiàn)Cart類的操作@authorpublicclass{privatec;privateintpublicComputergetC(){returnpublicvoidsetC(Computerc){this.c=publicintgetQty(){returnpublicvoidsetQty(intqty){this.qty=隱新建packageimportimport *購物*實現(xiàn)了商品的添加、刪除、列表、清空、*@author*publicclassCart//items存放用 的所有商privateList<CartItem>itemsnewpublicbooleanadd(CartItem//先判斷有沒 過該商品,如果買過//則返回false,否則,添加到items集合for(intCartItemcurr=if(curr.getC().getId()==//已return return publicList<CartItem>return publicvoiddelete(longfor(intCartItemcurr=if(curr.getC().getId()==return; publicvoid publicvoidmodify(longid,intfor(intCartItemcurr=if(curr.getC().getId()==return; publicdoubledoubletotal=for(intCartItemcurr=total+=curr.getQty()* return 隱隱packageimportimportimportimportimportimportjavax.servlet.http.HttpServletResponse;importjavax.servlet.http.HttpSession;importimportimportimportpublicclassActionServletextendsHttpServletpublicvoidservice(HttpServletRequestHttpServletResponseresponse)throwsServletException,IOException{Stringuri=StringpathComputerDAOdaonewtryList<Computer>computersrequest.setAttribute("computers",.forward(request,}catch(Exceptione)thrownew}}else longid= ComputerDAOdao new try Computerc= CartItemitem=new HttpSessionsession Cartcart= if(cart==null){ //如果是第一 ,需要先創(chuàng)建好cart對 //然后綁訂到session cart=new session.setAttribute("cart", booleanflag= request.setAttribute("buy_error"+"已過該商品隱.forward(request,}else{//沒有買過,返回到商品}}catch(Exceptione)thrownew}}}}測試a.地址跳向c.繼續(xù)點擊“”,出現(xiàn)提示“已經(jīng)過該產(chǎn)品功能實現(xiàn)2.3參考方案2.4購物車的主要功能商品列商查看購刪除購物車當(dāng)中的商修改購物車當(dāng)中的商品的刪除購物車中的所有商購物車商品總修 添加查看購物車地拷貝cart.jhtml到項目中,修改為<%@pagepageEncoding="utf-8"contentType="text/html;charse

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論